Exam procedures for CS51

Exam procedures for CS51 #

There will be two midterm exams in CS51. See the syllabus for current information about dates, times, and locations.

This document describes exam procedures and policies for CS51. You should read this document carefully and familiarize yourself with its contents well before the exam itself.

Accommodations #

We will make every effort to accommodate students with special requirements, such as extra time for the exam. If you have special requirements for the exam, please let us know as soon as possible by email to heads@cs51.io providing your DAO letter describing the accommodations.

For students who require extra time or separate seating, we will be in touch directly to make arrangements.

Coverage of the exams #

The first exam covers material through Chapter 12 in the textbook including associated appendix material as well as the associated labs (1-8), problem sets, and other course-related material.

The second exam covers material from the whole course cumulatively through Chapter 19 including associated appendix material as well as the associated labs (1-20), problem sets, and other course-related material.

Structure of the exam #

You are given 90 minutes from the start of the exam to complete it, after which you will turn in the exam booklet. Do not start the exam until instructed to by the course staff that are proctoring the exam.

The exam is composed of multiple sections, each of which may have multiple questions. Each question is marked with the number of points allocated to the question and may provide a very approximate recommendation for allocating time.

To allow for anonymous grading of the exam, please write your name and ID number in the boxes on the front page of the exam [0.5 points], and your ID number (but not your name) in the box provided at the top of all subsequent odd-numbered pages [0.5 points].

Answering exam questions #

Many of the problems ask you to define something or write code to do something. Throughout the exam, when we ask you to define a value or function or type or module or signature, we mean that you should provide a top-level OCaml definition written in well-formed, idiomatic OCaml using the appropriate OCaml definitional construct (let, type, module, etc.). Your code answers will be graded firstly on the well-formedness and correctness of the code, but in keeping with the course’s goals, we may also secondarily consider the many other dimensions of code quality – including design and style issues – in evaluating your answers.

Your answers should be directly and succinctly responsive to the questions. Overlong, hedged, or disjunctive answers may be penalized.

Write the answers to all problems in the boxes provided. Bring a pen or a very dark pencil to record your answers; we will be scanning your exams for grading. Write clearly, as we can and will only grade what we can unambiguously read in the scans. The exam packet is intentionally stapled in the lower left corner to facilitate the scanning process. Do not remove the staple or remove any pages from the exam packet. Anything written outside of the provided boxes will not be graded. If additional room is needed for an answer, make a note in the box provided and write the remainder of your answer in one of the boxes at the back of the examination.

Use of materials #

This is a closed-book, closed-device, closed-network exam. However, you are free to bring and use up to 10 letter-size pages (20 sides) of notes to refer to during the exam. No electronic devices of any kind may be used, and communication with other people or software systems by any means is expressly forbidden.

If you are taking the exam at a non-standard time, you should not discuss the exam with any other students until all students have taken the exam.

You should practice the spirit of these rules, not merely the letter, which is: We want to see what you, solely by yourself, can accomplish using your understanding of the programming concepts from the course.

Academic integrity #

On the exam, you will be requested to affirm your awareness of the standards of the Harvard College Honor Code.

Exam tactics #

We turn now from instructions and procedures to friendly advice. It’s useful to think ahead about tactics for taking this exam, because certain properties of the exam are unusual, namely,

  • The exam is closed book, except for a small number of pages of printed material.

  • The exam is written in such a way that opening books and notes shouldn’t help much.

  • The exam may be time-pressured in ways that labs and problem sets are not.

  • Some problems will be easier than others.

What tactics follow from these properties of the exam?

  • The time limitation means that time management is especially important. You’ll want to have at least attempted all of the problems on the exam.

  • Because some problems are easier than others, you don’t want to get hung up on a hard problem when there are easier ones you could be doing instead. So feel free to move past problems you’re having a hard time on; you can always come back later.

  • It’s probably a good idea to look over the exam as a whole, so that you can get a sense of what’s on it, and you can focus on the problems that are easier for you.

  • A good strategy is to do a first pass where you solve problems by reasoning them out, providing your best answer, and moving on. If there’s time at the end, you can (and should) go back and verify your answers. If you don’t get a chance to verify and debug, at least you might get partial credit. But if you don’t get a chance to do a problem at all, you’re guaranteed to get a zero for it.

  • You can’t bring the textbook or other reference materials into the exam, and in any case, looking things up in the textbook or past labs or problem sets is a time trap that you don’t want to fall into. (Indeed, we try to write the exam in such a way that such materials should not be particularly useful. For instance, any reference materials in the textbook that are referred to are likely to be copied for your reference into the exam.) Instead, use part of your exam preparation time to put together any useful reference material you might want for easy access. A simple method to do so is to build a “cheat sheet” (as part of your 10-page allowance) by just entering a systematic set of expressions into OCaml as a reference…something like the cheat sheet Prof. Shieber made for midterm 1 and midterm 2. But it’s better if you make your own, because you’ll be more familiar with it and “the journey is the destination.”

Good luck!