Welcome!
This is the official public website for the Spring 2019 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., tests, 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:
Online course materials:
- Module 01: Intro and Ruby 1 (R/P)
- Module 02: Ruby 2 (P)
- Module 03: Haskell 1 (P)
- Module 04: Haskell 2 (P)
- Module 05: Prolog 1 (P)
- Module 06: Prolog 2 (P)
- Module 07: Syntax (B)
- Guide
- Slides: Lam
- Wed. Lecture (Bowers): CFG Ambiguity and Operator Precedence & Associativity
- Wed. Lecture (Bowers): Regular Expressions and Finite State Machines
- Lab: Grammars
- Lab: Regex and FAs
- Lab Solutions (Lam): YouTube playlist
- Module 08: Parsing (R)
- Module 09: Names and Bindings (R)
- Module 10: Scope and Lifetime (B)
- Module 11: Data Types (R)
- Module 12: Type Checking (B)
- Module 13: Expressions (B)
- Guide
- Slides: Lam
- Lab: Expressions
- Module 14: Control Structures (R)
- Module 15: Parameters (B)
- Guide
- Slides: Lam
- Lab: Parameters
- Module 16: Subprogram Invocation (R)
- Module 17: Activations and Environments (B)
- Guide
- Slides: Lam
- Lab: Activation
- Lab Solutions: Bowers YouTube video, Lam YouTube playlist
- Module 18: Abstraction and OOP (B)
- Guide
- Slides: Lam
- Lab: Virtual Method Tables
- Module 19: Concurrency and Error Handling (B)
- Guide
- Slides: Lam
- Lab: Concurrency and Error Handling
- Module 20: History (R)