Contents

Assignments

Lecture preparation is on the Topics page.

Lab preparation is on the Lab page.

Intros: Introduce yourself.
  • assign: Tuesday 3 September
  • due: Friday 6 September
  • Gates: Work with digital logic gates.
  • assign: Tuesday 3 September
  • due: Wednesday 11 September
  • Zero: Starting from scratch in CS 240.
  • assign: Monday 9 September
  • due: Friday 13 September
  • Bits: Manipulate data with bit-level operations.
  • assign: Friday 13 September
  • checkpoint: Tuesday 17 September
  • checkpoint: Wednesday 18 September
  • due: Thursday 26 September
  • Arch: Grow your own processor architecture.
  • assign: Thursday 26 September
  • due: Thursday 3 October
  • Pointers: Build a command parser with C pointers and arrays.
  • assign: Friday 4 October
  • checkpoint: Wednesday 16 October
  • due: Thursday 24 October
  • x86: Reverse engineer x86 code to navigate an adventure.
  • assign: Wednesday 23 October
  • checkpoint: Tuesday 5 November
  • due: Monday 11 November
  • Buffer: Smash the stack to understand calling conventions and security concerns.
  • assign: Monday 11 November
  • due: Tuesday 19 November
  • Concurrency: Explore the process model.
  • assign: Tuesday 19 November
  • due: Tuesday 26 November
  • Malloc: Build a memory allocator.
  • assign: Monday 2 December
  • checkpoint: Tuesday 10 December
  • checkpoint: Wednesday 11 December
  • due: Tuesday 17 December
  • 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.