University of Birmingham School of Computer Science
Home double arrow Internal double arrow Modules

SYLLABUS PAGE, 2009/10

06-17423
Systems Programming in C/C++

Level 3/H

Dr E Ritter
10 credits in Sem2

Programmes | Modules | Links | Outline | Aims | Outcomes | Prerequisites | Teaching | Assessment | Books | Detailed Syllabus

The School of Computer Science Module Description is a strict subset of this Syllabus Page. (The University module description has not yet been checked against the School's.)

Relevant Links

Module Material [2009]

Outline

This module presents system programming in C/C++ together with the necessary tools like Makefiles and package managers. The module also describes the structure of an operating system kernel and explains how to modify it.

Aims

The aims of this module are to:

Learning Outcomes

On successful completion of this module, the student should be able to: Assessed by:
1 Write programs in C/C++. Continuous Assessment, Examination
2 Write programs with explicit pointer manipulation. Continuous Assessment, Examination
3 Package software for distribution. Continuous Assessment, Examination
4 Write low level systems programs. Continuous Assessment, Examination

Restrictions, Prerequisites and Corequisites

Restrictions:

None

Prerequisites:

06-019423 and 06-19321 Software System Components 1 and 2 (or equivalent)

Co-requisites:

None

Teaching

Teaching methods:

2 hrs lectures plus 2 hour lab session per week

Contact hours:

35

Assessment

Normal (sessional): 1.5 hr examination (80%), continuous assessment (20%).

Resit (supplementary) assessment (where allowed): By examination only.

Recommended Books

Title Author(s) Publisher, Date Comments
The C Programming Language Brian W. Kernighan, Dennis M. Ritchie Prentice Hall, 1998 By far the best book on C. Written by its inventors.
Object-Oriented Programming in C++: A Tutorial for Newcomers N. Josuttis J. Wiley and sons, 2002 An Introduction into C++
Understanding the Linux Kernel D. P. Bovet O' Reilly, 2000 A Description of the Linux Kernel

Detailed Syllabus

How to write and execute programs.

How to do debugging and testing.

Basic I/O. Makefiles. Coding conventions (including Macros)

Pointers: Arrays, argument passing, lists, records.

Bigger programs (include-files, externals)

Packaging programs for distribution.

Objects in C++.

Linux kernel programming. System Calls, Modules, Networking Layer.

Constructing a bigger example: firewall extension.

Programmes | Modules | Links | Outline | Aims | Outcomes | Prerequisites | Teaching | Assessment | Books | Detailed Syllabus