Programming Languages

G22.2110.01
Summer 2009

Time and Location


Lecturer Info

Edward Osinski
osinski `at' cs `.' nyu `.' edu
Room 328, WWH
Office Hours: Thursday 8:30 - 9:30PM and by appointment

Teaching Assistant Info

Samantha Kleinberg
samantha `at' cs `.' nyu `.' edu
Room 1013, 715 Broadway
Office Hours: Monday 6:00 - 7:00PM

Objectives

We will examine basic concepts underlying the design of modern general-purpose programming languages: types, control structures, abstraction mechanisms, inheritance, concurrency, garbage collection, constructs for programming in the large, etc. Implementation issues and data structures will be discussed. There will be programming assignments in several languages, functional and imperative. The languages are chosen because of the interest of their features, not necessarily because of their wide use. We will touch on Ada, C++, Java, Scheme, ML, and Haskell, and mention others.

Prerequisites

Undergraduate courses in data structures and algorithms or equivalent, as well as familiarity and programming experience in C, C++, Ada, Java, Pascal or a similar language.

Texts

Mailing list

Please sign up for the class mailing list as soon as possible. (It should be available a few days before class starts.) We will use this for various announcements and students can use it to discuss various homework problems, ask for clarification, etc.

Course Outline

Grading

There will be two tests: a midterm and a final. In addition, there will be a number of programming assignments, and some non-programming homework. The weights will be something like this:

Programming Assignments

There will be a number of programming assignments in various languages. In all cases, I will specify the compiler/interpreter to use, which will be available on the CIMS Solaris machines. You can work on the assignment on whatever machines you feel comfortable, but what you hand in must compile and run correctly on the Solaris compilers. Please make sure you have no problems logging in to your account as soon as possible.

Cheating Policy

Don't do it! The work you hand in should be your own. You can read the department's policy here. Violations are taken very seriously; here is a quote from the link above:

"Disciplinary actions can vary in severity and can result in probation or termination from the graduate program."

If you find yourself falling behind, please see me before it's too late.