Contents

Assignments

Lecture preparation is on the Topics page.

Lab preparation is on the Lab page.

Intros: Introduce yourself.
  • assign: Monday 22 January
  • due: Wednesday 24 January
  • Gates: Work with digital logic gates.
  • assign: Tuesday 23 January
  • due: Thursday 1 February
  • Zero: Starting from scratch in CS 240.
  • assign: Monday 29 January
  • due: Thursday 1 February
  • Bits: Manipulate data with bit-level operations.
  • assign: Thursday 1 February
  • checkpoint: Wednesday 7 February
  • due: Monday 12 February
  • Arch: Grow your own processor architecture.
  • assign: Monday 12 February
  • due: Tuesday 20 February
  • Pointers: Build a command parser with C pointers and arrays.
  • assign: Saturday 24 February
  • checkpoint: Wednesday 28 February
  • due: Thursday 7 March
  • x86: Reverse engineer x86 code to navigate an adventure.
  • assign: Friday 8 March
  • checkpoint: Wednesday 13 March
  • due: Thursday 28 March
  • Buffer: Smash the stack to understand calling conventions and security concerns.
  • assign: Friday 29 March
  • due: Monday 8 April
  • Concurrency: Explore the process model.
  • assign: Monday 8 April
  • due: Tuesday 16 April
  • Malloc: Build a memory allocator.
  • assign: Wednesday 17 April
  • checkpoint: Wednesday 24 April
  • due: Thursday 2 May
  • Exams

    HW Exam: Computational Building Blocks
    ISA Exam: Hardware-Software Interface

    Extra Fun

    Parts of these assignments will be used in lab activities, but completing them in full is not required this semester. They are linked here if you are curious to explore further.

    • Cache: Use performance impact to reveal cache dimensions.