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 http://www.cs.nyu.edu/mailman/listinfo/g22_2110_001_su03
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
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