Computer Laboratory

Course pages 2014–15

Computer Fundamentals

Principal lecturer: Dr Robert Harle
Taken by: Part IA CST, Part IA NST, Part I PBS

Computer Fundamentals is an optional lecture course that covers important core concepts and ideas in Computer Science. It is intended to help anyone with limited experience with Computer Science.

Lectures are on Thursdays in Lecture Theatre 1 at the Computer Laboratory, at 3pm and 4pm (the latter is a straight repeat of the former for those that could not come to it).

Lecture 1 (16/10/14): Bits, Bytes and Number Systems

  • The significance of the bit and powers of 2
  • Data quantities (B, kB, MB, GB, etc)
  • Number systems (decimal, binary, octal , hexadecimal)
  • Representing negative numbers (sign-magnitude, 1s' complement, 2’s complement)
  • Binary addition (carries, overflows)
  • Binary subtraction

Annotated slides here

Lecture 2 (23/10/14): How Modern Computers Work

  • Stored program models (Von-Neumann, Harvard)
  • Simple model of a CPU
  • The Fetch Execute Cycle
  • Machine code vs assembly vs higher languages
  • Compilers vs Interpreters
  • Software libraries

Annotated slides here

Lecture 3 (30/10/14): Operating Systems and Concurrency

  • The roles of the Operating System (kernel, timeslicing, scheduling)
  • The notion of threads
  • Concurrency and its problems
  • Multi-core processors
  • Virtual machines

Annotated slides here

Lecture 4 (05/11/14): Hardware and Peripherals

  • CPUs in more detail
  • Motherboards, buses, peripherals
  • Memory hierarchy
  • (S)RAM cells
  • Spinning HDDs
  • Flash and SSDs
  • Graphics Cards and GPUs
  • RISC and CISC

Annotated slides here