Goals of the course

This course aims to give a deeper understanding of:

We will mostly do this through practical examples, using the Unix operating system, and C and C++ programming. The emphasis of the course is on drawing lessons from practical solutions to concrete problems. Our goal is to create simple, clear and general solutions to real problems. The resulting software should be simple, correct and maintainable.

Recommended Reading

You don't need to buy any of these books. If you are interested in also learning C++, it may be worthwhile to read Thinking in C++. This book is available free online.

Lecture Notes

The lecture notes for the course can be found here

GNU Debugger

The gdb cheat sheet can be found here.

Labs

Lab Group Demonstration Slots

For the labs you will be divided into four groups: