Contents

Assignments

Lecture preparation is on the Topics page.

Lab preparation is on the Lab page.

Intros: Introduce yourself.
  • assign: Tuesday 5 September
  • due: Friday 8 September
  • Gates: Work with digital logic gates.
  • assign: Tuesday 5 September
  • due: Wednesday 13 September
  • Zero: Starting from scratch in CS 240.
  • assign: Monday 11 September
  • checkpoint: Wednesday 13 September
  • due: Monday 18 September
  • Bits: Manipulate data with bit-level operations.
  • assign: Monday 18 September
  • checkpoint: Wednesday 20 September
  • due: Thursday 28 September
  • Circuits: Grow logic circuits and processor components.
  • assign: Thursday 28 September
  • due: Thursday 5 October
  • Arch: Inspect and manipulate memories and a processor architecture.
  • assign: Thursday 5 October
  • due: Monday 16 October
  • Pointers: Build a command parser with C pointers and arrays.
  • assign: Saturday 21 October
  • checkpoint: Tuesday 24 October
  • due: Tuesday 31 October
  • x86: Reverse engineer x86 code to navigate an adventure.
  • assign: Monday 30 October
  • due: Thursday 9 November
  • Buffer: Smash the stack to understand calling conventions and security concerns.
  • assign: Sunday 12 November
  • due: Tuesday 28 November
  • Malloc: Build a memory allocator.
  • assign: Monday 27 November
  • checkpoint: Wednesday 6 December
  • due: Friday 15 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.
    • Shell: Build a shell to explore the process model.