Contents

Assignments

Lecture preparation is on the Topics page.

Lab preparation is on the Lab page.

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