...
Week | Day | Date | Topic | Work Assigned | Work Due |
---|
1 | Tu | Aug 21 | Overview, Motivation | | |
| Th | Aug 23 | Computation by Reduction, Types | Homework 0 | |
2 | Tu | Aug 28 | Core Scala, Doubles, Error Conditions | | |
| Th | Aug 30 | Programming with Intention, The Design Recipe | | |
3 | Tu | Sep 04 | Conditionals, Functions on Ranges & Point Values, Compound Data | | |
| Th | Sep 06 | Methods, Objects, Grading | | Homework 0 |
4 | Tu | Sep 11 | Abstract Datatypes & DrScala | Homework 1 | |
| Th | Sep 13 | Abstract Datatypes (cont.), Recursively Defined Types | | |
5 | Tu | Sep 18—* | Recursively Defined Types (cont.), Functions as Values | | |
| Th | Sep 20 | Recursively Defined Types 2, Functions as Values*1st-Class Functions, Imports | | |
6 | Tu | Sep 25 | 1st-Class Functions, Imports, Variable & Named Args*Variable Arity, Named Arguments, Exceptions, Format Strings | Homework 2 | Homework 1 |
| Th | Sep 27 | Exceptions, String Formatting, Generic Types* | | |
7 | Tu | Oct 02 | Co- and Contra-variance, Currying, Fold, Flatmap*Type Hierarchy, Variance, Generic Map Function | | |
| Th | Oct 04 | Type HierarchyFold, OverridesZip, ExceptionsFlatten, Operators *For Expressions | | |
8 | Tu | Oct 09 | Midterm Recess (no classes) | | |
| Th | Oct 11 | For Expressions, Monads, The Environment Model * Operators | Homework 3 | Homework 2 |
9 | Tu | Oct 16 | Tentative: Midterm ExamAccumulators | | |
| Th | Oct 18 | Call-by-Name/Value, Scala Immutable Collections Classes, Traits* | | |
10 | Tu | Oct 23 Generative Recursion* | Growing a Language, by Guy L. Steele, Jr. Midterm Exam: 7–10pm in DH1075 | | |
| Th | Oct 25 Strategies for Generative Recursion* | Call by Name, Traits, Mixins | | |
11 | Tu | Oct 30 | Accumulators* | Homework 4 | Scala Parser Combinators | | Homework 3 |
| Th | Nov 01 | Functional Data Structures* | | Streams | Homework 4 | Homework 3 |
12 | Tu | Nov 06 | Streams, State, Mutation*Monads, For-expression desugaring | | |
| Th | Nov 08 Mechanical Proof Checkin, The Curry-Howard Isomorphism* | ... | | |
13 | Tu | Nov 13 | The State Monad* | Homework 5 | Additional Scala Features | | Homework 4 |
| Th | Nov 15 | Additional Scala Features, Extractors, Parser Combinators* | | Semantics of Exceptions | Homework 5 | Homework 4 |
14 | Tu | Nov 20More Parser Combinators, Actors and Concurrency* | Videos: What to Leave Implicit and Impromptu | | |
| Th | Nov 22 | Thanksgiving Holiday (no classes) | | |
15 | Tu | Nov 27 | Functional Distributed Computing*State Monad | | |
| Th | Nov 29Videos: What to Leave Implicit and Impromptu* | Course Wrap-up | | Homework 5 |
16 | Tu | Dec 04 | Study Day (no classes) | | |
| ? | F | Dec 07??? | Final Exam (awaiting date from registrar's office): 2–5pm in Duncan Hall 1075 | | |
* Lectures slides not yet updated from last year are marked with an asterisk.
** The place and time of the final exam is set by the registrar. The current scheduling details are available on the registrar's page for this course.