DateLectureTopic(s)Homework (for next class)
2021-04-08 28 AMA
Last Day
  • Complete your course evaluation
  • P5 due: 2021-04-16 at 11:50pm EST
2021-04-06 27 Chat server (Concurrency and Sockets)
Video: Server Client Conclusion Video: Chat Client
  • Readings:
    • Scott Chapter 13
  • P5 due: 2021-04-16 at 11:50pm EST
2021-04-01 26 No class—student check-ins
  • P5 due: 2021-04-16 at 11:50pm EST
2021-03-30 25 Review/Project Time
Video: Concurrency and Sockets
  • Readings:
    • Scott Sections 13.5.1 (remainder of PDF is optional)
  • P5 due: 2021-04-16 at 11:50pm EST
  • Student Check-ins THIS week! (Thursday)
    • Check-in Summary due: 2021-03-31 (PDF, LaTeX Source)
    • Sign up for individual meeting 2021-04-01 (on Sakai)
2021-03-25 24 Multi-Language Projects, continued
Implict Bias
Review/Project Time
2021-03-23 23 Multi-Language Projects
Video: Python-C One Time Pad
2021-03-18 22 Debuggers
Project work time
  • Readings:
  • Reading Quiz 16 (Gradescope)
  • P5C due: 2021-03-26 at 11:50pm EST
2021-03-16 21 Interpretation review
Project work time
  • Readings:
    • No new readings
  • P5C due: 2021-03-26 at 11:50pm EST
2021-03-11 20 Interpretation and Operational Semantics, continued
Video: Object Layout
2021-03-09 19 Interpretation and Operational Semantics
Video: Operational Semantics Rules in Cool
  • Readings:
    • Scott Sections 6-6.1, 6.3-6.5
  • Reading Quiz 14 (Gradescope)
  • P5C due: 2021-03-26 at 11:50pm EST
2021-03-04 18 Code Generation 2, Electric Boogaloo
Video: Completing the Code Generator
Starter Code
  • Readings:
    • Scott Sections 9-9.3
    • Optional:
      • Scott Chapter 15
  • Reading Quiz 13 (Gradescope)
  • P3 due: 2021-03-05 at 11:50pm EST
2021-03-02 17 Code Generation
Video: Code Generation
Starter Code
  • Readings:
  • Reading Quiz 12 (Gradescope)
  • P3 due: 2021-03-05 at 11:50pm EST
2021-02-25 16 Types and Type Checking
Video: Type Checking with Subtypes, Conditionals, and Dispatch
  • Readings:
    • Scott Sections 4-4.1 and Chapter 7 (Use the reading quiz to focus your reading)
  • Reading Quiz 11 (Gradescope)
  • P3 due: 2021-03-05 at 11:50pm EST
2021-02-23 15 Semantic Analysis and Scoping
Video: Getting Started with PLY (Cool Parser)
  • Readings:
    • Scott Chapter 3
  • Reading Quiz 10 (Gradescope)
  • P3 due: 2021-03-05 at 11:50pm EST
2021-02-18 14 No class—Check-ins
  • Readings:
    • No new readings
  • P2 due: 2021-02-15 at 11:50pm EST
2021-02-16 13 No Class
2021-02-11 12 Review
  • Readings:
    • No new readings
  • Check-ins Next week:
    • Check-in Summary due: 2021-02-17 (PDF, LaTeX Source)
    • Sign up for individual meeting 2021-02-18 (on Sakai)
    • No class 2021-02-16
  • P2 due: 2021-02-15 at 11:50pm EST
2021-02-09 11 Earley Parsing (Dynamic Programming)
Parsing Table (LaTeX source)
Parsing Table
Video: Implementing a Recursive Descent Parser for CL-Lex
  • Readings:
    • No new readings
  • Check-ins Next week:
    • Check-in Summary due: 2021-02-17 (posted soon)
    • Sign up for individual meeting 2021-02-18 (on Sakai)
    • No class 2021-02-16
  • P2 due: 2021-02-15 at 11:50pm EST
2021-02-04 10 Earley Parsing (Dynamic Programming)
Parsing Table (LaTeX source)
Parsing Table
Project work time
  • Readings:
    • No new readings
  • P1c due: 2021-02-08 at 11:50pm EST
  • Updated P2 due: 2021-02-15 at 11:50pm EST
2021-02-02 9 Context-Free Grammars
Ambiguity
Recursive Descent Parsing
Video: Recursive Descent Parsing
2021-01-28 8 Parsing
Context-Free Grammars
Video: Lexing Wrap-Up
2021-01-26 7 Lexical Analysis
Finite Automata
Video: Using JFlex
JFlex for Simple Calculator
  • Readings:
    • Scott Sections 2.3 (stop before 2.3.1), 2.4.2-2.4.3 (available here)
  • Reading Quiz 7 (Gradescope)
  • Updated: P1c due: 2021-02-08 at 11:50pm EST
  • P2 coming soon (and will run parallel to P1c)
  • Resources:
2021-01-21 6 Lexical Analysis
Regular Expressions
  • Readings:
  • Reading Quiz 6 (Gradescope)
  • P1b due: 2021-01-22 at 11:50pm EST
  • P1c due: 2021-01-29 at 11:50pm EST
2021-01-19 5 COOL Programming Language
Implementing a Programming Language
  • Readings:
  • Download the COOL reference compiler and try it out
  • Reading Quiz 5 (Gradescope)
  • P1b due: 2021-01-22 at 11:50pm EST
  • P1c due next week
2021-01-14 4 Variant types
Recursion
Higher-order functions
Week 2 Reason Files
  • Readings:
  • Reading Quiz 4 (Gradescope)
  • P1a due: 2021-01-18 at 11:50pm EST
  • P1b due: 2021-01-22 at 11:50pm EST
2021-01-12 3 Features of a Functional Language
Creating a project
Variant types
Recursion
Higher-order functions
2021-01-07 2 Intro to Reason
Types
Creating a project
  • Readings:
  • Reading Quiz 2 (Gradescope)
  • UPDATED: P1a due: 2021-01-18 at 11:50pm EST
2021-01-05 1 Introduction to Programming Languages
Programming Paradigms
Intro to Reason