The aim of this course is to teach us to build practical skills. It'll allow us to understand the capabilities of different programming language, and hence allow us to choose the appropriate tools for any job.

Qualities of Software Systems

  • Correctness
  • Clarity
  • Reliability
  • Efficiency
  • Portability


For tutorials we'll be given a mark from A-D. 8/9 Bs should get us full marks for the labs.

We will have to show our tutor our lab work in person.

There are no group-based assignments.

The first assignment will be a Python to Perl translator (over a subset of instructions), and will be worth 15%.
The second assignment will be web-based (perhaps an engineers' dating site) and will be worth 15% as well.

The exam is worth 60%, and we must score 50% on it and pass two practical implementation tasks to pass the course.

Brownie Points

We can earn brownie points by assisting other students in labs and being super awesome in our lab/assignment work.

If our raw mark is less than (85+brownie points), then we get 85+(brownie points/2) as our mark.


There are lots of wonderful books on the list, but none of them are particularly useful for 2041.