CS 321 Programming Languages

Fall 2017

Lectures

Important Dates (tentative):

  • Midterm Exam 1: 26.10.2017
  • Midterm Exam 2: 30.11.2017
  • Final Exam: TBA
  • Withdrawal week: 13-17.11.2017

25.09.2017 Monday

28.09.2017 Thursday

02.10.2017 Monday

  • OCaml, part 02 cont’d.
  • OCaml, part 03 - Lists (up to slide #19) [2up] [4up]

05.10.2017 Thursday

  • NO LECTURE. The instructor is attending a conference.

09.10.2017 Monday

  • OCaml, part 03 cont’d.
  • Watch videos:
    • [Reversing a list]
    • [Map]
    • [Maya the bee]
    • [fold left & fold right] (Note: This video uses F# as the programming language. The differences from OCaml is that the “let” expressions do not have the “in” keyword, fold_left is called fold, and fold_right is called foldBack. Otherwise, the ideas are the same.)

12.10.2017 Thursday

16.10.2017 Monday

19.10.2017 Thursday

  • User-defined data types (cont’d)
    • Polymorphic tree implementation in Java [Code]
  • An interpreter for the ArithLang language (constant ints, names, arithmetic operations).
    • OCaml code
    • Read Chapter 1 and Chapter 2 (up to Section 2.3.2) in PLC.

23.10.2017 Monday

  • Extended the ArithLang with Let-in.

26.10.2017 Thursday

30.10.2017 Monday

02.11.2017 Thursday

06.11.2017 Monday

09.11.2017 Thursday

13.11.2017 Monday

  • Extending the Deve language with new features. See the sample questions on interpretation.
  • At this point, we have a version of the language that handles booleans gracefully, has relational operators, handles pairs, etc. We will call this Deve 2.0.

16.11.2017 Thursday

20.11.2017 Monday

23.11.2017 Thursday

  • At this point, we have reached Deve 4.0.

27.11.2017 Monday

30.11.2017 Thursday

  • MIDTERM EXAM 2

04.12.2017 Monday

07.12.2017 Thursday

11.12.2017 Monday

14.12.2017 Thursday

18.12.2017 Monday

21.12.2017 Thursday

25.12.2017 Monday

28.12.2017 Thursday


The notes below are from the previous offering of this course and may not have been updated for this semester yet.

21.11.2016 Monday

  • Type inference and polymorphism [Slides]
  • Read PLC Chapter 6 (only sections 6.2, 6.5, 6.6)

23.11.2016 Wednesday

28.11.2016 Monday

30.11.2016 Wednesday

05.12.2016 Monday

  • Lambda calculus (cont’d with recursion) [Code]
  • Read: PLC Section 5.6

07.12.2016 Wednesday

  • Imperative programming [Slides] [Lecture code]
  • Read: The C Programming Language by K&R, Chapter 5, Sections 5.1-5.4. (Available on LMS)

12.12.2016 Monday

Cancelled

14.12.2016 Wednesday

19.12.2015 Monday

  • Garbage collection [Slides]
  • Read: PLC Chapter 10, Sections 10.1-10.5

21.12.2015 Wednesday

10.01.2017