CS341 Programming Languages (Fall 2008)

Pre-requisites: CS142 or equivalent
Instructor: Christino Tamon
Lecture: Science Center 354 TR 8:00-9:15pm
Office hours: TR 9:15-11am, 2:15-3pm, Science Center 373
This course examines the major paradigms and principles underlying modern programming languages. The course focuses on imperative, functional and logic programming paradigms. The rationale of each paradigm is discussed along with typical programming idioms used with them. Programming exercises and assignments are used to illustrate relevant concepts.
Grading: Assignments and Quizzes 40%, Midterm 20%, Final 40%

Daniel P. Friedman and Mitchell Wand, "Essentials of Programming Languages," 3nd edition, The MIT Press, 2008.

Other texts (not required):

Objective & Outcome:
The main objective of the course is to describe and compare several major paradigms of programming languages, which include the imperative, functional, and logic paradigms. The specific outcomes include:
Requirements & Policies:
Although attendance is not mandatory, students are responsible for all course materials covered in lectures and any exams given during class periods. Students that need to make up missing course work must provide the required Clarkson official exempt form. All students must submit their own work; the exchange of ideas are encouraged but ultimately the submitted work must be the student's own. Please refer to the Clarkson University Regulations for more guidelines on academic integrity and related matters.

Schedule (updated regularly)

Tuesday Thursday
August 26

Course administration. Introduction: basic paradigms; beginning Scheme. First-class functions and recursion.

Reading: Chapter 1 of EOPL3.

August 28

Lab1: list operators, map/filter.

Assignment 1 is out.

September 2

Recursion on lists; Assignment 1 discussion.

Reading: MIT Scheme doc.

September 4

More list operators: accumulate.