Lectures

Number Date Topic Slides
1 Friday, February 7 Course intro Slides
2 Tuesday, February 11 Boxes and Arrows Slides
3 Friday, February 21 PL Fundamentals, part 1 Slides
4 Tuesday, February 25 PL Fundamentals, part 2 Slides
5 Friday, February 28 PL Fundamentals, part 3 Slides
Solutions to class reductions
Lambda calculus reduction checker
6 Tuesday, March 3 LISP, part 1 Slides
7 Friday, March 3 LISP, part 2 Slides
8 Tuesday, March 10 Computability Slides
Class activity
Solution
9 Thursday, March 13 Type Inference Slides
10 Tuesday, April 7 Midterm Review See "mini-lecture" videos in GLOW.
11 Tuesday, April 14 ML and F#, intro and basic syntax
12 Thursday, April 16 ML and F#, pattern matching, ADTs, HOFs Slides 1
Slides 2
13 Tuesday, April 21 Parser Combinators Slides
Program.fs
Parsers.fs
14 Thursday, April 23 Project Ideas & SQL Slides 1
Slides 2
15 Tuesday, April 28 Program Interpretation Slides
Program.fs
Library.fs
16 Thursday, April 30 Growing a Language / Scope Watch the talk by Guy Steele on GLOW.
But before you watch, some context.
Slides
dynamic_scope.pl
lexical_scope.pl
also_lexical_scope.fs
Optional fun reading: Is JavaScript Statically or Dynamically Scoped?
17 Tuesday, May 5 ("May the Fifth Be With You!"... or was it "Cuarto de Mayo"?) Object-Oriented Programming, part 1 Slides
18 Thursday, May 7 Unit Testing / Packages/ Object-Oriented Programming, part 2 Slides 1
Slides 2
TestTutorial.zip
ImageTest.zip
F# Unit Testing Tutorial
RectangleTest.rb
19 Tuesday, May 12 Object-Oriented Programming, part 3 / How to Give a Good Talk Slides 1
Slides 2
mean.cpp
Numbers.cpp
Honkable.cpp
HonkableV2.cpp
Optional: An example of a good talk (full disclosure: Emery is my PhD advisor!)
Optional: How to give a great research talk (this is a little research-oriented, but very good advice in general)
20 Thursday, May 14 Recap / Variables Slides
varlang.zip
  • CSCI 334: Principles of Programming Languages, Spring 2020

CSCI 334 website repository

Powered by Bootstrap 4 Github Pages