Networked Systems H (2017-2018)
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:
-
describe and compare capabilities of various communication
technologies and techniques;
-
know the differences between networks of different scale, and how
these affect their design;
-
describe the issues in connecting heterogeneous networks;
-
describe the important of layering, and the OSI reference model;
-
understand demands of different applications on quality of service
requirements for the underlying communication network;
-
demonstrate an understanding of the design and operation of an IP
network, such as the Internet, and explain the purpose and function
of its various components; and
-
write simple communication software, showing awareness of good
practice for correct and secure programming.
Prerequisites
Computer Systems 2, Algorithms and Data Structures 2, and Java and
Object Oriented Software Engineering 2 (or their equivalents) are
pre-requisites. Advanced Programming (H) is a required co-requisite,
and Operating Systems (H) is a recommended co-requisite.
Timetable
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.,:
-
Peterson and Davie, Computer
Networks: A Systems Approach, 5th Edition, Morgan Kaufman,
2011, ISBN 0123851386
-
Kurose and Ross, Computer
Networking: A Top-Down Approach, 6th Edition, Addison-Wesley,
2012, ISBN 0273768964
-
Tanenbaum and Wetherall, Computer
Networks, 5th Edition, Prentice Hall, 2010, ISBN 0132553171
-
Bonaventure,
Computer Networking: Principles, Protocols and Practice,
online textbook
Credits
This is a level H course, worth 10 credits.
Assessment
Assessment is by examination (80%) and assessed coursework (20%).
Lecture Slides
Laboratory Sessions
Past exam papers