Exams

Exam Overview

Midterm Review Session: Friday, October 24, 2025 (on Zoom, 4:30 - 6:30 pm)
Midterm Exam: Monday, October 27, 2025 (Location TBD, 5:30 - 6:40 pm)

Final Review Session: Friday, December 5, 2025 (on Zoom, 4:30 - 6:30 pm)
Final Exam: Wednesday, December 10, 2025 (Location TBD, 12:30 - 2:20 pm)

See the "Midterm Policies" and "Final Policies" sections below for more details.

Midterm Details

Midterm Policies

You will have 70 minutes to complete the exam. You will be asked to check in with a specific staff member early in the exam room to receive a copy of the exam. You can read and fill out the cover page of the exam, but you should not look at the exam questions until you are told to begin.

  • To Bring: pencil, eraser, ONE double-sided sheet of handwritten notes
  • Provided: midterm reference sheet [PDF], printed exam with white space for work, time keeping
  • Not Allowed: watch, hat, calculator, cell phone, or any other electronic device (unless specifically allowed by an approved accommodation)

Midterm Topics

  • Memory, Data, and Addressing: pointers, endianness, data sizes, bitwise operators
  • Number Representation: binary, integers, floating point
  • x86-64 Topics: registers, instructions, control flow
  • Procedures and the Stack: stack structure, calling conventions, register conventions, recursion
  • Building an Executable: compiling, linking, loading

Some of the old exams may contain questions on topics that we did not cover before the midterm this quarter; you should skip over such questions.


Midterm Practice

The following Midterm Review packet will be used in the Midterm Review session.

  • Midterm Review Packet (solutions)

The following are past exam questions written by Justin at another institution and may prove useful in studying, though most are likely harder than what you will encounter on your exams:

Past Midterm Exam Database

Autumn 2025
Exam   |   Solutions   |   Hsia/Hu
Summer 2025 (2)
Exam [PDF]   |   Solutions [PDF]   |   Michael
Summer 2025 (1)
Exam [PDF]   |   Solutions [PDF]   |   Michael
Winter 2020
Exam [PDF]   |   Solutions [PDF]   |   Anderson
Autumn 2019
Exam [PDF]   |   Solutions [PDF]   |   Hsia
Summer 2019
Exam [PDF]   |   Solutions [PDF]   |   Wolfson
Spring 2019
Exam [PDF]   |   Solutions [PDF]   |   Anderson
Winter 2019
Exam [PDF]   |   Solutions [PDF]   |   Willsey
Autumn 2018
Exam [PDF]   |   Solutions [PDF]   |   Hsia
Summer 2018
Exam [PDF]   |   Solutions [PDF]   |   Hsia
Spring 2018
Exam [PDF]   |   Solutions [PDF]   |   Grossman
Winter 2018
Exam [PDF]   |   Solutions [PDF]   |   Wyse
Autumn 2017
Exam [PDF]   |   Solutions [PDF]   |   Hsia
Spring 2017
Exam [PDF]   |   Solutions [PDF]   |   Anderson
Winter 2017
Exam [PDF]   |   Solutions [PDF]   |   Ceze
Autumn 2016
Exam [PDF]   |   Solutions [PDF]   |   Hsia
Spring 2016
Exam [PDF]   |   Solutions [PDF]   |   Holt
Winter 2016
Exam [PDF]   |   Solutions [PDF]   |   Grossman
Autumn 2015
Exam [PDF]   |   Solutions [PDF]   |   Anderson

Final Details

Final Policies

The final will be divided into two parts: one on midterm material and one on post-midterm material. You have an opportunity to improve your midterm score based on your performance on the midterm portion of the final. See the syllabus for more details.

You will have 110 minutes to complete the exam. We will distribute the exam early and you can read and fill out the cover page of the exam, but you should not look at the exam questions until you are told to begin.

  • To Bring: pencil, eraser, TWO double-sided sheets of handwritten notes
  • Provided: final reference sheet [PDF], printed exam with white space for work, time keeping
  • Not Allowed: watch, hat, calculator, cell phone, or any other electronic device (unless specifically allowed by an approved accommodation)

Additional Final Topics (cumulative)

  • Arrays and Structs: alignment, fragmentation, buffer overflow
  • Caching: locality, cache parameters and policies, performance, code analysis
  • Dynamic Memory Allocation: allocation and deallocation (fragmentation, coalescing, policies), allocator implementation details (heap block organization, free lists), garbage collection, memory bugs
  • Processes: fork, execv, exceptions, context switching, zombies
  • Virtual Memory: paging, address translation, disk and swap space, protection and sharing
  • C and Java: comparisons, object representation, dynamic dispatch

Some of the old exams contain questions on topics that we did not cover this quarter; you should skip over such questions.


Final Practice

The following Final Review packet will be used in the Final Review session.

  • Final Review Packet (solutions)

The following are past exam questions written by Justin at another institution and may prove useful in studying, though most are likely harder than what you will encounter on your exams:

Past Final Exam Database

Autumn 2025
Exam   |   Solutions   |   Hsia/Hu
Summer 2025
Exam [PDF]   |   Solutions [PDF]   |   Michael
Spring 2025
Exam [PDF]   |   Solutions [PDF]   |   Anderson
Autumn 2019
Exam [PDF]   |   Solutions [PDF]   |   Hsia
Summer 2019
Exam [PDF]   |   Solutions [PDF]   |   Wolfson
Spring 2019
Exam [PDF]   |   Solutions [PDF]   |   Anderson
Winter 2019
Exam [PDF]   |   Solutions [PDF]   |   Willsey
Autumn 2018
Exam [PDF]   |   Solutions [PDF]   |   Hsia
Summer 2018
Exam [PDF]   |   Solutions [PDF]   |   Hsia
Spring 2018
Exam [PDF]   |   Solutions [PDF]   |   Grossman
Winter 2018
Exam [PDF]   |   Solutions [PDF]   |   Wyse
Autumn 2017
Exam [PDF]   |   Solutions [PDF]   |   Hsia
Spring 2017
Exam [PDF]   |   Solutions [PDF]   |   Anderson
Winter 2017
Exam [PDF]   |   Solutions [PDF]   |   Ceze
Autumn 2016
Exam [PDF]   |   Solutions [PDF]   |   Hsia
Spring 2016
Exam [PDF]   |   Solutions [PDF]   |   Holt
Winter 2016
Exam [PDF]   |   Solutions [PDF]   |   Grossman
Autumn 2015
Exam [PDF]   |   Solutions [PDF]   |   Anderson