L Computer Science & Electrical Engineering

Real-Time Systems


Lab work should be carried out in teams of two students.

While it is perfectly ok to use the lab at any time if resources are available, access can only be guaranteed during scheduled lab hours.


The assignments are compulsory, i.e., you are required to pass them all to pass the assignments part of the course. The only grades given on the assignments are passed or not passed. If you have not passed all assignments at the end of the course you will have to redo the assignment part of the course next year.

The assignments should be written in C, targeting the AVR Butterfly board and using our own in-house kernel (where appropriate). No solutions using any other language, or any other operating system, will be accepted in this course.


For grading, the design and presentation of the solution will be considered. It is not enough that a program produces ``correct'' output to be accepted. Solutions must use the methods and primitives requested in each assignment, and not enforce more serialization than necessary. Conversely, programs allowing too much concurrency by failing to ensure mutual exclusion when needed will not obviously not be accepted.


An assignment is completed when the following conditions have been met:
  1. The team has produced a working solution (design, quality, comments etc. according to the description above) and demostrated it in the lab.
  2. Upload the code in canvas.
  3. An additional oral examination has been passed. It is okay to divide work, but both memebers of the team must be able to answer questions about all parts of the solution, even the part he or she didn't write.

Due dates

For each assignment there is a due date that must be met. However, if you notice that you are unable to finish an assignment before the deadline, you can apply for a new date (at least a day in advance). Bring your work this far to your lab instructor and make a plan for when to demonstrate the full program. Remember that a later deadline for an early lab gives you less time for the next.

NOTE: no deadlines adjustments will ever be made retroactively!

Cooperation vs. cheating

You are encouraged to work together with other groups on a conceptual level, as long as you declare which people you have been working with at your presentations. Note that this means that you are required to develop your own running code for each assignment. If it is found out that source code has been stolen or copied, it will treated as cheating, and reported to the disciplinary board.

Severe failure at an oral examination by a team or a single team member will be interpreted as an indication of cheating, on the grounds that a solution can possibly only exist as the result of the knowledge possessed by its authors. It is the responsibility of the team to ensure that each member is prepared to defend the solution.