Detailed Syllabus

For the course syllabus see the Departmental web pages, this is the authorative statement of what you should know.

The course consists of a series of lectures, a series of tutorials (a set of 5 tutorial sheets will be provided to help you check your understanding of the course material), and some course notes (i.e. these web pages). A class test will also be provided, which contributes to the final exam mark as a continuous assessment mark. In addition you are expected to do some background reading froma good text book covering the following syllabus.

What is a Computer? / History of Computing
Central Processing Unit (CPU) and Peripherals: Input, Output, Storage
Moore's law and the evolution of the CPU
Computer Busses: Peripheral bus, memory bus

Input/Output (I/O): Parallel and Serial Ports
Harvard (PIC) and Von Neuman Archirtectures (Power PC CPU)

Integer Unit:
Registers, Assignments, Arithmetic Operations, Logical Operations
Bits, Nibbles, Bytes
Binary, Decimal, Hexadecimal
Conversion between binary and hexadecimal, decimal and hexadecimal

Incrementing and decrementing in binary
Binary and Hexadecimal addition
Signed numbers, 1's complement, 2's complement, subtraction
Size of variables, bytes, short integers, long integers, conversion
Shift left, shift right, role of carry

Dispatch Unit:
Program Counter (PC), Instruction Register (IR), fetch-execute, indirection.

Machine Code: Binary representation, instructions, opcodes and operands.
Instruction sets: Immediate, register, memory, indexed offset, jump.
Complex Instruction Set Computer (CISC), Reduced Instruction Set Computer (RISC)

Memory:
Memory Addresses and Values
Memory Bus: Address Bus, Data Bus, and Control Bus
Signals: Chip Select (CS), Read/Write (RW)
Memory Types: S-RAM, D-RAM, ROM, EPROM, FLASH

Memory Queue and Bus Controller: read queue, write queue, relative speed of RAM.
Instruction and Data Cache: Cache memory, read cache, write cache.

Branch Unit and Status Register:
Status Register
Long Addition, Long Shifts
Jumps, Branches, Conditional Branches, Loops

Floating Point Unit:
Existance of floating point registers and instructions

Input/Output:

Parallel I/O; Serial I/O; Asynchronous Transmission, Bit-Order, ASCII, Parity

Software:
C compared to Assembler
Stacks: Push byte, Pop byte, Push word, Pop word
Stack Pointer (SP): Growth down-wards, heap area, static area, text area
Procedures: JSR, RTS, Parameters, reasons for using.
Stack Frames: Calling Parameters, Call by value, call by pointer, Local variables
Arrays
Characters, Strings, ASCII
Queues: First In First Out (FIFO), Last In First Out (LIFO)
Operating Systems: Toolbox/Libraries, Kernel, Low Level Drivers

Compilers and Assemblers:
Mnemonics, variables, directives

Assembly process, object code, libraries, the linker, executable code
Compiling, directives, object code, libraries, executable code
Syntax checking, symbol tables, variable allocation on stack, memory model
Common errors: unitialised variables, pointers

Some Examples of Programs:
Average
Swap
Bubble sort
Other Examples