During the course, you’ll learn everything needed to participate in real competitions — that’s the main goal. Along the way you’ll also gain useful skills for which competitive programmers are so highly valued by employers: ability to write efficient, reliable, and compact code, manage your time well when it’s limited, apply basic algorithmic ideas to real problems, etc.
이 강좌에 대하여
강사
제공자:

상트 페테르부르크 주립 대학교
Санкт-Петербургский государственный университет (СПбГУ) — старейший вуз России, основанный в 1724 году. Университет сегодня — научный, образовательный и культурный центр мирового значения, неизменно входящий во все международные рейтинги вузов. В номинации взаимодействие с работодателями QS Graduate Employability 2018 СПбГУ занимает 20 место среди 400 ведущих вузов мира и является лучшим в России.
강의 계획 - 이 강좌에서 배울 내용
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.
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.
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.
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.
검토
COMPETITIVE PROGRAMMER'S CORE SKILLS의 최상위 리뷰
Very helpful course full of valuable information It's just exactly what you need in competitive programming\n\nBut the accent is kind of strange hopefully you can get used to it
The Course covers all basic topics that are essential for partiticipating in competitions. The discussion forum is very useful and the instructors give prompt replies.
A very informative and detailed course on competitive programming . A perfect course for a beginner to begin with . Grateful to tutors and the material they presented.
One of the best course on coding and competitive programming !! 👏👏 Please add lecture slides of each week to download
자주 묻는 질문
강의 및 과제를 언제 이용할 수 있게 되나요?
이 수료증을 구매하면 무엇을 이용할 수 있나요?
Is financial aid available?
궁금한 점이 더 있으신가요? 학습자 도움말 센터를 방문해 보세요.