Exam / Final Demonstration


Attendance is mandatory on the exam day!

The final demonstration consists of two parts. With the first part we check the capability of your robot handling errors and exceptions correctly.
Here, you have to process two out of four short bar code cards.

The second part is processing a sequence on multiple pages. In order to receive full points all codes must be decoded and executed correctly.


Your robot should be capable of reading and processing 4 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 / final demonstration the following requirements must 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 2023/2024:

  • Date: January 2024
  • Time: by appointment
  • Where: TBA

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 first day of our exam period.
    Any subsequent changes will not be considered for the exam.
    • Exact date can be found in our schedule.
  • 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 parts recount of the EV3-box 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!”

Small FAQ

  • 45 minutes per group planned (max. 1 hour)
  • Two parts: First select two out of four small programms, then process the multiple-pages program
  • Questions:
    • Am I allowed to adjust page/robot position … to help the processing? - YES, but wait for my permission
    • Can I adjust color/speed values before the exam? - YES
    • My robot expects manual input, e.g. number of lines. - Not permitted, use auto-detection and given constraints from task
    • For multiple pages, can I use button input after placing the next page? - YES
    • For multiple pages, can I place/collect the page by hand? - YES
    • On error, e.g. uncorrectable codes, should I continue… ? - No, every error (after double-checking) aborts the program
    • I’ve changed code parts from the template, will this effect my grade? - Worst case: YES (e.g. my tests are failing)

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, read code bars and multiple rows
    • 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
    • Part of individual grading


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 group repository. Also make sure to 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 checked and, if necessary, counted again. 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 parts in general (e.g. with glue or other stuff)!


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