Course Schedule Spring 2018

This schedule is subject to change. Please check back frequently.


Week Date Lecture Homework Readings
Week 1 March 27th Introduction & Basics Overview
Course Overview
Introduction to Functional Programming and Haskell
Basics overview: variables, types and arithmetic operators
Function Composition
Homework #1 Hutton Ch. 1- 3.6
Week 2 April 3rd Homework due date
Homework #1 due 5:30pm
Hutton Ch. 3.7, 4, 6
April 3rd Functional Patterns, Recursion & Polymorphism
Pattern Matching
Guards
List Recursion
Anonymous functions
Polymorphism
Functional Patterns
ADTs
Recursive Types
Homework #2
Week 3 April 10th Homework due date
Homework #2 due 5:30pm
Hutton Ch. 5, 7, 8
April 10th Higher Order Functions, List Comprehension & Typeclasses
List comprehension
Declaring types
Typeclasses
Higher Order Functions (HOFs)
Homework #3
Week 4 April 17th Homework due date
Homework #3 due 5:30pm
Hutton Ch. 10, 11, 12.1
April 17th Modules, Records, Haskel I/O
More on Modules & Project building
Records
Haskell I/O mechanisms
Introduction Functors
Homework #4
Midterm Exam Practice
Week 5 April 24th
April 24th
Midterm Exam
Week 6 May 1st Homework due date
Homework #4 due 5:30pm
Hutton Ch. 12.1
May 1st Container Types & Functors
More on Functors
Kind types
Homework #5
Week 7 May 8th
Hutton Ch. 12.2, 14
May 8th Advanced Haskell Type Classes
Applicative
Monoids
Foldable
I/O Mapping
Week 8 May 15th Homework due date
Homework #5 due 5:30pm
Ch. 12.3, 15.1-15.3, 15.7
May 15th Monads & Concurrency
Monads
Evaluation Semantics : Lazy vs Eage Semantics Concurrency & Parallelism in Functional Programming
Software Transactional Memory
Homework 6
Week 9 May 22nd Homework due date
May 22nd Functional Data Structures & Functional Programming in the Real World
Functional Data Structures
Functional Programming & Object-Oriented Programming
Server-Side Programming in Haskell
Functional Programming in modern languages
Final Exam Practice
Week 10 May 29th
May 29th Final Exam & Advance Topics
Final Exam
Functional Reactive Programming
Continuations
Advance topics dependent on the class.
Week 11 June 5th Homework due date
Homework #6 due 5:30pm