CSCI 2041: Course Schedule and Materials
University of Minnesota
Fall 2018
Schedule and Course Materials
Week | Dates | Lecture | Links | Read OSM | Read PO | Mon/Tue Lab | Solution | Assignment |
---|---|---|---|---|---|---|---|---|
Course Mechanics | Slides | Agreement | ||||||
1 | 09/03 | Intro, Ocaml Basics | Slides Code | 1.1 - 1.3 | 1-2 | Setup | ||
2 | 09/10 | Basic Syntax and Definitions | Slides Code | 25.2 Pervasives | 3, 9 | Lab01: Basics | Solution | |
Functions, Refs, Arrays | Slides Code | |||||||
3 | 09/17 | Lists and Recursion | Slides Code | Lab02: Recursion | Solution | A1 Due | ||
Tail Recursion | Slides Code | |||||||
Pattern Matching | Slides Code | 1.4 - 1.5 | 4 | |||||
4 | 09/24 | Review Mon 9/24 | Practice Solution | Lab03: Match/Tail Calls | Solution | |||
Exam Wed 9/26 | ||||||||
9/28: Tuples/Records | ||||||||
5 | 10/01 | Data Types | Slides Code | 1.4, 1.5, 1.7 | 5 | Lab04: Tuples/Records | Solution | A2 Due |
6 | 10/08 | Map / Reduce / Filter | Slides Code | 26 List, Array | 8 | Lab05: Polymorphic Recs | Solution | |
7 | 10/15 | Deep and Shallow Equality | Slides Code | Lab06: Higher-order Funcs | Solution | |||
Curried Functions, Closures | Slides Code | |||||||
8 | 10/22 | Review Mon 10/22 | Practice Solution | Lab07: Currying and Closures | Solution | A3 Due | ||
Exam Wed 10/24 | ||||||||
10/26: Modules and Functors | 2 | 13 | ||||||
9 | 10/29 | Modules and Functors | Slides Code | 26 Set/Map, Make | 8 | Lab08: Persistence/Signatures | Solution | |
10 | 11/05 | Persistent Data Structures | Slides Code | Wikip: Persistence | Lab09: Functors/Memoization | Solution | A4 Due | |
11 | 11/12 | Language Processing | Slides Code | Lab10: Lexing/Parsing | Solution | |||
12 | 11/19 | Review Mon 11/19 | Practice Solution | Lab11: Expression Evaluation | Solution | |||
Exam Wed 11/21 | ||||||||
Fri 11/23: Thanksgiving | ||||||||
13 | 11/26 | Advanced Language Processing | Slides Code | OSM Ch 13 and 17 | 10 | Lab12: The OCaml Debugger | Solution | |
Exceptions | Slides Code | |||||||
14 | 12/03 | Lazy Evaluation | Slides Code | 1.6, 26 Lazy | Lab13: Lazy and Stream Modules | Solution | ||
Objects, Methods, Dispatch | Slides Code | 3.1 - 3.12 | 18 | A5 Milestone | ||||
15 | 12/10 | Ocaml Optimization | Slides Code | Lab14: Review | Solution | A5 Due | ||
Review | Practice Solution | |||||||
12/17 | Final Exams | |||||||
Sec 001 (9:05am lecture) | ||||||||
Mon 12/17 10:30am-12:30pm | ||||||||
Sec 010 (01:25pm lecture) | ||||||||
Mon 12/17 01:30pm-03:30pm | ||||||||
Reading abbreviations:
- OSM: OCaml System Manual: http://caml.inria.fr/pub/docs/manual-ocaml/
- PO: Practical OCaml