Exams

General Guidelines
Exams will be a mixture of problem-solving, design, and personal reflection questions (short answer & open ended). We expect that this format may differ a bit from what you're used in, particularly with respect to other computer science exams. Our goal is to assess your knowledge in a way that gives you space to reflect on your experience in the course and your place as a unique individual in the computer science field.
Midterm Details
Assigned
Monday, May 1, 2023, 12:00 AM
Due
Tuesday, May 2, 2023, 11:59 PM

Midterm Policies

The midterm will be a 48-hour take-home exam, though it is only intended to take you 1 - 4 hours. 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, CSE VM, midterm reference sheet).

The only discussion allowed is with classmates following the "The 'That '70s Show' Rule". Writing on a board or shared piece of paper during the meeting is acceptable; however, you should 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 mind-numbing activity (like watching an episode of That '70s Show), 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

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 Exams
Winter 2022WolfsonExamSolutions
Winter 2020AndersonExamSolutions
Autumn 2019HsiaExamSolutions
Summer 2019WolfsonExamSolutions
Spring 2019AndersonExamSolutions
Winter 2019WillseyExamSolutions
Autumn 2018HsiaExamSolutions
Summer 2018HsiaExamSolutions
Spring 2018GrossmanExamSolutions
Winter 2018WyseExamSolutions
Autumn 2017HsiaExamSolutions
Spring 2017AndersonExamSolutions
Winter 2017CezeExamSolutions
Autumn 2016HsiaExamSolutions
Spring 2016HoltExamSolutions
Winter 2016GrossmanExamSolutions
Autumn 2015AndersonExamSolutions
Final Details
Assigned
Monday, June 5, 2023, 12:00 AM
Due
Wednesday, June 7, 2023, 11:59 PM

Final Policies

The final will be a 72-hour take-home exam, though it is only intended to take you 2 - 4 hours. 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, CSE VM, final reference sheet).

The only discussion allowed is with classmates following the "The 'That '70s Show' Rule". Writing on a board or shared piece of paper during the meeting is acceptable; however, you should 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 mind-numbing activity (like watching an episode of That '70s Show), 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.

Final Topics

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)

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

Final Practice

Past Exams
Autumn 2019HsiaExamSolutions
Summer 2019WolfsonExamSolutions
Spring 2019AndersonExamSolutions
Winter 2019WillseyExamSolutions
Autumn 2018HsiaExamSolutions
Summer 2018HsiaExamSolutions
Spring 2018GrossmanExamSolutions
Winter 2018WyseExamSolutions
Autumn 2017HsiaExamSolutions
Spring 2017AndersonExamSolutions
Winter 2017CezeExamSolutions
Autumn 2016HsiaExamSolutions
Spring 2016HoltExamSolutions
Winter 2016GrossmanExamSolutions
Autumn 2015AndersonExamSolutions