- To introduce how computers function at the instruction operation level.
- To introduce the relationships between the instruction operation level and both the higher (software) and lower (hardware) levels
- Machine Architecture and instruction execution ( 6 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 (6 lectures): Simple Arithmetic expressions. Array variables. Very simple loops. Conditional expressions. Subroutines and subroutine calling mechanisms. Stacks and recursion.
- Introduction to Electronic Logic Circuits (4lectures): Elementary logic gates. Simple combinational circuits, half-adder and full-adder, parallel adder and comparator. Flip-flops.
- Introduction to Operating Systems (3 lectures):Outline of time-sharing, interrupt mechanism, normal state/special state switching.
- Introduction to Compilers (2 lectures): Lexical analysis, syntax analysis and code generation.
- Concepts of process (3 lectures): Idea of a process. Foreground and background processes. Inter process communication, process spawning. Simple Unix process control facilities. Shell scripts.
- Basic networking concepts (3 lectures):Protocols, client-server concept, the Internet.
- System support tools (2 lectures): Introduction to the Assembler and simulator/debugger used in the practical work
Practical Work: Practical work is carried out on the Departmental Unix system. Some introductory assembly-language programming will be carried out using a simulator, but facility in assembly-language programming is NOT an aim of the course. A modest Unix Shellscript will also be developed.
Rob Williams, Computer Systems Architecture, A Networking Approach, Addison-Wesley, 2001 (and later editions)
At the conclusion of the module, students should:
- Understand how a computer operates at the machine code level;
- Understand at an introductory level the structure of computer hardware at the gate and register transfer level;
- Appreciate the roles and organisation of the major kinds of system software, including operating systems, compilers and system service routines.
Three lectures are given each week for the 12-week duration of the module. In addition, for one hour each week for 8 weeks, students will work in a tutorial setting under staff guidance. Work is carried out individually and comprises material to support the lectures.There are two formal assignments, both lasting two weeks, which are graded for the CA component of the module. There is an examination at the end of the module.