Fall 2024 Course Schedule

Overview

WeekMondayWednesdayAssignmentLab
Aug 261+1=2Intro, CprintfC Intro
Sep 2Labor DayFloat, TypesMinifloatFloat Practice
Sep 9Arrays & PointersHeap & AllocationHuffmanPriority Queue
Sep 16Gates, LogicStateCircuitsLogic Intro
Sep 23FemtoProc, CPUISAs, RISC-VCPU SimProcessors
Sep 30More RISC-VControl FlowAssemblyAssembly & Review
Oct 7Calling Conv.Calling Conv.PrelimAssembly
Oct 14Fall BreakCachesFunctionsRISC-V Practice
Oct 21CachesCachesBlockingCache Intro
Oct 28ProcessesSystem CallsShellSystem Calls
Nov 4Virtual MemoryThreadsOptional
Nov 11AtomicsSynchronizationConcurrentLR/SC Practice
Nov 18ParallelismParallelismRaycastingThreads
Nov 25ParallelismThanksgivingNo Lab
Dec 2ParallelismParallelismReview
Dec 9GPUs?

Assignments

Assignments are usually due on Wednesday at 11:59pm. The table above shows the week when the assignment is assigned; it’s due during the next week (with some exceptions; see the bold dates). So the deadlines are:

  1. printf: Sep 4
  2. Minifloat: Sep 11
  3. Huffman Compression: Sep 18
  4. Generating Circuits: Sep 25
  5. CPU Simulation: Oct 2
  6. Assembly Programming: Oct 11 (before Fall Break)
  7. Functions in Assembly: Oct 23
  8. Cache Blocking: Oct 30
  9. Shell: Nov 13
  10. Concurrent Hash Table: Nov 20
  11. Parallel Raycasting: Dec 9 (last day of class)

Lab Sections

Lab sections are mostly on Thursday. One is on Wednesday and one is on Friday. The work in each lab is meant to help you get started on the assignment that is out that week; the Lab column above indicates the part of the assignment we’ll do together in section. There is nothing separate to turn in from lab; the work you do in lab will get turned in as part of that week’s assignment.

Exams

There are two exams: