CSCE 330 Fall 2016: Syllabus

The textbooks are:

  • Hector J. Levesque. Thinking as Computation. The MIT Press, 2012 (required text, referred to as [L]). Supplementary materials from the author are available.
  • Graham Hutton. Programming in Haskell. Cambridge University Press, 2007 (required text, referred to as [H]). Supplementary materials from the author, including an errata list, are available.
  • We may also use:
  • Chapter 2 of: Ghezzi, Carlo and Mehdi Jazayeri. Programming Language Concepts, 3rd ed.. Wiley, 1998 (referred to as [G] or [G&J]).
  • Section 7.3, Chapter 8, and Chapter 9 of: Ghezzi, Carlo and Mehdi Jazayeri. Programming Language Concepts, 2nd ed.. Wiley, 1987 (referred to [G&J, 1987]).
  • Chapter 2 of: Allen Tucker and Robert Noonan. Programming Languages: Principles and Paradigms, 2nd ed.. McGraw-Hill, 2007 (referred to as [T].
  • The main (approximately 80% of the time) instructional delivery strategy for this course is lectures. Discussions based on student presentations, videos, quizzes or in-class exercises, and a possible invited talk will make up the remaining 20% of time. Student presentations will be spread throughout the second half on the course. The first day of classes is Thursday, August 18, 2016. The last day to withdraw without failure is Monday, October 10, 2016. The last day of classes is Thursday, December 1, 2016. The final exam is Thursday, December 8, 2016, from 1230-1500 in the classrooms (SWGR 2A31). This is the regularly scheduled time for courses taught from 1315-1430 on Tuesdays and Thursdays. According to university policy, the exam will last two-and-a-half hours. (See the university exam schedule.)

    See here (html version) or here (pdf version) for the fall 2016 academic calendar.

    Please see elsewhere in the web pages for the course for additional administrative information.

    WeekLecture Topics
    1: August 18 (Thursday only)Introduction (Notes)
    2: August 23, 25The Prolog Language (Chapters 2-3 [L])
    3: August 30, September 1Writing Prolog Programs (Chapter 4 [L])
    4: September 6, 8 Case Study: Satisfying Constraints (Chapter 5 [L])
    5: September 13, 15Case Study: Interpreting Aerial Sketch Maps; Lists in Prolog (Parts of Chapter 6 [L], Chapter 7 [L])
    6: September 20, 22 Case Study: Understanding Natural Language (Chapter 8 [L])
    7: September 27, 29Syntax; Review
    8: October 4, 6 Midterm; FP (Video; Section 7.3 [G&J, 1987])
    9: October 11 (Tuesday only) Haskell: Introduction, Types, and Classes (Chs.1-3 [H])
    10: October 18, 20 Haskell: Introduction, Types, and Classes (Chs.1-3 [H]); Defining Functions (Ch.4 [H])
    11: October 25, 27 Haskell: List Comprehensions and Recursive Functions (Chs.5-6 [H])
    12: November 1, 3 Haskell: Higher-order Functions (Ch.7 [H])
    13: November 12 (Thursday only) Haskell: Functional Parsers and Interactive Programs (Chs.8-9 [H])
    14: November 15, 17 Haskell: Declaring Types and Classes and the Countdown Problem (Chs10-11 [H])
    15: November 22 (Tuesday only) Syntax and Semantics (Notes based on ch.9 [G&J, 1987]; Chapter 2 [G&J])
    16: November 29 and December 1 Student Presentations