Computer Architecture and System Software

This website is the source of all information regarding the exercise sessions of the Computer Architecture and System Software course.

For a few years now, we provided the exercise sessions as web pages. So far the feedback has been positive, but please reach out to us if you disagree or if you think we could make the course better. If you find mistakes or errors, just reach out to us on Toledo, in person, or through email. You are also most welcome to create pull requests: The source code of this website is available on GitHub. Both in the GitHub repository as well as on this website, you may be able to find some pages that are hidden from the menu and that are not unlocked yet (such as future sessions or solutions). You are free to look at these pages, but please be aware that we will be actively working on each session up until the Monday of the session’s week - so be careful when roaming around as the pages may not be final yet!

Exercises

There are 9 exercise sessions in total. The material available on this website contains both the theory, the exercises, and the solutions. The solutions are hidden until the end of each week.

Please bring your laptops to the exercise sessions. You can work at your own pace, and don’t be afraid of asking questions from the teaching assistant. If you don’t have time to finish the exercises, it is recommended to finish them before starting the next session.

Even if the solutions are already visible, it is strongly recommended to first write the solutions on your own (even using external resources, if you understand them) before you look at the provided solutions.

The 9 sessions will have the following contents:

Week Session name
Feb 19 C & assembly basics
Feb 26 Advanced C & assembly
Mar 4 Functions and the stack
Mar 11 Dynamic memory
Mar 25 Operating systems
Apr 22 Large exercise: linked lists
Apr 29 Caches
May 6 Microarchitecture
May 13 Recap and Q&A

YouTube videos

There are videos available from 2020 on Youtube, where the theory of each session is explained. These videos might help with understanding the concepts, but watching them is not required, and they do not substitute working through the material yourself, as there might be new content included this year. Note that we changed the exercises slightly to make the introduction to C and assembly easier, so there are already differences compared to the videos. For example, some exercises and their solutions that are presented on the Youtube channel are shuffled around or are different this year. Nonetheless, the videos can be a good addition if you prefer the video style to a website.

Other useful resources

There are lots of other alternative resources out there that teach you the same concepts as this course does. If you find a resource that you liked exceptionally well, why not reach out to us or create a pull request for the website so that we can expand the list below? Just be aware that we can’t verify that 100% of the information on the resources below is indeed correct, we just quickly checked that they look good to give you options when studying for the course.