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
- Systems software
- How the two interact
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.
- The Practice of Programming Kernighan and Pike
- Programming Pearls Jon Bentley
The lecture notes for the course can be found here
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
- Group 1: 12.00-12.50: Students whose surname begins with a letter between "P" and "Z".
- Group 2: 13.00-13.50: Students whose surname begins with a letter between "H" and "N"
- Group 3: 14.00-14.50: Students whose surname begins with a letter between "D" and "H"
- Group 4: 15.00-15.50: Students whose surname has a prefix between "A" and "C"
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.