CMSC 330, Spring 2017

Organization of Programming Languages

Schedule

Lectures & Discussions

Many thanks to Michael Clarkson for permission to copiously borrow from his Fall 2016 CS 3110 slides in the OCaml lectures below.

Date Topic and Materials
01/26 Introduction (slides)
Ruby 1 (slides)
Code: zip
01/31 Ruby 1 cont. (slides) Code: zip
02/02 Ruby 2 (slides) Code: zip
02/07 Ruby Regex (slides) Code: zip
02/09 OCaml Introduction (slides)
Functions (slides)
Working with OCaml (slides)
Lists (slides)
Code: zip
02/14 Lists and polymorphic types (slides) (video)
02/16 Lets, Tuples, Records (slides)
Higher order functions (slides)
02/21 Data types (slides)
02/23 Closures (slides)
Imperative Programming (slides)
02/28 Operational Semantics (slides) (code)
03/02 Midterm 1
03/07 Regexps and Finite Automata (slides)
03/09 DFA and NFA (slides)
03/14 CFG (slides)
03/16 Parsing (slides) Code: zip
03/21
03/23
Spring Break (slides)
03/28 Objects and FP (slides)
Tail Recursion (slides)
Code: zip
03/30 Lambda Calculus (slides)
04/04
Lambda Calculus Encodings (slides) Code (Hicks, zip) Code (Mamat, github)
04/06
Prolog Basics (slides, updated on 04/11) Code (github)
04/11
Prolog Lists (slides) Code (zip)
04/13
Midterm 2
04/18
Prolog Advanced (slides) Code (zip)
04/20
Modules, Objects, and ADTs (module/ADT slides) (object/ADT slides) Code (zip)
04/25
Types (slides), Memory Management (slides)
04/27
Software Security (slides)
05/02
Web Security (slides)
05/04
Secure Design (slides)
05/09
History (slides)

Web Accessibility

Web Accessibility