Programming Languages

G22.2110 Spring 1998

 

Syllabus

 

 

Disclaimer: This syllabus is subject to minimal changes as the semester progresses

 

January 26

 

Lecture Notes: (http://www.cs.nyu.edu/courses/spring98/G22.2110/class1.html)

 

Assignments:

#1: Sethi 1.4, 1.7, 1.8, 1.9, 1.10 (http://www.cs.nyu.edu/courses/spring98/G22.2110/sol1.html)

Reading:

Sethi's chapter 1

Estimated Topic:

    1. Overall course organization
    2. Introduction
    3. Historical Overview of Programming Languages
    4. Comments on Sethi's Chapter 1

- Machine language v.s. High-Level language

- Programming paradigms

- Compilation v.s. interpretation

4. Language Models

- Data, Behavior, Event, Persistence

5. Programming Languages and their relationship to today's

- Distributed Computing Frameworks

 

February 2

 

Lecture Notes: (http://www.cs.nyu.edu/courses/spring98/G22.2110/class2.html)

 

Assignments:

#2: Sethi 2.9, 2.12, 2.14, 2.15, 2.21 (http://www.cs.nyu.edu/courses/spring98/G22.2110/sol2.html)

 

Reading:

Sethi's chapter 2, 13.2, handouts/refs

 

Estimated Topic:

    1. Estimated Class Syllabus
    2. Historical Overview of Programming Languages (continued)
    3. Programming Language Categories
    4. Syntax and Grammars
    5. Comments on Sethi's Chapter 2

 

February 9

 

Lecture Notes: (http://www.cs.nyu.edu/courses/spring98/G22.2110/class3.html)

 

Assignments:

#3: Sethi Exercises 3.5, 3.10, 3.13, 4.2, 4.5 (sol3)

Reading:

Sethi's chapters 3, 4, 5, 15.1, 15.2, handouts/refs

 

Estimated Topic:

Conventional Imperative Programming Languages - Part I

    1. Syntax and Grammars (continued from class 2)
    2. Statement-Level Control Structures
    3. Comments on Sethiís Chapters 3, 4, 5, 15.1, 15.2

February 16

 

No class (President's day)

 

Assignments:

#3 due

 

Reading:

Sethi's chapters 3, 4, 5, 15.1, 15.2

 

February 23

 

Lecture Notes: (http://www.cs.nyu.edu/courses/spring98/G22.2110/class4.html)

 

Assignments:

#4: Sethi Exercises 4.9, 4.10 (http://www.cs.nyu.edu/courses/spring98/G22.2110/sol4.html)

PL project - Part I (Conventional imperative programming):

Project will be posted on the class mailing list and web on 02/23 and is due on 03/02

 

Reading:

Sethi's chapters 4, 5, 15.1, 15.2, handouts/refs

 

Estimated Topic:

 

Conventional Imperative Programming Languages - Part II

    1. Current Assignments, PL Project
    2. Statement-Level Control Structures (quick review of material covered in class #2)
    3. Data Types
    4. Names, Bindings, Type Checking, and Scopes (Next Class Ė March 2)
    5. Procedures and their implementation (Next Class Ė March 2)
    6. Comments on Sethiís Chapters 4, 5, 15.1, 15.2

 

March 2

 

Lecture Notes: (http://www.cs.nyu.edu/courses/spring98/G22.2110/class5.html)

 

Assignments:

#5: Sethi Ex. 5.3, 5.7, 5.10(http://www.cs.nyu.edu/courses/spring98/G22.2110/hw5/Solutions.html)

PL project - Part I (extended due date of March 9)

 

Reading:

Sethi's chapters 5, 6, 7, 15.3, 15.4, handouts/refs

 

Estimated Topic:

Conventional Imperative Programming Languages - Part II (continued)

OO Imperative Programming Languages - Part I

    1. Midterm, Current Assignments, PL Project
    2. Names, Bindings, Type Checking, and Scopes
    3. Procedures and their Implementation
    4. Comments on Sethiís Chapters 5, 6

 

 

March 9

 

Lecture Notes: (http://www.cs.nyu.edu/courses/spring98/G22.2110/class6.html)

 

Assignments:

#6: Sethi 6.3, 6.11, 7.1, 7.10, 7.11 (http://www.cs.nyu.edu/courses/spring98/G22.2110/sol6.html)

PL project - Part I (due)

 

Reading:

Sethi's chapters 7, 15.3, 15.4, handouts/refs

 

Estimated Topic:

In-class midterm examination (http://www.cs.nyu.edu/courses/spring98/G22.2110/midsol.html)

Midterm course evaluations

OO Imperative Programming Languages - Part II

    1. Midterm, Current Assignments, PL Project
    2. Introduction to Object-Oriented Programming Languages
    3. The Smalltalk Programming Language (next session)
    4. Support for Object-Oriented Programming in C++ (next session)
    5. Support for Object-Oriented Programming in Ada 95 (next session)
    6. Comments on Sethi's Chapters 7, 15.3, 15.4

 

March 16

 

SPRING BREAK

 

March 23

 

Lecture Notes: (http://www.cs.nyu.edu/courses/spring98/G22.2110/class7.html)

 

Assignments:

No assignment due on March 30 (i.e., no homework #7)

PL project - Part II (due April 6)

 

Reading:

Sethi's chapters 7, 15.3, 15.4, handouts/refs

 

Estimated Topic:

 

OO Imperative Programming Languages - Part II (continued)

    1. Current Assignments, PL Project
    2. The Smalltalk Programming Language
    3. Support for Object-Oriented Programming in C++ (next session)
    4. Support for Object-Oriented Programming in Ada 95 (next session)
    5. Comments on Sethi's Chapters 7, 15.3, 15.4

 

 

March 30

 

Lecture Notes: (http://www.cs.nyu.edu/courses/spring98/G22.2110/class8.html)

 

Assignments:

#8: Sethi Exercise 7.13 (http://www.cs.nyu.edu/courses/spring98/G22.2110/sol8.html)

 

Reading:

Sethi's chapters 7, 15.3, 15.4, handouts/refs

 

Estimated Topic:

 

OO Imperative Programming Languages - Part II (continued)

    1. Current Assignments, PL Project
    2. The Smalltalk Programming Language (continued)
    3. Support for Object-Oriented Programming in C++
    4. Support for Object-Oriented Programming in Ada 95
    5. Comments on Sethi's Chapters 7, 15.3, 15.4

 

April 6

 

Lecture Notes: (http://www.cs.nyu.edu/courses/spring98/G22.2110/class9.html)

 

Assignments:

#9: Sethi Exercises (http://www.cs.nyu.edu/courses/spring98/G22.2110/sol9.html)

PL project - Part II (due)

PL project - Part III (functional programming) (due April 20)

 

Reading:

Sethi's chapters 8, 9, 10, 15.5, 15.6, handouts/refs

 

Estimated Topic:

 

Functional Programming

 

April 13

 

Lecture Notes: (http://www.cs.nyu.edu/courses/spring98/G22.2110/class10.html)

 

Assignments:

#10: Sethi Exercises (http://www.cs.nyu.edu/courses/spring98/G22.2110/sol10.html)

PL project - Part III (due April 20)

 

Reading:

Sethi's chapters 11, 12, 15.7, handouts/refs

 

Estimated Topic:

Other Programming Paradigms

 

April 20

 

Lecture Notes: (http://www.cs.nyu.edu/courses/spring98/G22.2110/class11.html)

 

Assignments:

#11: Sethi Exercises (http://www.cs.nyu.edu/courses/spring98/G22.2110/sol11.html)

PL project - Part III (due)

PL project - Part IV (logic programming) (due May 4)

 

Reading:

Sethi's chapters 13, 14, handouts/refs

 

Estimated Topic:

Language Description - Part I

 

April 27

 

Lecture Notes: (http://www.cs.nyu.edu/courses/spring98/G22.2110/class12.html)

 

Assignments:

#12: Sethi Exercises (http://www.cs.nyu.edu/courses/spring98/G22.2110/sol12.html)

PL project - Part IV (due May 4)

 

Reading:

Sethi's chapters 13, 14, handouts/refs

 

Estimated Topic:

Language Description - Part II

 

May 4

 

Lecture Notes: (http://www.cs.nyu.edu/courses/spring98/G22.2110/class13.html)

 

Assignments:

Final Exam : Take home examination, due 5/11

(http://www.cs.nyu.edu/courses/spring98/G22.2110/finalsol.html)

PL project - Part IV (due)

 

Reading:

All material covered in class

 

Estimated Topic:

Review (last class will be held on Monday, May 4)