CS 1102: Accelerated Intro to Program Design
Preparing for the Midterm

Our Goals for the Midterm

The midterm tests your skills at functional programming in Scheme. It will cover material up through higher order functions (expected to finish the Thursday before the exam). I want to see how well you are developing instincts for programming in Scheme.

Note: We tend to give long exams that produce grades all along the spectrum. If you are doing very well with the material, you should be able to finish the exam within the 50 minutes. Many students will not finish the exam, and we're aware of that when determining the passing cutoff. We don't define that cutoffs in advance (in case the exam goes unusually badly for the class as a whole); in past terms, however, the midterm passing cutoff has been around 50. We don't tell you this to make you nervous now, but to keep you from panicking during the exam.

What We Care About on the Exam

What We DO NOT Care About on the Exam

What You may Bring to the Exam

You may bring one sheet of paper with notes on it (written on both sides) to the exam. The exam will be self-contained, though, so you do not need to bring notes if you don't want to.

What to Expect

The syllabus page shows several old midterms on this material (some are from a different class, CS 2135, that covered the same material up to the midterm). When you work through the previous exams:


  1. Should I memorize data definitions from class for the exam?
    Absolutely not. The exam will be self-contained. You should know how to use all of the operators listed on the front page of the exam (will be the same as the A04 midterm minus symbol? symbol=? and eq?), but we will not assume that you know any other operators or data definitions from memory.

  2. Is the exam open or closed book/notes?
    Closed book, but you may bring one sheet of notes (written both sides).

  3. What's the best way to prepare?
    Practice, practice, practice! If you can read Scheme 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 Scheme.

    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 midterm.

    The exam is not designed to trick you. If you can do all the problems from lab, homework, and the in-class exercises, you should be prepared for the exam.

  4. Will you post solutions to the sample exams?
    No. Over the years we've found that posted solutions hurt studying, because many students look at the solutions too quickly and then get fooled into thinking they could reproduce the answers. Feel free to come see any of us during office hours, or make an appointment at some other time, if you want to go over your answers to the practice exams. We're glad to go over them.

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

  6. Do we need to write contracts on the exam?
    Each problems should state clearly whether you need to write contracts (we tend to write them down for you, when possible, to avoid confusion during the exam).

Any other questions or concerns, post to the discussion board.

Good luck!