Networked Systems H (2018-2019)

Networked computer systems are becoming ubiquitous, whether in the form of desktop and laptop computers connected to the Internet, mobile phones, television set-top boxes, or the myriad of networked sensors and embedded computing systems that surround us in our everyday life. An understanding of the operation of these systems is essential for practising engineers and computer scientists, both to manage, design, or implement the next generation of networked systems, or to make effective use of the current generation. This module introduces the fundamental concepts in networked systems architecture, using a layered reference model, and outlines some strategies for low-level communications software development, as a basis for the future study of large-scale and high-level communications models.

Aims and Objectives

The aims of the course are: to introduce the fundamental concepts and theory of communications; to provide a solid understanding of the technologies that support modern networked computer systems; to introduce low-level network programming concepts, and give students practice with systems programming in C; and to give students the ability to evaluate and advise industry on the use and deployment of networked systems.

By the end of the course, students should be able to:


Computer Systems 2, Algorithms and Data Structures 2, and Java and Object Oriented Software Engineering 2 (or their equivalents) are pre-requisites. Systems Programming (H) is a required co-requisite, and Operating Systems (H) is a recommended co-requisite.


The course consists of a series of lectures delivered over 10 weeks, supported by weekly 2-hour laboratory sessions.

Recommended Reading

Any good text on computer networks, e.g.,:


This is a level H course, worth 10 credits.


Assessment is by examination (80%) and assessed coursework (20%).

Past exam papers:

Lecture Handouts

Laboratory Handouts