Attendance is mandatory on the exam day!

The exam consists of two parts. With the first part we check the capability of your robot handling errors and exceptions correctly. You will have to read 2 out of 4 bar code cards (your own choice).

The second part is the execution of a multi-page sequence (2+ pages). In order to receive full points all codes must be decoded and executed correctly.

Your robot should be capable of reading and processing 5 bar code cards in less than 20 minutes. Otherwise you may not receive the best grade possible.


In order to be approved for the exam the following requirements have to be fulfilled:

  • Enrolled into the Übungsaufgaben module (depending on your study course) in SELMA

  • Enrolled into the Praktikumsprotokoll / Projektarbeit module (depending on your study course) in SELMA (available after passing all assignments)

Below the necessary information for the winter term 2021/2022:

  • Date: Calendar week 2, 2022

  • Time: by appointment (time slot)

  • Where: APB/3105

Your individual grade will be put into SELMA in est. CW6/2022.

Formalities / Procedure

The demonstration of the robot during the exam is a group performance, the grading in the end, however, an individual one!

  • The access to the group repositories will be restricted to read-only at 8:00 // 8.00am on the day of the exam.
    Any subsequent changes will not be considered for the exam.

  • Attending the exam is mandatory for all group members
    An unexcused absence is rated as 5.0.

  • We will run the robot with the latest version of your master branch of your group repository.

  • After the exam the return of the equipment you received including weighing of the EV3-boxes takes place.

  • In addition, we will check your git contribution, the correct use of the templates and the unit-tests.
    Using and programming with the interfaces provided is mandatory!

  • Each plagiarism trial is rated 5.0.
    Therefore, act according to our principle: "Exchange ideas, but no source code!"

Notes on the grading

Several parts of your robot and implementation will be tested and graded. This may include:

  1. Mechanics and signal analysis

    • Overall construction

    • Correct recognition of the binary sequence from analogue color sensor values

  2. Hamming code

    • Decoding

    • Error detection (routines for uncorrectable errors)

    • Error correction

  3. Stack machine

    • Semantics (overflow, exception, etc.)

    • Correctness of arithmetic

  4. Unit-tests


The usage of Git is mandatory and an essential part of this course.

Hence, a single monolithic commit just right before the exam will be reflected in a worse grade. In addition to that, both partners should have contributed to the project equally since it is a team effort.

You are of course encouraged to make use of branches for the ease of development. However, please ensure to have the final version of your code ready on the master-branch.

Interface / Template

The template classes written in Python we’ve provided to you include basic functions that allow us to test and grade core parts of your overall implementation. They consist of some classes, HammingCode, StackMachine and Robot, as well as their respective return codes. Using these templates and method definitions is mandatory.

In order to be able to test your implementation, the files must be present inside the /src/ folder of your repository. Also make sure that you expect and return the correct types as explained during the consultations.

Box return

Remember to bring all the equipment with you and not to forget the SD adapter, AC adapter or similar at home. So you save us and yourself a lot of work.

After the exam, please deconstruct / disassemble your robot, sort the LEGO box according to the template and return the Lego kit to us. The box is weighed and, if necessary, the reason for a difference is checked. If many and / or important parts are missing, the group has to pay for the cost of the replacement parts.

Please note that we do not accept broken or damaged bricks (e.g. with glue or other stuff)!

Please sort the boxes according to the template. Unsorted boxes will not be accepted by us!