Info Schedule Final Assignments Policies Canvas Ed

Final Exam

Tuesday 5/10 9:00AM - noon in Friend 101


Rules

This will be a closed-book, closed-note exam, with the exception that a single one-sided study sheet will be allowed. No electronic devices will be permitted to be used during the exam. No communication with any person will be permitted, with the exception of the instructors who will be available for clarifying questions outside the exam room. Some students may be taking this exam at a different time, so you may not discuss the contents of this exam with anyone until the sample solution has been posted. The Princeton University Honor Code covers this exam, and suspected violations must be reported to honor@princeton.edu


Topics

You will be responsible for material from the entire course, including the content of required readings, lectures, precepts, and assignments. All questions will assume the ArmLab/Linux/C90/gcc217 environment unless otherwise stated. The second half of the course (since the midterm) will be emphasized.

The final will contain a mixture of question styles, potentially including true/false, multiple choice, short answer, Parsons problems, and longer code writing questions.

Major topics include (topics since the midterm in blue):

  1. Number Systems
  2. C Programming
  3. Under the hood: language levels
    • High-level languages vs assembly language vs machine language
    • Von Neumann computer architecture, RAM, CPU, ALU, registers
    • Little-endian vs big-endian byte order
    • AARCH64 architecture: general-purpose and special registers
    • AARCH64 assembly language: directives, labels, load/store/manipulation instructions, control flow
    • Accessing variables in rodata, data, bss, and stack sections
    • Accessing array and struct variables; addressing modes
    • AARCH64 function call conventions: bl and ret instructions, the x30 register, arguments, return values
    • AARCH64 local variables: on stack vs in callee-saved registers
    • AARCH64 machine language: instruction formats, layout after assembly, layout after linking
  4. Programming techniques and tools

Questions from Previous Semesters

A good way to practice for the exam is to go over questions from previous COS 217 final exams. Be aware that both the content of the course and the format of the final do change over the years, so not all questions are guaranteed to be 100% relevant, or good practice for this year. If, after checking the exclusions list below, you have any questions about whether the content of a question would be fair game for this year, please ask on Ed.


Review and Q&A

There will be a review and Q&A session on Friday May 6 from 3:00-5:00pm in CS 104.

Watch this space and Ed for any additional announcements.