Exams
Exam Overview
Our midterm exam will be taken and submitted on Gradescope. More information posted on Ed Discussion. Our final exam will be in person and on paper.
Midterm Exam Opens:
Thursday, May 8, 2025
(take-home, opens 5:00 pm)
Midterm Exam Due:
Saturday, May 10, 2025
(take-home, due 11:59 pm)
Final Exam (In-person): Wednesday, June 11, 2025 (12:30-2:20pm). Bring your student ID. You must go to the room that matches your last name:
Midterm Details
Midterm Policies
The midterm will be a 55-hour take-home exam, though it is only intended to take you 1 - 4 hours (assuming you have studied for the exam previously :-). You will be given the entire window to work on the exam.
The exam will be run via question prompts in Gradescope and may involve using computational artifacts (i.e., text, source, assembly, and executable files) on a computer terminal. Responses are submitted via Gradescope.
- 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/calgary, midterm reference sheet).
-
The only discussion allowed is with classmates only and following the "The Gilligan's Island Rule". Writing on a board or shared piece of paper during the meeting is acceptable; however, you should erase/destroy those notes afterwards and not take any written (electronic or otherwise) record away from the meeting. Everything that you derive from the collaboration should be in your head. After the meeting, engage in at least a half-hour of a mind-numbing activity (like watching an episode of Gilligan's Island), before starting to work on the assignment. This will assure that you are able to reconstruct what you learned from the meeting, by yourself, using your own brain and should prevent your written answers from being too similar to one another's. In all other cases, discussion with other people, including online forums, message boards, and "homework help" sites is prohibited.
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
- Arrays and Structs: alignment, fragmentation
In addition, you will be expected to use the class debugger, GDB, for this exam.
Anything from the beginning of the course, up to and including the discussion of structs and alignment on Wed 4/30/25 is fair game. (buffer overflow and caches will not be covered.)
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
Past Midterm Exam Database
Final Details
Final Policies
The final exam will be in person on Wed June 11, 2025, 12:30-2:20pm in BAG 131 (Last name begins with A-R) & BAG 154 (Last name begins with S-Z). You must go to the correct room according to your last name: If your last begins with A-R, go to BAG 131. If your last name begins with S-Z, go to BAG 154. While the primary focus for the exam will be topics covered since the midterm, topics from before the midterm will also be on the exam.
- To Bring: pencil, eraser, Photo ID
- Provided: final reference sheet, printed exam with white space for work, time keeping
- Not Allowed: notes, calculator, cell phone, or any other electronic device
Final Topics (Will also include topics from before the midterm)
- Buffer Overflow
- Caching: locality, associativity, cache parameters and performance, AMAT
- Dynamic Memory Allocation: fragmentation, free lists (implicit, explicit, segregated), 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.