Systems Programming in C
Why should I study Systems Programming?
What will I learn?
An introduction to C
- Syntax of functions and basic structure, keywords, expressions;
- Variables, scoping and lifetime, types and type conversion;
- Arrays and pointers;
- Run time stack, function invocation, parameter passing, passing arrays;
- Memory: segments (automatic, static and dynamic);
- Dynamic storage allocation;
- Compilation process: preprocessor, compiling object code;
- Static and dynamic linking;
- File I/O: streams, reading and writing files.
- Design philosophy;
- Command line options, I/O redirection, pipes;
- Profiling tools (gprof), binary tools (ld, ldd, nm);
- Debugging (gdb, ddd);
- Basic shell scripting;
- Build tools (make);
- Signals and handling;
- I/O: synchronous and asynchronous
- Threads: pthreads - simple intro
- Timers and uses: real time and process time
- Simple games/animation to illustrate the above and possible
ways to multi-task, concurrently handle input and action.
What should I know before I enrol?
How will my performance be assessed?
Your performance in the course will be assessed in three ways:
- Practical exercise marks will contribute between
20% and 30% to your final score.
- The final exam usually contributes the remainder of
- Tutorials are not usually assessed.
However, we do record your attendance.
The precise details of assessment vary from year to year, and will
be explained at the first lecture.
What comes next?
There are a number of courses that follow on from Systems Programming in C:
- Operating Systems examines the additional hardware
required to run a modern operating system (such as Windows, Linux, or OS-X),
and shows a number of subtle issues that arise inside operatings systems.
- Distributed Systems examines the interesting problems that
arise when computer programs are executed on a number of computers
connected together in a network.
What do students think of this course?
From time-to-time, we ask students to give their opinion of this course,
and allow the lecturers to respond to the evaluation.
The most recent results, labelled "courseEvaluation", and "courseResponse"
The information presented here should apply to most students.
It is possible, however, that special conditions may apply to you.
You can find out by reading the
University Calendar program rules