CSCE 330: Programming Language Structures

Prerequisites: CSCE 245 (Transitioning from CSCI 220 and CSCI 240)

Instructor: Marco Valtorta
Office: Sumwalt 329, 777-4641
E-mail: mgv@cs.sc.edu
Office Hours: Monday and Wednesday, 1415-1545 or by previous appointment.
Grader: Xizhou Feng,
Sumwalt 233, 777-2400, fengx@cs.sc.edu,
Office Hours: Monday, 10:00-11:30, Thursday 11:00-12:30

Syllabus

Grading Policy

Reference materials:

  • Sebesta, Robert W. Concepts of Programming Languages (4th ed.). Addison-Wesley, 1999 (required text, referred to as [S]).
  • Ullman, Jeffrey D. Elements of ML Programming: ML97 Edition. Prentice-Hall, 1998 (required text, referred to as [U]). Supplementary materials from the author, including an errata list, are available.
  • The departmental syllabus lists the following goals for CSCI 330 course: Specific objectives of this course are:

    Questionnaires
    Beginning of course questionnaire
    Four-minute questionnaire of 00/9/11, with some comments

    Notes
    Notes on Denotational Semantics (in postscript format)
    More Notes on Denotational Semantics (in postscript format)

    Homework, Tests, and Programs
    Homework on Denotational Semantics: twelve short problems (in postscript format)
    Answers to the twelve short problems on denotational semantics (in postscript format)
    Homework on Denotational Semantics: the semantics of a program with a loop (in postscript format)
    Answers to homework on Denotational Semantics: the semantics of a program with a loop (in postscript format)
    Midterm 1 with answers to most questions (in postscript format)
    Midterm 2 (in postscript format)
    Homework on lex and some basic Unix commands (in postscript format)
    Programming assignment 1: Two FP functions (in postscript format)
    Final with answers (in postscript format)

    Quizzes
    Quiz 1 of 00/8/31 (in postscript format, with answer)
    Quiz 2 of 00/9/01 (in postscript format, with answer)
    Quiz 3 of 00/9/06 (in postscript format, with answer)
    Quiz 4 of 00/9/08 (in postscript format, with answer)
    Quiz 5 of 00/9/11 (in postscript format, with answer)
    Quiz 6 of 00/9/13 (in postscript format, with answer)
    Quiz 7 of 00/9/15 (in postscript format, with answer)
    Quiz 8 of 00/9/18 (in postscript format, with answer)
    Quiz 9 of 00/9/20 (in postscript format, with answer)
    Quiz 10 of 00/9/22 (in postscript format, with answer)
    Quiz 11 of 00/9/25 (in postscript format, with answer)
    There were no quizzes on 00/9/27, 00/9/29, and 00/10/2. The midterm exam took place on 00/9/29.
    Quiz 12 of 00/10/4 (in postscript format, with answer)
    Quiz 13 of 00/10/6 (in postscript format, with answer)
    Quiz 14 of 00/10/9 (in postscript format, with answer)
    Quiz 15 of 00/10/11 (in postscript format, with answer)
    Quiz 16 of 00/10/13 (in postscript format, with answer)
    Quiz 17 of 00/10/18 (in postscript format, with answer)
    Quiz 18 of 00/10/20 (in postscript format, with answer)
    Quiz 19 of 00/10/23 (in postscript format, with answer)
    Quiz 20 of 00/10/27 (in postscript format, with answer)
    Quiz 21 of 00/10/30 (in postscript format, with answer)
    Quiz 22 of 00/11/1 (in postscript format, with answer)
    Quiz 23 of 00/11/3 (in postscript format, with answer)
    Quiz 24 of 00/11/6 (in postscript format, with answer)
    Quiz 25 of 00/11/8 (in postscript format, with answer)
    Quiz 26 of 00/11/10 (in postscript format, with answer)
    Quiz 27 of 00/11/13 (in postscript format, with answer)
    Quiz 28 of 00/11/15 was handwritten (because of a server failure). The topics were exceptions, statement lists, and simple printing.
    Quiz 29 of 00/11/17 (in postscript format, with answer)
    There was no quiz on Monday, 00/11/20. There was a test (second midterm) instead. Wednesday and Friday classes were cancelled because of Thanksgiving break.
    Quiz 30 of 00/11/27 (in postscript format, with answer)
    Quiz 31 of 00/11/30 was handwritten. The students were asked for the (type of the) range of zip in zip (i,_) = i and for the (type of the) range of zip in zip(i::is, j::js) = (i,j) :: zip(is,js).
    Quiz 32 of 00/12/1 (in postscript format, with answer)
    Quiz 33 of 00/12/6 (in postscript format, with answer)
    Quiz 34 of 00/12/8 (in postscript format, with answer)

    Maximum Possible Scores on Assignments and Tests

    Lecture Log

    ML Information

    Prolog Information

    Some useful links:
    How to view postscript in Windows: Wim Sweldens's web page on GSview.
    Norman Matloff's Introduction to the vi Text editor
    Norman Matloff's Unix Tutorial Center