Course Information Undergraduate prospectus

Systems Programming

Course summary

Course code: COMP1564
Level: 5
Credits: 15
School: Architecture, Computing and Hums
Department: Computing and Information Sys.
Course Coordinator(s): Richard Anthony

Specification

Pre and co requisites

COMP 1587 Communication Systems and COMP 1148 Computer Programming.

Aims

This course introduces students to concepts and techniques for designing and developing software applications that communicate across a network. It aims:

To provide an introduction to the use of application programming interfaces in a variety of programming contexts to exploit the services offered by networks.
To provide a theoretical background to the provision and control of distributed resources, and of the operation of networked operating systems.
To give the student practical experience of engineering application software for networks and distributed systems.
To introduce an understanding of the concepts of distributed system performance, appropriate metrics and relevant factors affecting performance.

Learning outcomes

On completing this course successfully you will be able to:

A. Demonstrate a working knowledge of networking concepts - protocols, standards, performance issues.
B. Understand how distributed systems name, distribute and control resources.
C. Understand the need for, and operation of, core services in distributed systems.
D. Show competence in the use of the sockets application programming interface.
E. Design, implement and test networked applications.

Indicative content

TCP/IP and the Internet; discussion of the transport layer protocols - TCP and UDP; addresses and ports; application protocols.
Design development and debugging of network applications.
Introduction to distributed application architectures and design (peer-peer, client server and distributed objects) - performance and efficiency.
Distributed Systems - transactions, atomicity and related concepts.
Distributed Operating Systems - transparency, core services, distributed file systems.
Introduction to middleware, web services and java beans.
Distributed algorithms - election algorithms, clock synchronization algorithms.
Distributed applications - name servers, networked games, client-server software.
The sockets API, blocking and non-blocking operation modes of sockets, message buffering, point-to-point and broadcast applications.

Teaching and learning activity

Concepts will be introduced in lectures. Practical work will be through supervised laboratory sessions. Unsupervised, guided self-study will extend the amount of time students spend doing practical laboratory activities.

Greenwich Graduate Attributes promoted by this course:
Have an informed understanding of their discipline or professional practice, and the ability to question its
principles, practices and boundaries.
Think independently, analytically and creatively, and engage imaginatively with new areas of investigation.
Are intellectually curious, responsive to challenges, and demonstrate initiative and resilience.

Learning Time (1 credit = 10 hours)


Scheduled contact hours:

Note: include in scheduled time: project supervision, demonstrations, practical classes and workshops, supervised time in studio or workshop, scheduled lab work, fieldwork, external visits, work-based learning where integrated into a structured academic programme.
Lectures 24;
Seminars n/a;
Supervised practical sessions 24;
Tutorials n/a;
Formative assessment n/a;
Other scheduled time n/a.
Guided independent study:

Note: include in guided independent study preparation for scheduled sessions, follow up work, wider reading or practice, revision.
Independent coursework 30;
Independent laboratory work 36;
Other non-scheduled time 36;
Placements (including work placement and year abroad)n/a;
Total hours (Should be equal to credit x 10) 150.

Assessment

Coursework - 50% . Develop a networked application using TCP/IP sockets and either C++ or C#.

Exam - 50%. Any 2 questions from a choice of 3. Closed book.

Students are required to pass all components in order to pass the course. Pass mark is 40%.