Home | Lectures | Written Assignments | Programming Assignments | Compilers Assignments | Exams | Cool | Piazza Forum

CS 4610 - Programming Languages - Exams


This course will have two midterm examinations and one final examination. The final examination is cumulative.


You are allowed to bring two paper-sides of notes (either one page, front and back or two fronts). You may laser-print them using some micro font if you like, but it may not really help you: you'll spend much of your time squinting and looking up information on your cheat sheet.

The exams are not open book. You may not use electronic devices of any kind.

Midterm 1

An answer key for Midterm 1 is available.

Midterm 2

An answer key for Midterm 2 is available.

The Written Final Examination

The Programming Languages written final exam is cumulative a take-home essay exam. The final exam is open book. (In some semesters no written final examination is given. In such semesters student final grades are out of 75 points rather than 100; see the syllabus for the breakdown.)

In general, all of the topics covered in the course (either in lecture, in the written assignments, in the programming assignments or in the required reading) are fair game. The following list of topics is not necessarily exhaustive (although it is close); you are responsible for all of the material.

Within the large topics of Typing and Opsem, "basic questions" (e.g., "what is operational semantics?") will be worth proportionally more points than "advanced questions" (e.g., "give an opsem rule for this new pyscho for loop").

The "big" topics won't necessarily be huge parts of the exam time-wise or space-wise, they'll just be worth more points. For example, it's not clear that there are massive detailed questions we can ask about each such topic, but whatever we do ask will be weighted heavily.

Final Oral Examination

Students may petition to take a final oral examination.

We offer the potential for an oral examination because we believe that groups of students learn and demonstrate learning differently across different modalities. That is, some students learn well by listening, some learn well by writing, some learn well by reading, some learn well by coding, etc. Similarly, while the standard programming and written assignments and classroom activities give students a chance to master material by reading, writing and programming, there are other students who can best demonstrate mastery verbally.

If you believe that your current grade for a particular set of topics does not reflect your final mastery of the material, you may petition for an oral examination covering those topics. You petition by emailing the instructor and listing the set of topics. There are a limited number of scheduling slots that are typically given out first-come, first-served: not all petitions need be honored, and if you cannot make any of the available times this option is not available to you.

The oral examination follows the format of a skill-based Computer Science job interview: an oral discussion of problems and solutions, possibly coupled with some board work. The instructor assesses your demonstrated mastery of the material and replaces your grade for each indicated topic with your grade from that part of the oral exam. This means that electing to take the oral exam can lower your grade. It is also worth noting that while the per-topic questions are typically shared across students, you have no easy recourse to dispute the grade assigned by the professor in the oral exam.

Thus, petitioning to take an oral examination is a good fit when you actually have mastered the material but were unable to display it earlier (e.g., you became very nervous on the last half of Midterm #1, or you were quite sick for Programming Assignment 2, or whatnot). By contrast, if your grasp of the material is shaky and you are looking for a way to shore up a poor grade, the oral exam is a poor choice.

Practice Exams

Here are some practice exams from other similar courses at other universities. These courses are not exactly the same as this one, so these practice exams may not be indicative.