The final exam will be on March 11 from 8:30 - 10:20 am
The final exam will consist of Multiple Choice, True/False, and short answer questions
You are permitted to bring one page (standard 8.5 x 11 size) of notes to the exam. You must prepare your own notesheet and it must be handwritten. We will collect the notesheets at the end of the final.Â
It will be worth 20% of the course grade.
Each week, there will be an opportunity to practice exam-style questions in Section via a Gradescope quiz. While these quizzes are not graded for correctness, we strongly encourage you to make sure you thoroughly understand each problem. If you have questions about any of the problems, please come to office hours or post on Ed.
All of the practice exam questions are available here: Practice Questions (Solutions).
Please note that the following list of subjects is not exhaustive. Instead, it is a general guide of what has been covered in this course!
Types
Type Checking
Structural vs Nominal Typing
Inductive Datatypes
Subtyping
Equality
Pattern Matching
Specifications
Stronger vs Weaker
Assertions
Specifications
Loop Invariants
Writing code to maintain a loop invariant
Determining a loop invariant that the code maintains
Reasoning
Forwards and Backwards Reasoning
Reasoning through a Loop
Floyd Logic
Hoare Triples
Proofs
Proof by Calculation
Proof by Cases
Structural Induction
Abstract Datatypes (ADTs)
Representation Invariants (RIs)
Abstraction Functions (AFs)
Mutable ADTs
Testing
Correctness Levels
Heuristics
Subdomains
Browsers, Servers, and Routes
React/Stateful UI
POST and GET requests
Status codes