Captain's Log: CIS 505/705, Fall 2016
(Introduction To) Programming Languages

Aug 22 (Mon) & Aug 24 (Wed)
Class canceled (instructor out of town)
1: Aug 26 (Fri)
Introduction to course:
2: Aug 29 (Mon)
Cover the basic features of SML (the slide set Basics.pdf).
3: Aug 31 (Wed)
4: Sep 2 (Fri)
Sep 5 (Mon)
University Holiday (Labor Day)
5: Sep 7 (Wed)
6: Sep 9 (Fri)
7: Sep 12 (Mon)
8: Sep 14 (Wed)
9: Sep 16 (Fri)
10: Sep 19 (Mon)
11: Sep 21 (Wed)
Lab 2 due at 11pm.
12: Sep 23 (Fri)
Cover Exceptions, convenient to handle irregular situations;
13: Sep 26 (Mon)
14: Sep 28 (Wed)
Exam 1
15: Sep 30 (Fri)
16: Oct 3 (Mon)
Discuss the skeleton interpreter for Programming Assignment 2.
17: Oct 5 (Wed)
Further discuss Programming Assignment 2: Discuss the first stages of implementing a programming language:
18: Oct 7 (Fri)
Discuss remaining stages of implementing a programming language: Programming Assignment 2 due this weekend.
19: Oct 10 (Mon)
20: Oct 12 (Wed)
Show how to encode lazy evaluation in SML (the slides Lazy) Quiz 2 on constructing parse trees.
21: Oct 14 (Fri)
22: Oct 17 (Mon)
Discuss how to implement first-order functional languages (the slides InterpretFunctionsFO):
23: Oct 19 (Wed)
As in Chapter 7 of the textbook, we interpret higher order functions (the slides InterpretHigherOrder) Briefly present Programming Assignment 3.
24: Oct 21 (Fri)
25: Oct 24 (Mon)
26: Oct 26 (Wed)
Embark on Chapter 8 of the textbook, on mutable structures (the slides InterpretMutations) Briefly discuss Racket Lab 1, due at 11pm.
27: Oct 28 (Fri)
We extend the interpreter for a functional language to handle mutations, by using We go through the various clauses (as in Section 8.1.7 of the textbook) with focus on Discuss model solutions for Racket Lab 1.
Programming Assignment 3 due this weekend.
28: Oct 31 (Mon)
Prepare for Exam 2:
29: Nov 2 (Wed)
Exam 2
30: Nov 4 (Fri)
Introduce Programming Assignment 4, on writing an interpreter for an object-oriented functional language:
31: Nov 7 (Mon)
32: Nov 9 (Wed)
To prepare for Prolog (the 3rd part of the course), start on a crash course in logic: Discuss how to implement call-by-name using environments (cf. Assignment 3).
33: Nov 11 (Fri)
Finish the crash course in logic: Programming Assignment 4 due this weekend.
34: Nov 14 (Mon)
Introduction to Prolog (also described in Chapter 8 of Schmidt's notes):
35: Nov 16 (Wed)
Discuss how to handle lists in Prolog:
36: Nov 18 (Fri)
Data structures in Prolog: Control in Prolog: Prolog Lab 1 due tonight.
Nov 21-25 (Mon-Fri)
Thanksgiving holiday
37: Nov 28 (Mon)
Introduce Programming Assignment 5: Discuss model solutions for Prolog Lab 1.
38: Nov 30 (Wed)
Continue Prolog: Further discuss Programming Assignment 5.
39: Dec 2 (Fri)
Discuss how to sort in Prolog; Hand back, and discuss, graded Exam 2.
Programming Assignment 5 due this weekend.
40: Dec 5 (Mon)
Dec 6 (Tue)
11am-noon in 3099: CIS705 presentations
Dec 7 (Wed)
Class canceled
Dec 8 (Thu)
10am-noon in 2168: CIS705 presentations
Dec 9 (Fri)
noon-1pm in 3099: CIS705 presentations
41: Dec 9 (Fri)
Review session, discussing
Dec 14 (Wed)
Final exam, 4:10 - 6:00pm


Torben Amtoft