CSCE 330 Fall 2013: 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 [U]). 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]). Supplementary materials from the authors, including an errata list, are available.
  • 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]).
  • 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. The first day of classes is Thursday, August 22, 2013. The last day to withdraw without failure is Friday, October 11, 2013. The last day of classes is Thursday, December 5, 2013. The final exam is Tuesday, December 10, 2013, from 9am to noon in the classrooms (SWGR 2A07 and 2A19). This is the regularly scheduled times for courses taught from 1530-1645 on Tuesdays and Thursdays. According to university policy, the exam will last two-and-a-half hours. (See the university exam schedule.)

    See here for the fall 2013 academic calendar.

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

    WeekLecture Topics
    1: August 22 (Thursday only)Introduction (Notes)
    2: August 27, 29The Prolog Language (Chapters 2-3 [L])
    3: September 3, 5Writing Prolog Programs (Chapter 4 [L])
    4: September 10, 12 Case Study: Satisfying Constraints (Chapter 5 [L])
    5: September 17, 19Case Study: Interpreting Aerial Sketch Maps; Lists in Prolog (Parts of Chapter 6 [L], Chapter 7 [L])
    6: September 24, 26 Case Study: Understanding Natural Language (Chapter 8 [L])
    7: October 1, 3Discussion or Review; Midterm
    8: October 8, 10 Haskell: Introduction, Types, and Classes (Chs.1-3 [H])
    9: October 15 Haskell: Defining Functions (Ch.4 [H])
    10: October 22, 24 FP (Video; Section 7.3 [G&J, 1987]); Haskell The Countdown Problem (Ch.11 [H], Video)
    11: October 29, 31 Haskell: List Comprehensions and Recursive Functions (Chs.5-6 [H])
    12: November 5, 7 Haskell: Higher-order Functions, Functional Parsers, and Interactive Programs (Chs.7-9 [H])
    13: November 12, 14 Syntax (Notes; Section 2.1.1 [G&J])
    14: November 19, 21 Names, Scopes, and Bindings; Overview of Operational Semantics (Sections 2.1.2--2.5 [G&J])
    15: November 26 Run-time Structure of Programming Languages (Sections 2.5--2.7 [G&J]); Thanksgiving Recess
    16: December 3, 5 Student Presentations