Programming Languages

Summer 2003


Location: Warren Weaver Hall room 102

Lectures: Wednesdays from 6:00 to 8:20

Recitation: Mondays from 7:10 to 8:10 (optional)

Instructor: Michael Lewis

Office: Warren Weaver Hall room 401

Hours: Tuesdays and Wednesdays from 4:30 to 5:30,

And by appointment


Course Prerequisites prior coursework in data structures and algorithms, along with proficiency with a representative high-level programming language such as C++, Java, or Ada.


Course Objectives We will examine the fundamental concepts underlying the design of modern programming languages: data types and structures, control structures, mechanisms for abstraction, constructs for programming in the large, object orientation, concurrency, etc. The course emphasizes both theory and practice, with representative languages chosen from each of the major programming paradigms. Languages considered will include Ada, C, C++, Java, LISP, ML, Scheme, Prolog, and others of historical and topical interest. While not a programming course per se, there is an expectation that students will develop working proficiency in a subset of these languages, with programming problems assigned throughout the term.


Grading Policy The course grades will be based upon homework problems (50%) and exams (50%). There is a tremendous amount of supplementary material available on the web, and we will make extensive use of these resources, but it is a requirement that students submit original work. Any written text or code that is not original, such as a quotation or a library function, must be properly cited when in doubt, check it out with the instructor or teaching assistant. Any submission found to have violated the policy will receive a grade of F and the student will be subject to departmental disciplinary procedures that could include suspension or possibly expulsion from the program.


Mailing List  subscribe by visiting


Course Materials The primary and supplementary texts for the course are listed below, and will be available in the NYU bookstore. We will make extensive use of on-line materials ranging from background readings to compilers and related tutorials these will be described either here on the web site or via the course mailing list.


Required: "Programming Language Pragmatics" by Michael L. Scott

Morgan Kaufmann
ISBN 1-55860-442-1 (hardback)
ISBN 1-55860-578-9 (softback)


Recommended: "ML for the Working Programmer", second edition, by Paulson
Cambridge University Press Paperback: ISBN 052156543X 


Recommended: "The C++ Programming Language", 3rd edition, by Stroustrup
Addison-Wesley ISBN 0-201-88954-4
Recommended: "Programming in ADA 95", 2nd edition, by Barnes 
Addison-Wesley Longman ISBN: 0201342936