Welcome!
This is the official public website for the Spring 2022 offering of CS 430 at James Madison University! There are four sections of CS 430 this year, two taught by Dr. Chris Johnson and two taught by Dr. Mike Lam. This website applies to all four sections. We will be posting most of the course materials here, and anything that must be private (e.g., quizzes, grades, copyrighted files, etc.) will be posted on each section’s Canvas page.
Please bookmark or otherwise keep this page handy and check it regularly throughout the semester.
Course information:
- Syllabus
- Schedule
- Johnson office hours: 12:25-2:15pm in King Hall 246-E or schedule a Zoom meeting via a Slack direct message
- Lam office hours: 10:30-11:30am M-F in King Hall 227 and/or Zoom (via link on Canvas) or schedule a meeting
Online course materials:
- Week 1 (Jan 18-21)
- Week 2 (Jan 24-28)
- Module 02: Syntax (B)
- Guide
- Slides: Lam
- Lab (reference solution)
- Lab Solutions (Lam): YouTube playlist (from 2019; read playlist description for differences this year)
- Module 03: Parsing (R)
- Module 02: Syntax (B)
- Week 3 (Jan 31 - Feb 4)
- Module 04: Ruby 2 (P)
- Week 4 (Feb 7-11)
- Week 5 (Feb 14-18)
- Week 6 (Feb 21-25)
- Module 09: Haskell 1 (P)
- Week 7 (Feb 28 - Mar 4)
- Week 8 (Mar 7-10)
- Module 12: Haskell 2 (P)
- Week 9 (Mar 21-25)
- Week 10 (Mar 28 - Apr 1)
- Week 11 (Apr 4-8)
- Module 16: Activations and Environments (B)
- Guide
- Slides: Lam
- Lab: Activation (full reference solution, end of execution)
- Module 16: Activations and Environments (B)
- Week 12 (Apr 11-15)
- Module 17: Prolog 2 (P)
- Week 13 (Apr 18-22)
- Module 18: Abstraction and OOP (B)
- Guide
- Slides: Lam
- Lab: Virtual method tables (reference solutions: Johnson, Lam)
- Module 18: Abstraction and OOP (B)
- Week 14 (Apr 25-29)
- Module 19: Concurrency and Error Handling (B)
- Guide
- Slides: Lam
- Lab: Concurrency and Error Handling (reference solution)
- Module 19: Concurrency and Error Handling (B)
- Week 15 (May 2-5)