Students study the interface between computer hardware and software. The role of operating systems in allocation and scheduling of resources, and the differing requirements of various resources are studied. Techniques of memory management are examined. The basic principles of device drivers are considered.
Students are introduced to the analysis and implementation of algorithms. Students learn to manipulate a range of data structures.