CS341 Programming Languages (Fall 2009)Pre-requisites: CS142 or
Instructor: Christino Tamon
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%
Michael L. Scott, "Programming Language Pragmatics," 3rd
edition, Morgan Kaufmann, 2009.
Other texts (not required):
- Brian Kernighan and Dennis Ritchie, "The C Programming Language," 2nd
edition, Prentice-Hall [on ERC reserve].
- Max Hailperin, Barbara Kaiser, and Karl Knight, "Concrete
Abstraction" [available online].
- Michael Covington, Donald Nute and Andre Velino, "Prolog Programming in
Depth," Prentice-Hall, 1997 [on ERC reserve].
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
- Knowledge of implementation issues behind programming languages.
- Working knowledge of some programming languages which represent the
different paradigms covered above (for example, C, Scheme, and Prolog).
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)
Introduction: basic paradigms (PROC, OOP,
Plan: functional paradigm; logic paradigm; (re)visit
procedural paradigm and study implementation issues.