Search for contacts, projects,
courses and publications

Programming Challenges Lab


Carzaniga A.

Course director


We will explore and discuss several general programming techniques, specifically focusing on algorithmic problem solving. The course covers both algorithmic strategies, as well as "tactical" programming, meaning ways to implement various strategies, using data structures and various features of typical languages and libraries.


Take this course if you want to practice, improve, and also have fun with algorithmic programming. This is more like a programming club rather than a course. The idea is in fact to take this course not just once but many times, possibly every year. This lab is also intended for students who want to learn about competitive programming or algorithmic challenges and who are interested in possibly participating in the ACM International Collegiate Programming Contest.

Teaching mode

In presence

Learning methods

The whole course is a one long programming contest, with two or three problems posed every week and then discussed in class. You are assumed to have basic programming skills, preferably in C, C++, Java, or Python.

Examination information

Programming problems; participation.