Skip to the content.

Preliminaries

Rules of the game

The programming exercises are a great way to understand and apply what you learn in class.

There will be four types of exercises:

Warm-up exercises, not graded.

Just ensuring everything is working as expected.

Weekly individual exercises, graded.

The weekly exercises must be solved individually. They will involve relative short programming task related to the topics covered in class. You will submit your solutions via your private repository on Github (detailed instruction on the submission procedure can be found later on).

Important information:

Exercise ID Topic Evaluation opens Evaluation closes Deadline status Available Submissions
02 Graph Search 25th of September 15th of October (23:59 CET) confirmed 10
03 Informed Graph Search 25th of September 15th of October (23:59 CET) confirmed 10
04 Dynamic Programming 2nd of October 22nd of October (23:59 CET) confirmed 10
05 Steering (Dubins) 16th of October 5th of November (23:59 CET) confirmed 10
06 Collision Checking 23rd of October 12th of November (23:59 CET) confirmed 10

Finals exercises, graded.

These will be solved in small groups of 3 people maximum but the modality is the same as the weekly exercises. They will be a bit more involved content-wise. Instructions on the group forming modality are provided via Piazza.

Exercise ID Topic Evaluation opens Evaluation closes Deadline status Available Submissions
11 Spaceship 13th of November 3rd of December (23:59 CET) 10th of December (23:59 CET) confirmed 10
12 Highway Driving 4th of December 23rd of December (23:59 CET) confirmed 10

Extra exercises from previous years, not graded.

You can have a look at the finals from last year and challenge yourself.

Exercise ID Topic Evaluation opens Evaluation closes
07 Optimization - -
08 Driving Games - -
09 PDM4ARocket Explorer - -
10 Robot Runners - -

Plagiarism and dishonest conduct

We take plagiarism and dishonest conduct very seriously. The exercises are meant to be solved individually. We will check for plagiarism with automated software and human help. Violating the ETH plagiarism etiquette will result in disciplinary actions as per ETH regulations.

“C. The consequences of plagiarism Pursuant to Art. 2 Para. b of the ETH Zurich Disciplinary Code (RSETHZ 361.1) plagiarism constitutes a disciplinary violation and will result in disciplinary procedures. Detailed information regarding these procedures and their jurisdiction may be found in the ETH Zurich Disciplinary Code (RSETHZ 361.1 / www.rechtssammlung.ethz.ch).”

Getting started

We will use:

If they all sound completely new to you do not panic. We will require a very basic use of most of them, but it is a good time to start learning these tools since they are all widely adopted in modern robotics.

If you get stuck, try to pair with experienced colleagues for help. When this still does not solve the problem, try to reach out to the instructors on XXX or at the office hour.

If you are using a Linux-based OS the process should be straight forward. Windows and Mac can give some more hiccups in the setup, but they are supported as well.

Git

Git is a version control software. Please find more explanation under the “Resources” paragraph if you have never heard of it before. You will need Git on your computer and a GitHub account.

Installing Git

Simply follow the steps for your OS at this link

Creating a GitHub account

If you do not have already a GitHub account create a new one here

Resources

Checklist

Docker

We will run the exercises in a virtual environment (or better, in a container). Read the “Resources” section to get a better understanding of it, containerization is ubiquitous in modern software development. Now let’s install it on your computer:

Resources

Checklist

Python

Python will be the programming language adopted in this course.

Resources

VS Code

Using an IDE is not necessary. But it provides a good set of tools that speed up the development (code navigation, debugging,…). Moreover, we will provide environment configurations that will make your life easier.

Install VS Code

There are many other good IDEs for python (PyCharm, Atom, Spyder,…), they should work just fine if you know how to replicate exactly the development environment in .devcontainer/ but we won’t support them officially.

Support

Use the forums on Piazza for general questions: this way, you can help other students who experience the same issues.