Skip to the content.

Preliminaries

Table of contents
  1. Rules of the game
    1. Warm-up exercises, not graded
    2. Weekly individual exercises, graded
    3. Finals exercises, graded
    4. Extra exercises from previous years, not graded
  2. Plagiarism and dishonest conduct
  3. Getting started
    1. Python
      1. Resources
    2. Docker
      1. Resources
      2. Checklist
    3. Git & GitHub
      1. Creating a GitHub account
      2. Setting up Git
      3. Resources
      4. Checklist
    4. VS Code
  4. Support

Rules of the game

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

There are 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 relatively short programming tasks related to the topics covered in class. You will submit your solutions via your private GitHub repository. Detailed submission instructions are provided later.

Important information:

Exercise ID Topic Evaluation opens Evaluation closes Deadline status Available Submissions
02 Graph Search 24th of September 14th of October (23:59 CET) tentative 10
03 Informed Graph Search 24th of September 14th of October (23:59 CET) tentative 10
04 Dynamic Programming 1st of October 21st of October (23:59 CET) tentative 10
05 Steering (Dubins) 15th of October 28th of October (23:59 CET) tentative 10
06 Collision Checking 29th of October 11th of November (23:59 CET) tentative 10

Finals exercises, graded

These are solved in small groups of up to 3 people, with the same modality as the weekly exercises. They will be a bit more involved content-wise. Instructions on group formation are provided via Piazza.

Exercise ID Topic Evaluation opens Evaluation closes Deadline status Available Submissions
13 To be announced 12th of November 2nd of December (23:59 CET) tentative 10
14 To be announced 3rd of December 23rd of December (23:59 CET) tentative 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 - -
11 Spaceship - -
12 Highway Driving - -

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 these tools are new to you, do not panic. We require only very basic use of most of them. It’s a good time to start learning these tools, as they are widely adopted in modern robotics.

If you get stuck, pair up with experienced colleagues. If that doesn’t solve the problem, reach out to the instructors on Piazza or during office hours.

If you are using a Linux-based OS, the process should be straightforward. Windows and macOS may have more hiccups, but they are supported as well.

Python

Python will be the programming language adopted in this course. You don’t need to install Python on your local machine because you’ll work in a Docker container with Python preinstalled (more information below).

Resources

If you want to learn Python basics, here are some resources to get you started:

Docker

We will run the exercises in a containerized environment, a technique widely used in modern software development. Read the Resources section for more information on Docker.

Now let’s install it on your computer:

If you are using Linux, you can choose to either install Docker Engine or Docker Desktop, but NOT both. Docker Engine is the core container runtime and is bundled with the Docker CLI docker, while Docker Desktop is Docker Engine + GUI + extra tools.

👉 For Linux users of this course, Docker Engine is recommended for its simplicity and lower resource usage.

If you are using Mac, follow the instructions below to install Docker Desktop:

If you are using Windows, follow this YouTube video to install Docker Desktop:

Resources

If you want to learn more about Docker, check out the following resources:

Checklist

Git & GitHub

Git is a version control software. GitHub is a cloud-based platform that hosts Git repositories. Please see the Resources section if you are new to them. You will need Git on your computer and a GitHub account.

Creating a GitHub account

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

Setting up Git

For Linux or Mac users:

For Windows users,

Notes for Windows users:

Resources

Checklist

VS Code

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

We recommend using VS Code. You can find installation instructions here. After installing VS Code, also install the Dev Containers extension from here.

There are many other good IDEs for Python (PyCharm, Atom, Spyder,…) that should work just fine if you know how to replicate the development environment in .devcontainer/ exactly. 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.