Courses

This course introduces computer programming using the Python programming language. The main focus is on learning to understand the detailed requirements of a programming task, and writing programs that are well structured, correct and easy to read. The course covers simple variables, expressions, input and output, control structures, functions, using standard data structures such as lists and dictionaries, and using standard Python modules.
An introduction to the various layers that make up a modern computer system: encoding of data and instructions, hardware, low-level programming, operating systems, applications and communications.
This course involves programming and creating applications.
In this course, you program many things.
Operating system principles. Multi-user systems. Virtualisation. Scheduling. Concurrent processes, threads, synchronisation and deadlock. Memory allocation and virtual memory. Managing files, disks and other peripherals. Security, protection and archiving. Distributed systems and algorithms, location, migration and replication transparency. Real-time requirements. History of operating systems.