Course Schedule Fall 2016

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