Programming Languages Course at NYU's Courant Institute of Mathematical Sciences, Lecture notes of Programming Languages

A course syllabus for the Programming Languages course offered by the Computer Science Department at NYU's Courant Institute of Mathematical Sciences in Spring 2011. The course covers the design and implementation of modern general-purpose programming languages, including abstraction mechanisms, concurrency, constructs for programming in the large, control structures, exception handling, functions, garbage collection, inheritance, modules, naming, object orientation, scopes, state, syntax, and type systems. The course looks at a variety of imperative, object-oriented, functional, and logic programming languages, and assignments and projects focus on a variety of programming languages to facilitate exposure to language design and related implementation issues.

Typology: Lecture notes

2010/2011

Uploaded on 05/11/2023

ammla
ammla 🇺🇸

4.5

(37)

274 documents

1 / 3

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
NEW YORK UNIVERSITY
COMPUTER SCIENCE DEPARTMENT
COURANT INSTITUTE OF MATHEMATICAL SCIENCES
Programming Languages
Spring 2011 Jean-Claude FRANCHITTI
G22.2110-001 Thu. 7:10 - 9:00 p.m.
===============================================================
COURSE DESCRIPTION
This course covers the design and implementation of modern general-purpose programming
languages. Topics include abstraction mechanisms, concurrency, constructs for programming in
the large, control structures, exception handling, functions, garbage collection, inheritance,
modules, naming, object orientation, scopes, state, syntax, type systems, etc. The course looks at
a variety of imperative, object-oriented, functional, and logic programming languages (e.g., C,
Ada, C++, Java, Lisp, ML, Scheme, Haskell, Prolog, Python, etc.) Assignments and projects
focus on a variety of programming languages to facilitate exposure to language design and
related implementation issues. This course builds on the experiences of numerous NYU
instructors who taught the course in previous semesters.
COURSE OBJECTIVES
The objectives of the course are as follows:
Facilitate the more effective use of a known programming language
Ensure familiarity with language paradigms and features
Make it easier to learn new programming languages
Illustrate concepts that are useful in other fields of computer science, beyond
programming languages
pf3

Partial preview of the text

Download Programming Languages Course at NYU's Courant Institute of Mathematical Sciences and more Lecture notes Programming Languages in PDF only on Docsity!

NEW YORK UNIVERSITY

COMPUTER SCIENCE DEPARTMENT

COURANT INSTITUTE OF MATHEMATICAL SCIENCES

Programming Languages

Spring 2011 Jean-Claude FRANCHITTI

G22.2110-001 Thu. 7:10 - 9:00 p.m.

COURSE DESCRIPTION

This course covers the design and implementation of modern general-purpose programming languages. Topics include abstraction mechanisms, concurrency, constructs for programming in the large, control structures, exception handling, functions, garbage collection, inheritance, modules, naming, object orientation, scopes, state, syntax, type systems, etc. The course looks at a variety of imperative, object-oriented, functional, and logic programming languages (e.g., C, Ada, C++, Java, Lisp, ML, Scheme, Haskell, Prolog, Python, etc.) Assignments and projects focus on a variety of programming languages to facilitate exposure to language design and related implementation issues. This course builds on the experiences of numerous NYU instructors who taught the course in previous semesters.

COURSE OBJECTIVES

The objectives of the course are as follows:

  • Facilitate the more effective use of a known programming language
  • Ensure familiarity with language paradigms and features
  • Make it easier to learn new programming languages
  • Illustrate concepts that are useful in other fields of computer science, beyond programming languages

COURSE SYLLABUS

The following syllabus is subject to change:

Week Topic Readings from textbook sections

1 Programming Languages overview and syntax

Imperative languages: names, scoping, and bindings 3.1-3.4 except 3.3.4 and 3.3.

Control structures: loops, conditionals, and case statements

Subprograms: functions and procedures, parameter passing, nested procedures, first-class and higher-order functions

Functional Programming (lambda calculus overview and Scheme) 10, including 10.6.1 on the CD

Data types and representation (part 1): strong vs. weak typing, static vs. dynamic typing, type declarations, type equivalence, type inference

Data types and representation (part 2): subtypes and derived types, scalar and composite types (arrays, records, variant records), pointers and references

Midterm

8 ML: overview, pattern matching, type inference, data types, pattern matching

TBA

Program Structure: modules, packages, interfaces, abstract types and information hiding

Object-Oriented Programming (part 1): objects, classes, data and function members, constructors/destructors

Object-Oriented Programming (part 2): OOP in C++ and Java, objects vs. closures, classes vs. data types, OO pitfalls.

Generic Programming and templates in C++, Java, and ML, containers and iteration.

13 Exception handling, continuations, 8.5, 12