• Length:
    7 Weeks
  • Effort:
    4–6 hours per week
  • Price:

    FREE
    Add a Verified Certificate for 99 USD

  • Institution
  • Subject:
  • Level:
    Introductory
  • Language:
    English
  • Video Transcript:
    English

Prerequisites

Basic knowledge of any common programming language (C++, Java, Python)

About this course

Want to be the programmer hot tech companies are looking for?

Take your programming skills to the next level and prove your excellence by learning how to succeed in programming competitions.

Besides improving your knowledge of algorithms and programming languages, you’ll gain unique experience in problem solving, thinking outside the box and meeting tough deadlines – all essential for boosting your value as a programmer and securing a coveted job in Silicon Valley (should you want one).

This computer science course is an introduction to competitive programming developed by ITMO University, the leading expert in IT and the only 7-time world champion of the Association for Computing Machinery - International Collegiate Programming Contest (ACM ICPC), the world's most prestigious programming contest.

You will learn all you need to know about the variety of programming competitions that exist, as well as basic algorithms and data structures necessary to succeed in the most popular of them.

What you'll learn

  • The benefits of participating in programming competitions
  • The algorithms and approaches you need to master the world of competitions
  • Ways of self-training for further progress
Week 1: Welcome to competitive programming
Exploring different kinds of programming competitions and benefits of participating, as well as typical rules and challenges. An overview of algorithmic programming competitions. An introduction to community resources and online contests. Week 2: Computational complexity and linear data structures
An overview of computational complexity (Big O notation). Exploring linear data structures (array, list, stack, queue): operations, complexity, implementation and examples. Week 3: Sorting and search algorithms 1
An overview of sorting algorithms: insertion sort, quick sort, merge sort. Week 4: Sorting and search algorithms 2
Theoretical limitations and practical guidelines for sorting. Binary search. Binary heaps and priority queues. Week 5: Graph theory 1
Definition of graphs and examples of graph problems. Various ways of storing graphs in memory. Depth first search and its applications. Dynamic programming. Week 6: Graph theory 2
Breadth first search. Eulerian and Hamiltonian paths and tours. Shortest paths. Week 7: Final Exam
Solving a set of problems in limited time just like in a real programming competition.

Meet your instructors

Maxim Buzdalov
Associate Professor, Chair of Computer Technologies
ITMO University
Pavel Krotkov
Programmer, Chair of Computer Technology
ITMO University
Daria Yakovleva
Assistant, Computer Technology Department
ITMO University

Pursue a Verified Certificate to highlight the knowledge and skills you gain $99.00

View a PDF of a sample edX certificate
  • Official and Verified

    Receive an instructor-signed certificate with the institution's logo to verify your achievement and increase your job prospects

  • Easily Shareable

    Add the certificate to your CV or resume, or post it directly on LinkedIn

  • Proven Motivator

    Give yourself an additional incentive to complete the course

  • Support our Mission

    EdX, a non-profit, relies on verified certificates to help fund free education for everyone globally

Learner testimonials

“I really liked ITMO University’s program on Algorithms and Data Structures. The course was well-structured and well-maintained. The tutors are real professionals with great expertise. We had a lot of practice during the course which fostered absorbing the theoretical material.”
- Student, Tecnologico de Monterrey

“I learned tons of stuff, the teachers are highly skilled and it made me like Programming Contests (I didn't know about them that much before). Thank You!”
- Student, INSA