CS 341 Programming Languages
Fall 2002

Current Official Course Description. This course examines the major paradigms underlying modern programming languages. The course currently focuses on object-oriented and logic programming. The rationale of the paradigms is discussed along with typical programming idioms used with them. Programming exercises are used to illustrate concepts--the course does not aim to make students proficient programmers in all the language that will be studied.

New Proposed Course Description. Coming soon.

Prerequisites. CS142 or consent of instructor.

Location and Times. Science Center 160, TuTh 11:00-12:30.

Instructor. Alexis Maciel. Science Center 379, 268-2385, alexis@clarkson.edu.

Office Hours. M 3:00-4:30, Tu 3:00-4:00, W 10:00-11:30, Th 10:00-11:00.

Teaching Assistant. Vineet Raghavan. Science Center 450, 268-2339, raghavvs@clarkson.edu. Office Hours: Tu 9:00-10:00, Th 2:00-3:00, F 2:00-3:00.

Required Texts.

Course Objectives.

  1. To learn the basic ideas and techniques of logic programming.

  2. To become familiar with the central issues and techniques underlying the design and implementation of programming languages.
Demonstrable outcomes. By the end of the semester,

  1. You will be able to write small Prolog programs.

  2. You will have a good understanding of how the Prolog interpreter works.

  3. You will understand the key issues arising in the design of programming languages.

  4. You will be familiar with the main techniques for implementing programming languages.

Topics to be covered. Logic programming: basic Prolog syntax, unification and variable instantiation, backtracking, input/output, file handling, arithmetic, lists, conditional execution, cuts, repetition through backtracking, tail recursion, trees, and sorting. Programming language design and implementation: coming soon.

Grading. You will be evaluated based on homework assignments, two tests and a final exam. Your course grade will be computed using the following formula:

20% A + 20% T1 + 20% T2 + 40% F

In addition, if you do better on the final exam than on one of your tests, your lowest test grade will be replaced by your final exam grade. Essentially, this allows you to make up for one bad test. Tentative dates for the tests are October 3 and November 7. All students are required to write the final exam (no exemptions).

Policy for missed work. There will be no make-up assignments. Late assignments may be accepted if a good excuse is provided and if arrangements are made at a reasonable time, in advance, if possible. Make-up tests can be arranged under the same conditions. Other special arrangements can be made for students forced to miss more than a few days of class.