CSCE 330: Programming Language Structures

MWF 1010-1100 SWGN 2A21

Prerequisites: CSCE 240 and MATH 374

Instructor: Marco Valtorta
Office: Swaeringen 3A55, 777-4641
Office Hours: MWF 1100-1200

Any student with a documented disability should contact the Office of Student Disability Services at (803)777-6142 to make arrangements for proper accommodations.


Grading Policy

Reference materials:

  • Michael L. Scott. Programming Language Pragmatics, third edition, Morgan-Kaufmann, 2009 (required text, referred to as [S]). Supplementary materials from the author, including an errata list, 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.
  • The current departmental syllabus, an old departmental syllabus (for historical information) and an even older departmental syllabus (for historical information) list the following goals for the course: Specific objectives of this course are:

    Lecture Log

    Lecture Notes

    Homework, Tests, and Programs

  • Grading policy per assignment
  • Homework 1 on preliminaries and history (in pdf format), assigned 2010-08-20, due 2010-08-27 Note: hw1 was modified on 2010-08-23, to take into account a curricular change at MIT.
  • Program 1 on Haskell: (1) Install either hugs or GHC on your computer; (2) do all exercises at the end of Chs. 1 and 2 [H], assigned 2010-08-30, due 2010-09-08
  • Program 2 on Haskell: do all exercises at the end of Ch. 3 [H], assigned 2010-09-08, due 2010-09-13
  • Program 3 on Haskell: do all exercises at the end of Ch. 4 [H], assigned 2010-09-13, due 2010-09-20.
  • Program 4 on Haskell: do exercises 3, 4, and 7 at the end of Ch. 5 [H], assigned 2010-09-13, due 2010-09-22.
  • Program 5 on Haskell: do exercises 1-5 at the end of Ch. 6 [H], assigned 2010-09-20, due 2010-10-01.
  • Program 6 on Haskell: do exercises 1-5 and 8at the end of Ch. 7 [H], assigned 2010-10-01, due 2010-10-11.
  • Program 6b on Haskell: do exercises 8 and 9 at the end of Ch. 7 [H], assigned 2010-10-20, due 2010-10-25. Note: This replaces Program 6; please turn in examples of use as comments to the program, and either screen dumps or a scripts that show me that you ran the program.
  • Program 7 on FP: Assigned on 2010-10-22, due 2010-10-27.
  • Program 8 on Prolog: Assigned on 2010-11-10, due 2010-11-17.
  • Homework 2 on syntax: do exercises 2.9, 2.12 (parts a and b; also show that there are two distinct parse trees for part (b)), 2.13 (parts a and b only) from [S], assigned on 2010-11-19, due 2010-11-29. (Note: [S] is the main textbook, By Michael Scott.)

    Haskell Information

    Prolog Information

    Student Presentation

    Quizzes (In-Class Exercises)
    Quiz 1 of 10-08-27 (in pdf format, with answer)

    Some useful links:
    In this class, we write dates according to ISO Standard 8601.
    Brian Hayes. "The Semicolon Wars." _American Scientist_, July-August 2006, pp.299-303. Local copy, pdf.
    The Ariane 5 launch disaster.
    Local copy of paper for HW2: Rajlich, V., N. Wilde, M. Buckellew. and H. Page. ``Software Cultures and Evolution.'' _Computer_, 34, 9 (September 2001), pp.24--28.
    C.A.R. Hoare. "Retrospective: An Axiomatic Basis for Computer Programming." _Communications of the ACM_, 52, 10 (October 2009), pp.30-32.
    C.A.R. Hoare. "An Axiomatic Basis for Computer Programming. _Communications of the ACM_, 12, 10 (October 1969), 576-580.
    John McCarthy. "A Micromanual for LISP---Not The Whole Truth." ACM SIGPLAN Notices, Vol. 13, Issue 8 (August 1978), Pages 215-216 (local copy)
    Carter Bays's FP interpreter
    Boyko Bantchev's List of Interviews with Programming Language Creators from Computerworld's series "The A-Z of Programming Languages (pdf)