Software Fundamentals

This is the homepage for the software fundamentals course. You can find all course information here.

This course is part of the CESE masters programme. This course's curriculum will be continued by the course Software Systems and the Embedded Systems Lab

IMPORTANT This is the first year we run this course. We hope that everything is correct, but if you find anything that's unclear, please notify us and we'll update it. Also note that until September 5th, information may change without notice.

It is possible to use the course material in your own time. For example, if you are already following hardware fundamentals, but would still like to learn rust. In that case, we recommend you enroll in weblab "not for a grade". The assignments are freely available. The lectures are also available in writing on the lecture notes page


This course consists of two parts over 9 weeks. The first 4 weeks will have two weekly lectures and online assignments on weblab.

In this part, there will be weekly deadlines:

PartGradeddeadline always at 23.59
Assignments for week 1tuesday, week 2 (13 sept)
Assignments for week 2tuesday, week 3 (20 sept)
Assignments for week 3tuesday, week 4 (27 sept)
Assignments for week 4
Assignments on GitPASS/FAILsunday, week 5 (4 oct)
Projectfriday, week 9 (4 nov)

In the second half of the course there is a project. The project description will be published on this website at the end of week 4. You can only take part in this project if you have received a minimum grade of a 5 for each the first three weekly assignments.

The project will have a deadline in the end of week 9.

At the end of week 6 and week 9 we will ask you to fill in a buddycheck questionnaire evaluating your team's performance in the project. These are mandatory.

Minimum grades

The first 3 weekly assignments decide your grade for part 1 of the course. The grade for each week needs to be at least a 5.0 to take part in the second half of the course (project).

Note that the assignments from week 4 are not part of your grade. Week 4 on weblab is optional, but there will be a separate assignment about using git. This assignment is mandatory to start the group project, even though you won't get a grade between 0 and 10 for it. It is simply pass or fail. During the group project, you will collaborate using git, and it's expected that you all know the basics by then.


Every week there will be two lab sessions with TAs. In these lab sessions you can ask questions and discuss problems you are having. During the project you are expected to work together with your group during these labs. During these labs you will have a meeting with a TA assigned to your group to discuss your progress.

To ask questions in the lab, we will open a queue on You can register in it (multiple times per lab if you want). That way we (the TAs) can fairly distribute our time over everyone.


Specific information about the project will be published in week 4.

Lecture notes

Each lecture will have an associated document with an explanation of what is discussed in the slides. This document will be published under lecture notes. We call these the lecture notes. You can use these to study ahead (before the lecture) which we recommend, so you can ask more specific questions in the lectures. And we do invite you to ask lots of questions! but in the case you could not make it to a lecture, it should also give you a lot of the information covered in the lectures in writing.

if you are learning rust but are not following the course for credits which some of you are, you can use the lecture notes to help you make the assignments.

All lecture slides are also published here