This is a practical hands-on course that is intended for students who are interested in competitive programming and algorithmic challenges. During this course, you will learn how to solve algorithmic programming challenges, both individually and as a team.
Students are expected to have a working knowledge of computer programming, algorithms, and data structures, and preferably some practical experience with C or C++ programming languages. There is a prerequisite test that you will need to solve before the first meeting (see below).
We will meet every Saturday at noon in the Maari building and organise a mini-contest. During the course, you will also take part in NCPC, the Nordic Collegiate Programming Contest.
We will use Competitive Programmer's Handbook by Antti Laaksonen. Additional material will be posted on Slack.
The course is organised by Jukka Suomela, and our course assistants are Siiri Kuoppala and Henrik Lievonen. To contact the course staff, please use our Slack chat if possible.
Course registration is via Oodi as usual. Once you have registered for the course, please do the following before the first meeting:
- Join the Slack chat, using your Aalto email address: https://aaltocontests.slack.com/
- Create a user account in CSES if you do not have one yet: https://cses.fi/register
- Solve the prerequisite test: https://cses.fi/208/list/
Double-check that you have configured correctly your full real name and your email address both in Slack and in CSES!
You will need to solve the following prerequisite test on CSES: https://cses.fi/208/list/
The test is a mini-contest that consists of two tasks. Task A is a trivial task that helps you to learn how to use CSES and how to submit solutions. Task B is a small algorithmic puzzle that will require a little bit of thinking. You are free to use C++, Java, or Python in this contest. Please read the instructions for some hints of what a submission might look like in each of these languages.
The deadline for solving both tasks is on Saturday, 15 September, at noon, i.e., before the first meeting of the course. If you need any help with the prerequisite test (especially if it is a technical problem related to the use of CSES), please feel free to ask on Slack!
The grading is pass/fail.
You will get 2 credits by taking successfully part in at least 5 meetings during period I. Any of the following counts as a successful participation:
- You solve at least 2 problems during the meeting.
- You solve at least 1 problem during the meeting and at least 2 additional problems during the following week.
NCPC counts as one meeting. If you miss some meetings, you can also participate remotely.
It is possible to get more credits if you continue during period II or participate in the NWERC contest or other programming contests during the autumn. If you are interested in the extended version (3–5 credits) of this course, please contact the lecturer in advance.