Olympic programming. Basic level - free course from Stepik, training 17 lessons, Date: December 1, 2023.
Miscellaneous / / December 04, 2023
About the course
The course is primarily intended for beginner programmers. And for a quick start, we recommend Python. Python is easier to learn from scratch even for a beginner in programming, it is easy to write, and the written code is easy to read. Python is a modern programming language, it is widely used for machine learning, in Data Science and so on. In terms of the number of tutorials and online course offerings, Python undoubtedly wins over others languages.
But if you want to achieve significant success in programming competitions, then, of course, in the future it is preferable to study C/C++ languages, the use of which guarantees obtaining a complete solution to problems at the Olympiads, so we tried to add solutions and examples in C++ to the text ones materials. All course tasks can be solved using any programming language available on Stepik.
The course covers the following topics: number-theoretic algorithms, search algorithms, and fundamentals of data structures. Tasks for training with analysis and contests for each topic have been developed. There are 59 tasks in total. Also, to consider theoretical issues and training, problems from the archives of various Olympiads are used. The solution to all practice problems is discussed on the forum, which you will gain access to after several attempts, so the weight of such problems in the course is small compared to problems from contests.
Initial requirements
The course is intended for high school students and junior students. The course may also be useful for computer science teachers; we are ready to share analyzes of solutions to problems from contests.
To complete the course, you must at least have basic programming skills in Python 3 (branching, loops, basic data types, collections, functions) or any other programming language available on Stepik for solving problems programming.
1
wellCandidate of Physical and Mathematical Sciences, Associate Professor of the Department of Algebraic and Information Systems at ISU. I have been participating in the organization of regional and municipal stages of the All-Russian Olympiad for schoolchildren in computer science and ICT in the Irkutsk region since 2003, and since...
Candidate of Physical and Mathematical Sciences, Associate Professor of the Department of Algebraic and Information Systems at ISU. I participate in the organization of regional and municipal stages of the All-Russian Olympiad for schoolchildren in computer science and ICT in Irkutsk region since 2003, and since 2013 - chairman of the organizing committee and jury of regional stages in computer science of Irkutsk areas. Olympiad programming coach.
1
wellPh.D., Associate Professor, Department of Computer Science, St. Petersburg Electrotechnical University "LETI"
Ph.D., Associate Professor, Department of Computer Science, St. Petersburg Electrotechnical University "LETI"
1
wellStudent, Faculty of Computer Technologies and Informatics, St. Petersburg Electrotechnical University "LETI", Department of Computer Science
Student, Faculty of Computer Technologies and Informatics, St. Petersburg Electrotechnical University "LETI", Department of Computer Science
Analysis of algorithm efficiency
1. Basics of algorithm efficiency analysis
2. Main efficiency classes
Number-theoretic algorithms
1. Integer arithmetic
2. Simplicity check
3. Finding prime factors
4. Sieve of Eratosthenes
5. GCD. Euclid's algorithm
6. Final contest
Search algorithms
1. Linear and binary search
2. Binary search by answer
3. Two pointer method
4. Final contest
Data structures
1. Linear Data Structures
2. Stacks
3. Queue, Dec
4. Trees. Heap
5. Final contestÂ