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.


Lab Group Demonstration Slots

For the labs you will be divided into four groups: A small number of students have timetable clashes with their default lab, and they have been assigned to different lab groups. See Blackboard for details.
If there is space you are welcome to come to more than one lab. However, you can demo your lab work only during your allocated lab slot.

Lab Work Marks

Labs are submitted and marked using the Blackboard system. If you have any questions about the marks, about submitting your lab work, you should contact the lab TA Grace Cowderoy.