Programming Languages
G22.2130.01
Monday 7:00 - 9:00
Room 109, Warren Weaver Hall
Professor Edmond Schonberg
Room 412, Warren Weaver Hall
Instructor: Edmond Schonberg (schonberg@cs.nyu.edu)
Office hours: Monday 3:00 to 5:00 pm, and by appointment.
Teaching Assistant: Congchun He (congchun@cs.nyu.edu)
Office hours: Tuesday 5:00 pm to 7:00 pm.
Teaching Assistant: Deni Llambiri (llambiri@cs.nyu.edu)
Office hours: Tuesday 1:30 pm to 3:30 pm.
Objectives
We will examine basic concepts underlying the design of modern programming
languages: types, control structures, abstraction mechanisms, inheritance,
concurrency, constructs for programming in the large, etc. This is not a
programming course per se, but there will be programming assignments in
several languages, imperative and functional.
Course Outline
Prerequisites
Undergraduate courses in data structures and algorithms, familiarity and
programming experience with one of the following: C, C++, Ada, Java, or Pascal.
Course Work
Programming assignments, final examination.
Assignments
Assignment I
Assignment II
Solution (a)
Assignment III
Assignment V
Solution
Assignment VI
Assignment VII
Solution
Assignment VIII
Solution
Textbooks
required:
Ravi Sethi : Programming Languages, concepts and constructs , 2d Edition
John Barnes: Programming in Ada95
Recommended :
You must have some good text on C++ and on Java. For C++ the 3rd edition of
Stroustrup: the C++ programming Language, is the standard reference. For
Java, the language definition is given in: Gosling, Joy and Steele:
the Java Language Specification.
For both languages, there are several introductory texts by Horstmann
that are very well-written, and innumerable others.
We will discuss functional languages, specifically Scheme and ML, for which
there is abundant on-line documentation, and a good overview in the text
by Sethi.
We will discuss scripting and so-called very high level languages, and
focus on Python, There is abundant on-line documentation for it, and several
programming texts and users guides from O'Reilly.
Class list
All students should register themselves with the class list, which is used for
all technical discussions concerning the course. To
register, go to the following web page, and follow the instructions:
cs.nyu.edu/mailman/listinfo/g22_2110_001_fl00
You can also subscribe by sending an e-mail message to
majordomo@cs.nyu.edu. The
contents of the message should be the single line:
subscribe g22_2110_001_fl00
you will be notified in return that you are a list participant. Please send
all your questions to this list (not to the instructor) so that everyone can
participate.