Study-Unit Description

Study-Unit Description


CODE CPS2003

 
TITLE Systems Programming

 
UM LEVEL 02 - Years 2, 3 in Modular Undergraduate Course

 
MQF LEVEL Not Applicable

 
ECTS CREDITS 5

 
DEPARTMENT Computer Science

 
DESCRIPTION This study-unit will assume that students have an aptitude for computer programing in an imperative programming language, and that students are familiar with programming concepts such as variables, functions, flow control and linked lists. This unit enforces the concepts introduced in Operating System module with a hands-on approach.

The teaching environment is UNIX-based, and so students are expected to know either UNIX System V or Berkeley UNIX. The UNIX system and the C language will be used to experiment with operating system facilities in avenues such as low-level file input/output, process creation and manipulation, advanced signal handling and interprocess communication (such as pipes, fifo files, semaphores, shared memory and message queues). In addition, socket programming will be introduced to allow interprocessor communication through TCP/IP. The practical application of these concepts will then be examined through the allocated assignments. By the end of the study-unit, students will be competent C programmers who will also appreciate the complexities of low level systems programming on Unix.

Study-unit Aims

The aim of this study-unit is to provide an in-depth understanding of UNIX-based operating system concepts through a hands-on approach.

Learning Outcomes

1. Knowledge & Understanding:
By the end of the study-unit the student will be able to:

- Describe advanced UNIX operating system concepts and terminology;
- Demonstrate a command of the basic tools used to develop software in C on the Unix platform;
- Describe process management in the Unix environment;
- Describe basic IPC issues and techniques in Unix programming;
- Describe socket programming using the Berkeley socket AP.

2. Skills:
By the end of the study-unit the student will be able to write, compile, debug and execute C programs that:

- Correctly use system interfaces provided by UNIX or a UNIX-like operating system;
- Create, manage and terminate processes and threads on UNIX;
- Use UNIX synchronisation primitives;
- Interact by invoking and catching signals;
- Use files and I/O on UNIX;
- Make use of memory management functions;
- Are distributed and communicate across a network.

Main Text/s and any supplementary readings

Main Texts:
- Advanced Programming in the UNIX Environment. W.R. Stevens. Addison-Wesley, 2005. ISBN 0201433079.
- UNIX System Programming. 2nd Ed. K. Haviland, D. Gray and B. Salama. Addison-Wesley, 1998. ISBN 0 201-87758-9.

Supplementary Readings:
- The C Programming Language. BW Kernighan, DM Ritchie. Prentice-Hall, 1988. ISBN 0-13-110362-8.
- C How to Program. HM Deitel, PJ Deitel. Pearson Prentice-Hall, 2007. ISBN 0-13-240416-8.

 
ADDITIONAL NOTES Students taking this study-unit are assumed to have knowledge of the material covered in the following study-units:
- CPS1000 or CPS1011;
- CPS1004 or CPS1012;
- CSA1018 or ICS1018.

 
STUDY-UNIT TYPE Lecture, Independent Study & Practicum

 
METHOD OF ASSESSMENT
Assessment Component/s Sept. Asst Session Weighting
Assignment Yes 60%
Examination (2 Hours) Yes 40%

 
LECTURER/S Alessio Magro

 

 
The University makes every effort to ensure that the published Courses Plans, Programmes of Study and Study-Unit information are complete and up-to-date at the time of publication. The University reserves the right to make changes in case errors are detected after publication.
The availability of optional units may be subject to timetabling constraints.
Units not attracting a sufficient number of registrations may be withdrawn without notice.
It should be noted that all the information in the description above applies to study-units available during the academic year 2023/4. It may be subject to change in subsequent years.

https://www.um.edu.mt/course/studyunit