CS Dept. Univ. Helsinki

Competitive Programming

"the art of crafting efficient algorithms"

The Course

This course leads you down the rabbit hole to the magical land of crafting effient algorithms. The course will cover topics such as path finding, ..., ..., and follows a learning by doing approach where your effort pays off.

Introduction to competitive programming is a ..

Course material

The course is organized into n parts that each cover a number of skills and algorithms needed in programming competitions. In each part, you will practice your programming skills with multiple programming assignments that are submitted to an automated assessment system, which is used to assess both the functionality and the efficacy of your code, and at the end of each part, you will participate in a small programming competition that are designed to further help you learn the topic.

For each (n % 3 == 0) parts, you will also attend a larger programming competition where you will further hone the skills that you have previously learned.

The course material contains instructions for programming with C++, but the same principles work also in other programming languages.

Prerequisites

The prerequisites for this course include some previous programming experience and a understanding on the following concepts: array, index, looping, variable.

Helping others

We seek to build a community of competitive programmers who are up for helping others learn the topic and discuss. As a platform for the discussions, we are looking into stack exchange -- whether it works or not is up to you. http://area51.stackexchange.com/

Course structure

Competition Topic Learning Objectives Release Date
1 Introduction to Competitive Programming What is an algorithm, reading and printing, variables and loops. Yesterday
2 Introduction to Competitive Programming What is an algorithm, reading and printing, variables and loops. TBA
3 Introduction to Competitive Programming What is an algorithm, reading and printing, variables and loops. TBA
4 Introduction to Competitive Programming What is an algorithm, reading and printing, variables and loops. TBA

Material

Assignments

Part I: Getting Started

Learning Objectives

Topic I

lorem ipsum.

#include <iostream>

using namespace std;

int main()
{
    cout << "Hello World!\n";
    return 0;
}

Topic II

lorem ipsum.

assignment handout

bar

Part 2: Bla

Learning Objectives

Floyd-Warshall

Dijkstra