CS 340: Programming Paradigms and Patterns

Announcements

  • MP2 has been released!

  • MP1 has been released!

  • We will be using Discord to facilitate student discussion, and to run open TA office hours. If you aren't already a member, please join at https://discord.gg/CcvakvV

Calendar

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 12 Syllabus and Course overview slides-intro.pdf Syllabus
Jan 14 Functional programming slides-fp.pdf "Why FP Matters"
Jan 19 Haskell Language Overview Lect01.lhs
Getting started Video
LYH chapters 1 and 2 (skim)
Jan 21 - Jan 26 Types and Type Classes Lect02.lhs LYH chapter 3
Jan 28 Functions Lect03.lhs LYH chapter 4
Feb 2 - Feb 4 Lists Lect04.lhs LYH chapter 2 (List intro)
Feb 9 Testing and QuickCheck Lect05.lhs QuickCheck manual (skim)
Feb 11 - Feb 18 Recursion Lect06.lhs LYH chapter 5
Feb 23 - Feb 25 Higher Order Functions Lect07.lhs LYH chapter 6
Mar 2 - Mar 4 Defining Types and Type Classes Lect08.lhs LYH chapter 8
Mar 11 Midterm Exam
Mar 14 - Mar 18 Spring Break
Mar 23 - Mar 25 Functors, Applicatives, and Monads Lect09.lhs
Video and Notes (PDF)
LYH chapter 11
Mar 30 - Apr 1 Some Monads Lect10.lhs
Video and Notes (PDF)
LYH chapter 12 and 13
Apr 6 I/O Monad Lect10.lhs LYH chapter 9
Apr 8 Monadic Parsing Lect11.hs
Apr 13 - Apr 15 Search Lect12.lhs
Apr 20 - Apr 22 Concurrency
Apr 27 - Apr 29 Software Transactional Memory

Machine Problems

Released Due Writeup / Resources Repo Invite Max Points
Jan 31 Feb 13 Basic Functions cs340ppp/mp1 47
Feb 28 Mar 13 Lists, Lists, Lists cs340ppp/mp2 72
Mar 11 Mar 12 (Noon) Midterm Exam cs340ppp/midterm
Mar 21 Apr 3 Data types and HOFs cs340ppp/mp3 65
Apr 8 Apr 17 Monadic Parsing cs340ppp/mp4 51
Apr 20 May 6 Search cs340ppp/mp5 60

Resources

Administrivia

Reading

Development Tools

References

Past Exams