Quiz 3 Information
-
## Logistics
Quiz 3 will take place in class on Thursday, December 4.
It will be a paper quiz with questions similar to the material covered on assignment 6 (part 3)-(basics of) assignment 9. Questions will be primarily short answer, including short programming problems, and may include some multiple choice questions.
:::success
Quizzes are closed note, with the exception of **one page** (standard 8.5 x 11 size, both sides allowed) of notes. You must **handwrite your own notesheet**; I will collect it at the end of the quiz.
:::
#### Accommodations
If you have a testing accommodation, expect an email from me by Wednesday.
## Topics covered
:::info
- Lazy evaluation
- Infinite sequences
- Thunks
- Streams
- Modularity
- Goals, abstraction, namespacing
- `module`s, `sig`s, type checking
- Differing implementations
- Parallelism and concurrency
- Differences between the two
- Basics of threads
- Promises, parallelism with domains
- `async`/`await`
- Basics of `mutex`/locking, deadlock
- Object-oriented programming
- Design space for name lookups
- Method overriding vs. field access
- Dynamic dispatch
- Subclass polymorphism, covariance/contravariance
- Comparing OOP and FP
- Basics of memory safety
:::
## Academic integrity
You may not consult other students or use any technology (phones, accessing the internet) during a quiz, nor may you consult other students who have already taken the quiz (including students who took CS251 in previous semesters).
You should not talk about specific quiz questions with other students even after you have taken it, because they may not have taken it due to special circumstances. You should not share any information about specific quiz questions with future CS251 students.
## Practice quiz
You can access a practice quiz and example solutions [here](https://drive.google.com/drive/folders/1GrInV4CpVTL8s0KasVKhVdkc21lQW77R?usp=sharing).
:::warning
I suggest completing the practice quiz in its entirety, *before* even downloading the solutions.
:::