This course aims to convey an understanding of the problems of
programming distributed systems. After taking the course, the student
will be able to program over a networked system, and will be able to
criticise algorithms and designs for distributed systems.