Each “week” of the course runs Wednesday-Tuesday.
30-minute Lecture videos and Readings: Before lecture period.
30-minute Synchronous meetings W,F,M: Q&A, practice problems.
Lab Exercises: Throughout the week, finish on Tuesday night.
Next Wednesday: Synchronous quiz covering previous week.
|42 Reading Quizzes||10%|
|14 Lab Exercises||10%|
Before every synchronous meeting, there will be a ~30-minute video, and a required reading, from one of:
Formative reading quizzes must be completed before the meeting; retakes allowed and encouraged.
There will be 14 exercise sets × 3 problems, posted to Canvas.
Each set must be submitted by 11:59pm on Tuesday.
Generally shorter problems applying lecture techniques.
Solutions posted Wednesday at 6am.
You may work with your study group, but submit your own solution.
There will be 12 quizzes, during Wednesday synchronous meetings.
Similar in difficulty to exercise questions.
We will count each student’s 10 highest scores.
No makeup quizzes.
There will be 6 homeworks, posted to Canvas.
Each homework must be submitted by 11:59pm on Monday.
Homeworks are more “substantial” problems than we can work on in class, so they require more time.
Each student’s 5 highest homework scores count.
1 “grade me late” ticket - extend to 11:59pm Thursday
You may discuss homework with other students, but your submission must be your own work.
Strong, expressive static type systems
Functions as values
Isolating, removing “side effects” from programs
Abstract, complex data types vs representations
Code reuse via modularity
Manipulating, reordering, evaluating programs
F#: Microsoft’s OCaml
Reason: Facebook’s OCaml
Rust: Mozilla’s OCaml
Swift: Apple’s OCaml
|Videos, Readings, Reading Quizzes, Grades|
|Interactive course communication.|
Code submission, some autograding. |
|Quizzes, Code feedback|