Midterm Remark Requests
Remark requests are due by Wednesday, November 6th. Submit the remark request on Markus, explaining the exact issue with the grading. Your entire midterm will be regraded, so your grade can potentially decrease.
Midterm
The midterm take place October 23rd, during the first hour of lecture, in the usual lecture room. You must attend the lecture section in which you are enrolled.
The midterm covers the first five weeks of the course: The midterm covers both Haskell and Racket. It may include material from lectures 1-5, worksheets, labs 1-5, exercises 1-4, and assignment 1.
Format
- Length: 50 minutes
- Written on paper. No computers, calculators, notes, etc.
- Closed book
- An aid sheet will be provided to you as part of the midterm. Here is the Aid Sheet
Midterm Topics
You may be asked to do any of the following in the midterm:
- Explain what functional programming means
- Write recursive functions in Racket
- Predict the behaviour of recursive functions in Racket or Haskell
- Identify tail recursion and write tail-recursive functions
- Use pattern matching in Racket and Haskell to simplify the way functions are written
- Explain what currying means, and the behaviour of function currying in Haskell
- Explain the difference between Eager vs. Lazy Evaluation, and the behaviour of programs in Racket and Haskell
- Explain the difference between Strict vs. Non-Strict Evaluation, and the behaviour of programs in Racket and Haskell
- Explain how closures are built, and build environments (as in the exercises)
- Explain the difference between Lexical vs Dynamic scoping
- Expand macros
- Write new macros to solve problems
- Build upon the
my-class
macro from Lecture - Implement parts of an interpreter (like in the exercises)
- Explain the various terminology defined in class
Old Midterms
A usual, course coverage changes from term to term: there may be materials covered in the past that wasn't covered this term. Likewise, there may be materials that we covered that wasn't covered in previous terms.