Exams



Midterm Details


Midterm Policies

The midterm will be an inverted two-stage exam: the first stage is a group exam and the second stage is a separate, but similar, individual exam. In addition, we will be offering an opt-in individual retake exam for those who wish to improve upon their performance on the individual exam. Each stage is intended to be the length of a normal in-person exam, though the timing will likely expand due to the take-home nature and overhead of groupwork. You will be given the entire window to work on the exam (all times below for Seattle):

  • Group stage: Saturday, Oct. 31 @ 12 am to Monday, Nov. 2 @ 11:59 pm in groups of 5
    • You are encouraged to use extra time in this window to study together for the individual stage.
  • Individual stage: Thursday, Nov. 5 @ 12 am to Friday, Nov. 6 @ 11:59 pm
  • Opt-in retake: Thursday, Dec. 3 @ 12 am to Friday, Dec. 4 @ 11:59 pm
The exam will be run using a combination of question prompts in Gradescope and computational artifacts (i.e., text, source, assembly, and executable files) that will be downloaded from the course website; the use of a computer terminal will be required. Responses are submitted via Gradescope. Each exam will be randomized so that everyone's set of solutions will be unique.
  • The only discussion allowed is with your groupmates during the group stage. In all other cases, discussion with other people, including online forums, message boards, and "homework help" sites is prohibited.
  • You will be allowed to ask clarifying questions about the exam to the course staff on Ed Discussion and in office hours. We want to make sure that you are interpreting the questions correctly and not answering the wrong questions, but we cannot help you with the process of solving the exam questions.
  • The exams are open book/notes (e.g., website, book, readings, lecture notes, recordings, attu, CSE VM, midterm reference sheet). The goal is to be fully prepared for the individual stage via discussion during the group stage.


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 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:


Winter 2020
Exam   |   Solutions   |   Anderson
Autumn 2019
Exam   |   Solutions   |   Hsia
Summer 2019
Exam   |   Solutions   |   Wolfson
Spring 2019
Exam   |   Solutions   |   Anderson
Winter 2019
Exam   |   Solutions   |   Willsey
Autumn 2018
Exam   |   Solutions   |   Hsia
Summer 2018
Exam   |   Solutions   |   Hsia
Spring 2018
Exam   |   Solutions   |   Grossman
Winter 2018
Exam   |   Solutions   |   Wyse
Autumn 2017
Exam   |   Solutions   |   Hsia
Spring 2017
Exam   |   Solutions   |   Anderson
Winter 2017
Exam   |   Solutions   |   Ceze
Autumn 2016
Exam   |   Solutions   |   Hsia
Spring 2016
Exam   |   Solutions   |   Holt
Winter 2016
Exam   |   Solutions   |   Grossman
Autumn 2015
Exam   |   Solutions   |   Anderson

Final Details


Final Policies

The final will also be an inverted two-stage exam: the first stage is a group exam and the second stage is a separate, but similar, individual exam. There will NOT be an individual retake exam for the final. Each stage is intended to be the length of a normal in-person exam, though the timing will likely expand due to the take-home nature and overhead of groupwork. You will be given the entire window to work on the exam (all times below for Seattle):

  • Group stage: Friday, Dec. 11 @ 12 am to Sunday, Dec. 13 @ 11:59 pm in groups of 5
    • You are encouraged to use extra time in this window to study together for the individual stage.
  • Individual stage: Wednesday, Dec. 16 @ 12 am to Thursday, Dec. 17 @ 11:59 pm
The exam will be run using a combination of question prompts in Gradescope and computational artifacts (i.e., text files) that will be downloaded from the course website; the use of a computer terminal will NOT be required this time. Responses are submitted via Gradescope. Each exam will be randomized so that everyone's set of solutions will be unique.
  • The only discussion allowed is with your groupmates during the group stage. In all other cases, discussion with other people, including online forums, message boards, and "homework help" sites is prohibited.
  • You will be allowed to ask clarifying questions about the exam to the course staff on Ed Discussion and in office hours. We want to make sure that you are interpreting the questions correctly and not answering the wrong questions, but we cannot help you with the process of solving the exam questions.
  • The exams are open book/notes (e.g., website, book, readings, lecture notes, recordings, attu, CSE VM, final reference sheet). The goal is to be fully prepared for the individual stage via discussion during the group stage.


Final Topics (not cumulative)

  • Arrays and Structs: alignment, fragmentation, buffer overflow
  • Caching: locality, associativity, cache parameters and performance, AMAT
  • Processes: fork, execv, exceptions, context switching, zombies
  • Virtual Memory: paging, address translation, disk and swap space, protection and sharing
  • Dynamic Memory Allocation: fragmentation, free lists (implicit, explicit, segregated), garbage collection, memory bugs
  • C and Java: 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 Section 10 ("Final Review") as well as the actual Final Review session.

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:


Autumn 2019
Exam   |   Solutions   |   Hsia
Summer 2019
Exam   |   Solutions   |   Wolfson
Spring 2019
Exam   |   Solutions   |   Anderson
Winter 2019
Exam   |   Solutions   |   Willsey
Autumn 2018
Exam   |   Solutions   |   Hsia
Summer 2018
Exam   |   Solutions   |   Hsia
Spring 2018
Exam   |   Solutions   |   Grossman
Winter 2018
Exam   |   Solutions   |   Wyse
Autumn 2017
Exam   |   Solutions   |   Hsia
Spring 2017
Exam   |   Solutions   |   Anderson
Winter 2017
Exam   |   Solutions   |   Ceze
Autumn 2016
Exam   |   Solutions   |   Hsia
Spring 2016
Exam   |   Solutions   |   Holt
Winter 2016
Exam   |   Solutions   |   Grossman
Autumn 2015
Exam   |   Solutions   |   Anderson