CSCE 330: Programming Language Structures

Prerequisites: CSCE 240 and MATH 374

Section 001: TTh 1100-1215 SWGN 2A21

Section 002: TTh 1730-1845 SWGN 2A21

Instructor (Section 001): Marco Valtorta
Office: Swearingen 3A55, 777-4641
Office Hours: MWF 1100-1200

Instructor (Section 002): Jingsong Wang
Office: Swearingen 3D11, 777-3768
For office hours, see Dr. Valtorta (details above)

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:

  • 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.
  • 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 2011-08-18, due 2011-08-30
  • Homework 2 on syntax, assigned 2011-08-30, due 2011-09-08 Find the exercises here . Some of the grammars are in these slides. Exercises 2.1, 2.2, 2.3 (the grammar in figure 2.7, which is in the slides is EBNF, not BNF), 2.4 (same comment as for 2.3), 2.5(a), 2.6(a), 2.7(a), 2.8(a), 2.9(a), 2.10(a), 2.11, 2.12.
  • Program 1 on Simplesem (operational semantics, in pdf format), assigned 2011-09-15, due 2011-09-29 (Thursday) (note date change!); see this document for information on how to run Simplesem
  • Program 2 on FP, assigned 2011-10-25, due 2011-11-01
  • HW3 on Haskell: do all the exercises at the end of Ch.1 [H], due November 10, 2011.
  • HW4: do all exercises from Ch.3 [H], due Tuesday, 2011-11-15.
  • PR3 assigned: do all exercises from Ch.4 [H], due Thursday, 2011-11-17. (Note date change from 11-15.)
  • PR4 assigned: do exercises 3, 4, and 7 from Ch.5 [H], due Tuesday, 2011-11-22. For each exercise provide the answer (a function) and an example of use.
  • PR5 assigned: do exercises 2, 4, and 5 from Ch.6 [H], due Tuesday, 2011-11-29. Exercise 2 is a paper-and-pencil exercise. For the other exercises provide the answer (a function) and an example of use.
  • Review questions for the final exam.

    Haskell Information

    Prolog Information

    Student Presentation

    Quizzes (In-Class Exercises)
    Quiz 1 of 11-08-25 (in pdf format, with answer)
    Quiz 2 of 11-09-01 (in pdf format, with answer)
    Quiz 3 of 11-09-08 (in pdf format, with partial answer)
    Quiz 4 of 11-09-15 (in pdf format, with answer)
    Quiz 5 of 11-09-20 (in pdf format, with answer)
    Quiz 6 of 11-10-04 (in pdf format, with answer)
    Quiz 7 of 11-10-25 (in pdf format, with answer)
    Quiz 8 of 11-11-01 (in pdf format, with answer)
    Quiz 9 of 11-11-08 (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.
    Computer Language History web site, by , Eric Levenez
    The Ariane 5 launch disaster.
    Local copy of: 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)
    The Simplesem interpreter
    : unzip, and follow the instructions in readme.txt. This is a Java implementation that seems robust and will run in Windows.
    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)
    A to Z of Programming Languages Index
    J.W. Backus. "The 701 Speedcoding System." Journal of the ACM, 1, 1, pp.4-6, 1954 (local copy).
    A site with a short program written in many languages, not including FP.
    A site with onother short program written in several languages..
    John McCarthy, developer of LISP, wins the Franklin Medal
    John McCarthy's Obituary from the _New York Times_, 2011-10-25 (local copy).
    Dennis Ritchie's Obituary from the _New York Times_, 2011-10-13 (local copy).