You can find the supplementary search problems in the lecture repository as "Lect12supp.hs". The source file contains a description of the extendPath
(successor) and findPath
(search) functions that you are to implement to solve the "Pathfinding problem". Some test cases and specs are included.
If you need some help, a sample solution can be found in the completed branch.
Here's the shared lecture session link for today
The first machine problem has been released. You can find the writeup in the "Machine Problems" section, below.
If you're a Windows user and are having trouble getting the Haskell toolchain set up on your computer, check out the Windows Haskell writeup, contributed by Dustin Thomas and My Dinh.
The lecture repository has been updated! You can find installation tools for the recommended Haskell toolchain (along with a video tutorial) at https://github.com/cs340ppp/lectures/blob/main/INSTALL.md
Welcome to the Spring 2023 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 11  Syllabus and Course overview  slidesintro.pdf  Syllabus 
Jan 13  Functional programming  slidesfp.pdf  "Why FP Matters" 
Jan 18  Haskell Language Overview 
Haskell setup instructions Lect01.lhs 
LYH chapters 1 and 2 (skim) 
Jan 20  Jan 25  Types and Type Classes  Lect02.lhs  LYH chapter 3 
Jan 27  Functions  Lect03.lhs  LYH chapter 4 
Feb 1  Feb 3  Lists  Lect04.lhs  LYH chapter 2 (List intro) 
Feb 8  Testing and QuickCheck  Lect05.lhs  QuickCheck manual (skim) 
Feb 10  Feb 17  Recursion  Lect06.lhs  LYH chapter 5 
Feb 24  Mar 1  Higher Order Functions  Lect07.lhs  LYH chapter 6 
Mar 3  Mar 8  Defining Types and Type Classes  Lect08.lhs  LYH chapter 8 
Mar 10  Midterm Exam  
Mar 13  Mar 17  Spring Break  
Mar 22  Mar 24  Functors, Applicatives, and Monads 
Lect09.lhs Video and Notes (PDF) 
LYH chapter 11 
Mar 29  Mar 31  Some Monads 
Lect10.lhs Video and Notes (PDF) 
LYH chapter 12 and 13 
Apr 5  I/O Monad  Lect10.lhs  LYH chapter 9 
Apr 7  Monadic Parsing  Lect11.hs  Monadic Paring 
Apr 12  Apr 14  Search 
Lect12.lhs Lect12supp.hs 

Apr 19  Apr 21  Concurrency (optional)  
Apr 26  Apr 28  Software Transactional Memory (optional) 
Released  Due  Writeup / Resources  Repo Invite  Max Points 

Jan 30  Feb 12  Basic Functions  cs340ppp/mp1  47 
Feb 15  Feb 26  Lists, Lists, Lists  cs340ppp/mp2  72 
Mar 28  Apr 9  Data types and HOFs  cs340ppp/mp3  71 
Apr 14  Apr 23  Monadic Parsing  cs340ppp/mp4  74 