...
General Information
Course Syllabus | |||||||||||||
Homework Submission Guide | |||||||||||||
Office Hours |
| ||||||||||||
Textbooks | There is no required textbook. We will follow the pedagogic approach of "How to Design Programs" but in a typed context. We will also draw material from a variety of sources, including:
| ||||||||||||
Development Environment | The DrScala Pedagogic IDE is recommended for all homework assignments in this course. |
...
Week | Day | Date | Topic | Work Assigned | Work Due |
---|---|---|---|---|---|
1 | Tues | Aug 25 | |||
Thur | Aug 27 | The Nature of Doubles, The Design Recipe | |||
2 | Tues | Sep 01Introduction to Scala | Type Checking, Compound Datatypes, Tests, Errors | ||
| Thur | Sep 03Programming with Intention | Scoping and Imports, Programs, DrScala | Hwk 01 | |
3 | Tues | Sep 08Test-Driven Development | Conditional Functions, Abstract Datatypes, Case Classes | ||
Thur | Sep 10 | Defining and Using Functions and RecursionSyntax and Semantics of Core Scala | Hwk 12 | Hwk 01 | |
4 | Tues | Sep 15Referential Transparency and the Substitution Model | Pattern Matching, The Expression Problem | ||
| Thur | Sep 17Tail Recursion | Options, Lists, The Natural Numbers | Hwk 23 | Hwk 12 |
5 | Tues | Sep 22Lists and Functional Data Structures | Binary Search Trees | ||
| Thurs | Sep 24 | Types, Type Systems, and Polymorphic FunctionsComplexity Analysis | Hwk 34 | Hwk 23 |
6 | Tues | Sep 29Programming with Options and Pattern Matching | Functions as Values, Polymorphic Functions, Call-by-Name | ||
| Thur | Oct 01 | MapReferential Transparency, Reduce, and Higher Order FunctionsExceptions and Continuations | Hwk 45 | Hwk 34 |
7 | Tues | Oct 06Comprehensions and flatMap | Generative Recursion 1 | ||
| Thurs | Oct 08Programs as Proofs and the Curry-Howard Isomorphism | Generative Recursion 2 | Hwk 45 | |
8 | Tues | Oct 13 | MIDTERM RECESS | ||
| Thur | Oct 15 | Guest Lecture (TBA) | Hwk 5 | |
9 | Tues | Oct 20 | Functional Leftist Heaps and Binomial HeapsTail Recursion and Accumulators | ||
| Thur | Oct 22Functional | Red-Black TreesComprehensions and flatMap | Hwk 6Hwk 5 | |
10 | Tues | Oct 27Strictness and Lazy Evaluation | Map, Reduce, Higher Order Functions | ||
| Thur | Oct 29 | Stream Processing and Incremental I/OFunctional Leftist Heaps and Binomial Heaps | Hwk 7 | Hwk 6 |
11 | Tues | Nov 03Closures, Effects, and the Environment Model | Functional Red-Black Trees | ||
| Thur | Nov 05Programming with Continuations | Programs as Proofs | Hwk 8 | Hwk 7 |
12 | Tues | Nov 10Domain-Specific Languages with Higher Order Functions | Variable Assignment and the Environment Model | ||
| Thur | Nov 12Parallelism and Functional Programming | Mutable Objects, Equality | Hwk 9 | Hwk 8 |
13 | Tues | Nov 17 | Big Data and Distributed Computing with Apache Spark | ||
| Thur | Nov 19DataFrames and Spark SQL | Distributed Machine Learning | Hwk 10 | Hwk 9 |
14 | Tues | Nov 24 | Guest Lecture (TBA) | ||
| Thur | Nov 26 | THANKSGIVING | ||
15 | Tues | Dec 01 | Pipelines and SparkML (Machine Learning) | ||
Thur | Dec 03 | Course Wrap Up | Hwk 10 |
...