Skip to main content

Digital Systems:  2025-2026

Lecturer

Degrees

Preliminary ExaminationsComputer Science

Terms

Overview

In this course, participants will learn the principals behind the functioning of digital von-Neumann architecture computers, from the transistor up to the Operating System. This covers the design of logical circuits, basic CPU design, low-level programming in assembly and C, and the design and use of a simple Operating System. The course aims to teach the fundamental engineering principles that lead to a particular design, by stating desiderata, and then designing systems that meet them. Due to time constraints, the _optimal_ design of hardware circuits will not be covered.

Learning outcomes

  • Understand and design a basic CPU from the transitor level up.
  • Program CPUs in low-level assembly.
  • Create software that interacts with hardware through I/O devices.
  • Understand and use a simple Operating System to allow sharing of hardware between different processes.

Syllabus

- Programming at the machine level: registers, instructions, memory addressing, subroutines, interrupts.

- Role of assemblers, compilers and linkers, how to use them, and how to interpret their output.

- Data representations and computer arithmetic.

- Using a simple Operating System that uses non-buffered message passing for inter-process communication.

- The design and operation of such an Operating System.

- Simple design of combinational and sequential circuits, although without an emphasis on minimal resource usage.

- Architectural elements of a CPU, and datapath design that allows a CPU to execute instructions encoded as machine code.

Taking our courses

This form is not to be used by students studying for a degree in the Department of Computer Science, or for Visiting Students who are registered for Computer Science courses

Other matriculated University of Oxford students who are interested in taking this, or other, courses in the Department of Computer Science, must complete this online form by 17.00 on Friday of 0th week of term in which the course is taught. Late requests, and requests sent by email, will not be considered. All requests must be approved by the relevant Computer Science departmental committee and can only be submitted using this form.