Preparing for Exams


My Goals for Exams

The exams test your skills in designing data definitions, functions, and test cases for the kinds of programming problems we have done in class up to the time of the exam. Mainly, I want to make sure that each student is able to carry out the design and programming tasks that we have covered, without the help of the TAs or others. The exams are not designed to trick you.

What I Care About on the Exam

What I DO NOT Care About on the Exam


What to (not) Bring


What to Expect

Expect problems similar in style to the homeworks, quizzes, and labs (though obviously not as many since the exam lasts only 50 minutes). While some questions will have multiple parts, individual questions will be independent so you can do them in any order. The exam will show how many points each question is worth.

Exam 1 will cover up through and including the class material for Thursday, January 30 (functions that operate on lists).

Exam 2 will cover lists of structures, trees, and hierarchies (the material through Friday, Feb. 14).

Exam 3 will cover programs with memory (set! and set-structure!), testing programs with memory, creating circular data, programs with accumulators, and the built-in abstract functions map, filter, andmap, ormap, foldr, build-list.


FAQ (Frequently Asked Questions)

  1. What's the best way to prepare?
    Practice, practice, practice! If you can read Racket programs but not write them, you're going to have trouble with the exam. Do as many problems as you need to to get comfortable with programming in Racket. The homeworks will be good practice for the exam.

    And practice templates. If you can't get at least as far as the template on any problem, you need to be coming in for help if you want to pass the exam.

  2. Are computers allowed during the exam?
    No. Pen(cil) and paper only.

  3. Do we need to write signatures on the exam?
    Each problem should state clearly whether you need to write signatures (I tend to write them down for you to avoid confusion during the exam, unless the point of the problem is to see whether you can write signatures).

  4. If I develop a helper function as part of the solution to a problem, do I have to show the entire design recipe process for the helper?
    No, you don't have to go through the entire process. It's not necessary to show the template or check-expects for a helper function, unless the problem specifically tells you to do so. But you should show the signature and a (very brief) purpose for any helper you define.

Any other questions or concerns, post to the forum on InstructAssist.

Good luck!