CSCI.4430/6969 Programming Languages-- Fall 2003

Instructor:  Carlos Varela
Office:  109 Amos Eaton (x 6912)
Office Hours:  Mo, Th, 2-3pm; or by appointment
Meeting Place:  Amos Eaton, Room 214
Meeting Hours:  Mo, Th, 12-1:50pm
TAs:  Sergej Roytman, Jeff Baumes
Jeff's Office Hours:  Lally 01B - Tu, Fr, 11:30am-1:30pm, or by appointment
Sergej's Office Hours:  Lally 01B - We, 10:00am-2:00pm, or by appointment

Course WebCT page

Course Objectives

This course will study essential aspects of programming languages --e.g., their theoretical foundations, syntax, semantics, types, scope of variables, data abstraction, control abstraction, parameter passing and expression evaluation mechanisms-- developing language interpreters built in Scheme.  Beyond functional programming, we will study imperative programming (including object-oriented programming), logic programming, and concurrent programming paradigms.  The course will include programming assignments in Scheme, Java, Prolog, and SALSA.


Models of Computation.  The student should have at least one year of experience with a high-level programming language.

Course Contents

  1. Introduction
  2. Programming Language Essentials
  3. Object-Oriented Programming
  4. Logic Programming
  5. Concurrent and Distributed Programming

Tentative course syllabus

Course notes

Reading material and software links

Programming Assignment #1

Programming Assignment #2

Programming Assignment #3

Programming Assignment #4

Academic Integrity

The Rensselaer Handbook of Student Rights and Responsibilities defines several types of academic dishonesty, all of which are applicable to this class.  Students found in violation of academic dishonesty policies may receive a failing grade for this course.

Please contact the instructor if there is any question about academic (dis)honesty.

Last Updated -- November 18, 2003.