Comp309 PDF
Comp309 PDF
Comp309 PDF
Credit Value 3
Level 3
Objectives
To introduce students the concepts and principles of system programming and
to enable them to understand the duties and scope of a system programmer.
To provide students the knowledge about both theoretical and practical aspects
of system programming, teaching them the methods and techniques for
designing and implementing system-level programs.
To train students in developing skills for writing system software with the aid
of sophisticated OS services, programming languages and utility tools.
Intended Learning Upon completion of the subject, students will be able to:
Outcomes Professional/academic knowledge and skills
(a) organize the functionalities and components of a computer system into
different layers, and have a good understanding of the role of system
programming and the scope of duties and tasks of a system programmer;
(b) grasp the concepts and principles, and be familiar with the approaches and
methods of developing system-level software (e.g., compiler, and
networking software);
(c) apply the knowledge and techniques learnt to develop solutions to real-
world problems;
(d) select and make use of the OS kernel functions and their APIs, standard
programming languages, and utility tools;
(e) organize and manage software built for deployment and demonstration;
Teaching/Learning
In lectures, concepts, models and algorithms will be explained with illustrative
Methodology
examples.
Tutorials and lab sessions help students understand concepts and improve their skills
on solving problems.
Assessment
Methods in Specific assessment % weighting Intended subject learning outcomes to be
Alignment with methods/tasks assessed (Please tick as appropriate)
Intended Learning
Outcomes a b c d e f g h
1. Assignments 35%
2. Mid-term 20%
3. Examination 45%
Total 100 %
All three items are appropriate to evaluate the intended learning outcomes. Assignments
are used to evaluate writing skills, critical thinking, problem solving and team work
(items a – f). Mid-term test and final examination can further help evaluate the above
outcomes, in particular, items a-f.
Tutorial/Lab 14 Hrs.
Assignments 49 Hrs.
Reference Books:
1. W. R. Stevens and S. A. Rago, “Advanced Programming in the UNIX
Environment ”, 2nd edition, Addison-Wesley, 2005.
2. A.W. Appel, “Modern Compiler Implementation in Java”, Foundation Books,
2007.
3. K.C. Louden, “Compiler Construction: Principles and Practice”, PWS
Publishing Company, 1997.
4. L.L. Beck, “System Software: an Introduction to System programming”, 3rd
edition, Addison Wesley, 1996.
5. K. Cooper and L. Torczon, “Engineering a Compiler”, Morgan Kaufmann,
2003.
6. J. Cooperstein, “Writing Linux Device Drivers: a guide with exercises”,
CreateSpace, 2009.