`http://cs2041.org`

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% |

12 Quizzes | 25% |

6 Homeworks | 30% |

Final Exam | 25% |

**Before** every synchronous meeting, there will be a ~30-minute video, and a required reading, from one of:

- Hickey’s Ocaml book
- Reade’s “Elements of Functional Programming”
- Notes on github

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

Tool | Use |
---|---|

Videos, Readings, Reading Quizzes, Grades | |

Synchronous Meetings | |

Interactive course communication. | |

Code submission, some autograding. https://github.umn.edu/ | |

Quizzes, Code feedback |

`cs2041.org`