- To introduce how computers function at the instruction operation level.
- To introduce the relationships between the instruction operation level a nd both the higher (software) and lower (hardware) levels
- To introduce students to the structure and functionality of modern operating systems.
- To explain how the principal components of computer-based systems perform their functions and how they interact with each other.
- Machine architecture and instruction execution (5 lectures): The CPU. Stored Program concept. Program Execution. A very basic overview of instruction-level operation, using a small number of instructions only.
- Machine-level correspondence to high level constructs (5 lectures): Simple Arithmetic expressions. Array variables. Very simple loops. Conditional expressions. Subroutines and subroutine calling mechanisms. Stacks and recursion.
- Introduction to operating systems (2 lectures): Outline of time-sharing, i nterrupt mechanism, normal state/special state switching.
- Processes and Process management (5 lectures): process management and scheduling. Resource allocation, mutual exclusion, semaphores, deadlock.
- Concurrent programming in Java. (4 lectures)
- Memory management (4 lectures): storage organisation methods, paging, segmentation, memory allocation, caching, garbage collection.
- File management (3 lectures): Input/output, files, filestore organisation, buffering.
- Introduction to compilers (2 lectures): Lexical analysis, syntax analysis and code generation.
- Describe the structure and operation of computer hardware at the register transfer level.
- Implement/reason about simple algorithms at the level of machine code.
- Describe the overall structure and functionality of a modern operating system and its interactions with computer hardware and user processes.
- Construct/reason about programs that involve the management of concurrent processes.
- Explain at a simple level the operation and organisation of compilers.