The fourth machine problem has been released.
The third machine problem has been released.
The second machine problem has been released.
The first machine problem has been released. You can find the link below to accept the assigment, which will clone the associated source code repository and give you access to the writeup.
Here's the shared lecture session link for today
Use this link to join the CS Discord (and the class discussion channel)
Welcome to the Spring 2024 edition of CS 340!
Please note that readings for a given lecture should ideally be reviewed before coming to class, and will likely need to be revisited afterwards. Most readings are from Learn You a Haskell (LYH) and Real World Haskell (RWH). All materials can be found online, and are linked below. Lecture notes can be found in the lecture repository.
The lecture calendar is tentative and may be updated.
Date | Topic | Notes | Reading(s) |
---|---|---|---|
Jan 10 | Syllabus and Course overview | slides-intro.pdf | Syllabus |
Jan 12 | Functional programming | slides-fp.pdf | "Why FP Matters" |
Jan 17 | Haskell Language Overview |
Haskell setup instructions Lect01.lhs |
LYH chapters 1 and 2 (skim) |
Jan 19 - Jan 24 | Types and Type Classes | Lect02.lhs | LYH chapter 3 |
Jan 26 | Functions | Lect03.lhs | LYH chapter 4 |
Jan 31 - Feb 2 | Lists | Lect04.lhs | LYH chapter 2 (List intro) |
Feb 7 | Testing and QuickCheck | Lect05.lhs | QuickCheck manual (skim) |
Feb 9 - Feb 16 | Recursion | Lect06.lhs | LYH chapter 5 |
Feb 21 - Feb 23 | Higher Order Functions | Lect07.lhs | LYH chapter 6 |
Mar 6 - Mar 8 | Defining Types and Type Classes | Lect08.lhs | LYH chapter 8 |
Mar 11 - Mar 15 | Spring Break | ||
Mar 20 | Functors, Applicatives, and Monads |
Lect09.lhs Video and Notes (PDF) |
LYH chapter 11 |
Mar 22 | Midterm Exam | ||
Mar 27 - Mar 29 | Some Monads |
Lect10.lhs Video and Notes (PDF) |
LYH chapter 12 and 13 |
Apr 3 | I/O Monad | Lect10.lhs | LYH chapter 9 |
Apr 5 | Monadic Parsing | Lect11.hs | Monadic Paring |
Apr 10 - Apr 12 | Monoids and Foldables | ||
Apr 17 - Apr 19 | Search |
Lect12.lhs Lect12supp.hs |
|
Apr 24 - Apr 26 | Concurrency (optional) | ||
Thu, May 2 | Final Exam, 8AM-10AM @ SB 113 | Final Exam Coverage |
If you plan on submitting an assignment late, you must use this late day notice form to let us know by the assignment deadline.
Released | Due | Writeup / Resources | Repo Invite | Max Points |
---|---|---|---|---|
Feb 9 | Feb 18 | Basic Functions | cs340ppp/mp1 | 47 |
Feb 19 | Mar 3 | Lists and the Game of Life | cs340ppp/mp2 | 72 |
Mar 11 | Mar 24 | Data types and HOFs | cs340ppp/mp3 | 71 |
Apr 17 | Apr 28 | Monadic Parsing | cs340ppp/mp4 | 74 |