Acerca de este Curso
18,128

#### 100 % en línea

Comienza de inmediato y aprende a tu propio ritmo.

#### Fechas límite flexibles

Restablece las fechas límite en función de tus horarios.

#### Aprox. 28 horas para completar

Sugerido: 5-8 hours/week...

#### Inglés (English)

Subtítulos: Inglés (English)

#### 100 % en línea

Comienza de inmediato y aprende a tu propio ritmo.

#### Fechas límite flexibles

Restablece las fechas límite en función de tus horarios.

#### Aprox. 28 horas para completar

Sugerido: 5-8 hours/week...

#### Inglés (English)

Subtítulos: Inglés (English)

### Programa - Qué aprenderás en este curso

Semana
1
5 horas para completar

## Programming Competitions

We'll begin with introduction to the world of competitive programming — the rules, specialties and helpful tips on taking part in competitions in general. In a separate lesson, we'll learn how to test programs: what kinds of test cases there are, how to organize the search for a bugtest, and particularly a method of automating testing called stress-testing....
9 videos (Total 74 minutos), 2 readings, 2 quizzes
9 videos
Specifics of Programming Competitions11m
Problem Example8m
Steps in Solving a Problem6m
Soft Skills4m
Competitions Review8m
Testing, Sample Tests, Min/Max Tests11m
Custom Cases and Testing Workflow7m
Stress-testing10m
2 lecturas
Welcome!4m
Solution to Problem 1-4: Straight Flush10m
1 ejercicio de práctica
Inventing Tests8m
Semana
2
4 horas para completar

## CORRECTNESS FIRST

In this module, we'll start with the most basic things you need to actually solve algorithmic problems. First, we'll talk about structuring your code and intuition behind it — why it's very important, how to manage dependencies between parts of different purpose, how intuitive rules are enforced through formal invariants and conditions. We'll also identify a special class of solutions — brute force solutions — which are always correct, but often very slow. And we'll learn how to estimate running time of our solutions by using a powerful concept of big-O notation....
9 videos (Total 66 minutos), 1 reading, 2 quizzes
9 videos
Intuitive "Proofs" are wrong5m
Defining solution set7m
Recursive backtracking7m
Worst cases6m
Big-O notation10m
From theory to practice7m
How to make a solution faster9m
1 lectura
Solution to Problem 2-4: Expression Evaluation10m
1 ejercicio de práctica
Time complexity6m
Semana
3
5 horas para completar

## COMMON STRUGGLES

In competitive programming, there are a lot of things to stumble upon — if you don't know them first! We'll delve into how numbers are represented in computers, identify the most common issues with integer and floating point arithmetic, and learn to overcome them. We'll also discuss how to get stuck less in general, especially when debugging solutions....
11 videos (Total 78 minutos), 1 reading, 3 quizzes
11 videos
Dealing with Overflow5m
Non-integers8m
Fixed Point Numbers and Errors7m
Floating Point Numbers6m
Where and How to Use Doubles10m
More on Floating Point8m
Debugging Small Programs5m
Simplifying Code7m
Double-checking5m
Upsolving7m
1 lectura
Solution to Problem 3-4: Binary Knapsack10m
2 ejercicios de práctica
Numbers10m
Upsolving2m
Semana
4
5 horas para completar

## COMMON STRUGGLES 2

We continue considering common struggles arising in competitive programming. We start by learning how to prove that a natural greedy algorithm is correct. We also discuss programming languages: what features are most helpful on competitions, and what are the advantages and pitfalls of several frequently used languages. Finally, we study an essential and easy-to-implement data structure: the segment tree....
14 videos (Total 97 minutos), 1 reading, 2 quizzes
14 videos
Proving Correctness7m
Activity Selection9m
Maximum Scalar Product6m
Greedy Ordering6m
Segment Tree Structure4m
Summing a Segment7m
Modifying an Element4m
Basic Data Structures5m
C++11m
Java5m
Python8m
Comparing Languages4m
1 lectura
Solution to Problem 4-4: Maximal Sum Suba10m
1 ejercicio de práctica
Segment Tree6m

## Instructores

### Alexander S. Kulikov

Visiting Professor
Department of Computer Science and Engineering

### Alexander Logunov

Competitive Programming Co-coach at SPbSU

### Kirill Simonov

Competitive Programming Co-Coach

## Acerca de Universidad Estatal de San Petersburgo

Санкт-Петербургский государственный университет (СПбГУ) — старейший вуз России, основанный в 1724 году. Университет сегодня — научный, образовательный и культурный центр мирового значения, неизменно входящий во все международные рейтинги вузов. В номинации взаимодействие с работодателями QS Graduate Employability 2018 СПбГУ занимает 20 место среди 400 ведущих вузов мира и является лучшим в России. В настоящее время СПбГУ реализует 418 образовательных программ, включающих самые современные направления подготовки и специальности. Сертификат об успешном окончании представленных онлайн-курсов дает 5 дополнительных баллов при поступлении на программы магистратуры и аспирантуры СПбГУ. St Petersburg University is the oldest university in Russia, founded in 1724. The University today is a world-class research, educational and cultural centre which is always included in all international rankings of world universities. St Petersburg University was ranked 20th in QS Graduate Employability Ranking 2018 among 400 leading universities in the world and is the best in Russia. At present, St Petersburg University offers 418 academic programmes, including the most advanced areas and fields of study. The certificate of successful completion of offered online courses gives five additional points when applying for master’s and doctoral programmes at St Petersburg University....

## Preguntas Frecuentes

• Una vez que te inscribes para obtener un Certificado, tendrás acceso a todos los videos, cuestionarios y tareas de programación (si corresponde). Las tareas calificadas por compañeros solo pueden enviarse y revisarse una vez que haya comenzado tu sesión. Si eliges explorar el curso sin comprarlo, es posible que no puedas acceder a determinadas tareas.

• Cuando compras un Certificado, obtienes acceso a todos los materiales del curso, incluidas las tareas calificadas. Una vez que completes el curso, se añadirá tu Certificado electrónico a la página Logros. Desde allí, puedes imprimir tu Certificado o añadirlo a tu perfil de LinkedIn. Si solo quieres leer y visualizar el contenido del curso, puedes participar del curso como oyente sin costo.

¿Tienes más preguntas? Visita el Centro de Ayuda al Alumno.