CodeJam Laboratory (FS 2021)
In this lab you will practice writing computer programs in a fun competitive environment. The problem statements tell a short story, describe a puzzle, and clearly define input and output. Your short program must compute the solution in a few seconds. Many programming contests such as the International Olympiad in Informatics, the International Collegiate Programming Contest or Facebook Hacker Cup exist, but in this lab we focus on the Google CodeJam series. Besides being fun, CodeJam is a great way to improve your programming and problem solving skills. CodeJam-like problems are also used frequently in interviews for software developer positions.
We will use current and past problems from Google CodeJam. Please register with CodeJam before attending the lab. You may use any of the 30+ programming language supported by CodeJam, but we recommend C++ or Python that you may know from ITET lectures.
In the first two afternoon sessions we will look at two prior qualifying rounds, and discuss some valuable techniques and tricks. Then you will try to qualify in the actual CodeJam qualification round! The qualification round is relatively easy, and we hope that everybody who tries should make it. After you qualify, we continue with up to 3 more Round 1 competitions. You can participate in the actual competition, and we have a lab session after each competition to help you with the problems you did not solve. In order to get the lab credits, you either need to achieve enough points during the competition or show suffient effort during the lab. Qualifying for Round 2 is quite difficult. If you manage to qualify, you get a chocolate.
This year, the CodeJam lab will be fully online. You can solve the problems anytime before or on the lab date (and don't necessarily need to be present during the official lab time). Please join the Moodle course where you can ask and answer questions.
Lab language: German or English.
Lab organization: Robin Fritsch, Thursday 14:00-18:00 online
Lab registration: Link If you have missed the deadline or want to unregister, please contact Susann Arreghini (sarreghini@ethz.ch).
Submission: For each lab you must submit proof of your work in order to get the credits. Upload a screenshot (example) for every problem you solve to the polybox folder listed in the table below (please name it FirstName_LastName_ProblemNumber). The submission deadline is midnight on the lab date.
Rules: You may use any resources you find online and work together with your colleagues. However, everyone must write their own programs. Do not copy other people's code! For problems from past rounds, CodeJam provides an "Analysis" that describes how the problem can be solved. We strongly recommend that you first try to come up with your own solution before using this.
News
- 03.03.2021: It's already possible to work on the problems of the first two labs and ask questions in the Moodle course.
- 03.03.2021: On 11.03.2021 at 14:00 we will give a short introduction to the lab on zoom (https://ethz.zoom.us/j/99189020010).
- 15.03.2021: For all upcoming labs: If you have any questions, don't hesitate to ask them either anytime in Moodle or during the lab time on zoom (for a zoom call send an email to rfritsch@ethz.ch).
- 22.03.2021: Remember to take part in this year's Qualification Round this week Friday 14:00 - Saturday 20:00!
Schedule
Lab | Competition Date | Lab Date | Passing Requirement | Submission Link |
---|---|---|---|---|
Training 1 | no competition* | 11.03.2021 | 40 points | polybox |
Training 2 | no competition* | 25.03.2021 | 40 points | polybox |
Qualification | 26.03.2021 14:00 (30h) | 01.04.2021 | 30 points | polybox |
Round 1A | 10.04.2021 03:00-05:30 | 22.04.2021 | 30 points | polybox |
Round 1B | 25.04.2021 18:00-20:30 | 29.04.2021 | 20 points | polybox |
Round 1C | 01.05.2021 11:00-13:30 | 06.05.2021 | 30 points | polybox |
*These are the qualification rounds from previous years.