CIS 505/705, (Introduction to) Programming Languages
Fall 2023 Schedule

This schedule is subject to (hopefully only minor) modifications

General remarks


Schedule

Class     TopicsLab ProjectExam
1: Mon
Aug 21
Introduction
2: Wed
Aug 23
Basic OCaml
3: Fri
Aug 25
Functions (I) OCaml Lab 1 out
4: Mon
Aug 28
Functions (II)
5: Wed
Aug 30
List Functions (I)
6: Fri
Sep 1
List Functions (II) OCaml Lab 1 in
OCaml Lab 2 out
7: Wed
Sep 6
Dictionaries
8: Fri
Sep 8
Set representations OCaml Lab 2 in Project 1 out
9: Mon
Sep 11
Introduce Project 1:
  • write in OCaml an interpreter for
    a simple interactive language
Exceptions
10: Wed
Sep 13
Data Types
11: Fri
Sep 15
Functions on Trees
12: Mon
Sep 18
Review session Project 1 in
13: Wed
Sep 20
Exam 1
14: Fri
Sep 22
Recursion OCaml Lab 3 out
15: Mon
Sep 25
Lazy Evaluation
16: Wed
Sep 27
Wrap up functional programming
Discuss and give back Exam 1
17: Fri
Sep 29
Motivate and discuss Project 2:
  • write an interpreter for an imperative language
and give the necessary background
OCaml Lab 3 in Project 2 out
18: Mon
Oct 2
Parsing (I)
19: Wed
Oct 4
Parsing (II, ambiguity)
20: Fri
Oct 6
Parsing (III, parsing functions) Parsing Lab out
21: Mon
Oct 9
Interpreting a First-Order Functional Language (I) Project 2 in
22: Wed
Oct 11
Interpreting a First-Order Functional Language (II)
23: Fri
Oct 13
Interpreting a Higher-Order Functional Language Parsing Lab in
24: Mon
Oct 16
Review session.
25: Wed
Oct 18
Exam 2
26: Fri
Oct 20
Motivate and discuss Project 3:
  • write an interpreter for a higher-order functional language
Project 3 out
27: Mon
Oct 23
Logic Refresher (I, propositional)
28: Wed
Oct 25
Interpreting A Higher Order Language with Mutations
29: Fri
Oct 27
Motivate and discuss Project 4:
  • write an interpreter for an object-oriented language
Project 4 out
30: Mon
Oct 30
Logic Refresher (II, predicate) Project 3 in
31: Wed
Nov 1
Prolog: Basics (I)
32: Fri
Nov 3
Prolog: Basics (II) Prolog Lab out
33: Mon
Nov 6
Prolog: Advanced (I) Project 4 in
34: Wed
Nov 8
Prolog: Advanced (II)
35: Fri
Nov 10
Prolog: Applications Prolog Lab in
36: Mon
Nov 13
Review session
37: Wed
Nov 15
Exam 3
Fri
Nov 17
No class Project 5 out
38: Mon
Nov 27
Motivate and discuss Project 5:
  • write in Prolog an interpreter for a query language
Wed
Nov 29
discuss the CIS705 project
39: Fri
Dec 1
discuss the CIS705 project
Mon
Dec 4
discuss the CIS705 project Project 5 in
Wed
Dec 6
discuss the CIS705 project
Fri
Dec 8
discuss the CIS705 project
Mon
Dec 11
--
Fri
Dec 15
CIS705 presentations
at selected times