Welcome!
This is the official public website for the Spring 2020 offering of CS 430 at James Madison University! There are four sections of CS 430 this year, two taught by Dr. John Bowers 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
- Lam office hours: Mon/Wed 1:30-3:00pm (Zoom link on Canvas) or schedule a meeting
- Bowers office hours: Mon 2:30-5:00pm, Tue 8:00-9:15pm, Wed 2:30-3:45pm
Online course materials:
- Week 1 (Jan 13-17)
- Week 2 (Jan 20-24)
- 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 27-31)
- Week 4 (Feb 3-7)
- Week 5 (Feb 10-14)
- Week 6 (Feb 17-21)
- Week 7 (Feb 24-28)
- Module 10: Expressions (B)
- Guide
- Slides: Lam
- Lab: Expressions (reference solution)
- Module 11: Control Structures (R)
- Module 10: Expressions (B)
- Week 8 (Mar 2-6)
- Module 12: Haskell 2 (P)
- Week 9 (Mar 23-27)
- Module 13: Parameters (B)
- Guide
- Video lectures: Bowers (playlist), Lam (playlist)
- Slides: Lam
- Lab: Parameters (solution)
- Video lab solutions: Bowers, Lam (playlist)
- Module 14: Subprogram Invocation (R)
- Guide
- Video lectures: Lam (playlist)
- Slides: Lam
- Module 13: Parameters (B)
- Week 10 (Mar 30 - Apr 3)
- Module 15: Prolog 1 (P)
- Guide
- Lab (Lam videos w/ solution) (reference solution)
- Other examples: hanoi, packages, students
- Project
- Module 15: Prolog 1 (P)
- Week 11 (Apr 6 - Apr 10)
- Module 16: Activations and Environments (B)
- Guide
- Video lectures: Bowers, Lam (playlist)
- Slides: Lam
- Lab: Activation (reference solution)
- Video lab solutions: Bowers, Lam (playlist)
- Module 16: Activations and Environments (B)
- Week 12 (Apr 14 - Apr 17)
- Module 17: Prolog 2 (P)
- Week 13 (Apr 20 - Apr 24)
- Module 18: Abstraction and OOP (B)
- Guide
- Video lectures: Bowers, Lam (playlist)
- Slides: Lam
- Lab: Virtual Method Tables (reference solution)
- Video lab solution: Lam (playlist)
- Module 18: Abstraction and OOP (B)
- REMOVED CONTENT (last year’s materials provided for independent self-study)
- 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 14 (Apr 27 - Apr 30)