This schedule is subject to change. Please check back frequently.
Week | Date | Lecture | Project | Readings |
---|---|---|---|---|
Week 1 | Sept 25th |
Introduction & Basics Overview Course Overview Introduction to Functional Programming and Haskell Course Development Environment Basics overview: variables, types and arithmetic operators |
Project #1 | Hutton Ch. 1- 3.5 |
Week 2 | Oct. 1st | Project due date |
Project #1 due 11:59pm
|
Hutton Ch. 4, 6.1, 6.2, 3.7, 3.8, 3.9 |
Oct. 2nd |
Constructing Functions, Introduction to Polymorphism and List Recursion Pattern Matching Ranges Guards Anonymous functions Polymorphic types List Recursion |
Project #2 | ||
Week 3 | Oct. 8th |
Project due date |
Project #2 due 11:59pm
|
Hutton 5, Ch. 6.3-6.7, 7 |
Oct. 9th |
Recursion, List Comprehension, Records and Higher Order Functions More on List Recursion List Comprehension Records Higher Order Function |
Project #3 | ||
Week 4 | Oct. 15th |
Project due date |
Project #3 due 11:59pm
|
Hutton Ch. 8 |
Oct. 16th |
Declaring Types and Classes, Modules Declaring types Recursive Types Class and instance declarations Importing Modules Making Projects with Stack |
Project #4 | ||
Week 5 | Oct. 22nd |
|
||
Oct. 23rd |
Midterm Exam Office Hours |
|||
Week 6 | Oct. 29th |
Project due date |
Project #4 due 11:59pm
|
Hutton Ch. 10, 11, 12.1 |
Oct. 30th |
Haskell I/O, Types of Types, Functors Haskell I/O mechanisms Kind types Functors |
Project #5 | ||
Week 7 | Nov. 5th |
|
Hutton Ch. 12.2, 12.3, 13 | |
Nov. 6th |
Advanced Haskell Concepts Applicative Monoids Foldables Travaersables |
|||
Week 8 | Nov. 13th |
Project due date |
Project #5 due 11:59pm
|
Hutton Ch. 12.2, 12.3, 13 |
Nov. 13th |
Lazy Evaluation, Monads, Data Structures, Functional Programming in the Real World Lazy Evaluation Monads Data Structures performance in Haskell Functional Programming in the OOP |
Final Project | ||
Week 9 | Nov. 19th |
|
|
|
May. 20th |
Functional Programming in the Real World (Cont'd.) and Advance Topics Functional Programming on the Web Functional Reactive Programming Advance topics dependent on the class. |
|||
Week 10 | Nov. 26th |
|
||
Nov. 27th |
Final Exam Office Hours |
|||
Week 11 | Dec. 3rd |
Final Project due date |
Final Project due 11:59pm
|