Programming Languages
CSCI-GA.2110-001
Summer 2016
Course Outline
This outline is subject to change, but should give you some idea of what will be covered and when.
-
May 24, 2016
Course overview. History, standards, syntax, semantics, grammars, parsing.
Readings: Scott, ch 1 - 2
See resources folder for language standards documents: C99, C++ 2003, C++0x, and JLS7.
-
May 31, 2016
Imperative languages. names, binding, scope, lifetime, nesting, control structures.
Readings: Scott, ch 3
-
June 7, 2016
Subprograms: functions and procedures. Parameter passing. Nested procedures. First-class and higher-order functions. Implementation issues.
Readings: Scott, ch 6, 8.1 - 8.3
-
June 14, 2016
Functional programming. Overview of the lambda calculus and Scheme.
Readings: Scott, ch. 10 (including 10.6.1 on the CD),
Dybvig ch. 1,2 (optional)
-
June 21, 2016
Data types and representation. Typing: strong vs. weak, static vs. dynamic. Type declarations, type equivalence, type inference. Subtypes and derived types. Scalar and composite types (arrays, records, variant records). Pointers and references.
Readings: Scott, ch. 7
-
June 28, 2016 - Midterm exam (in class)
-
July 5, 2016 - Legislative Day - No Class (Monday schedule in effect)
-
July 12, 2016
Garbage collection, allocation/deallocation, reference counting, concurrent programming.
Readings: Scott, ch. 7
-
July 19, 2016
Overview of ML. Pattern matching, type inference, data types, pattern matching, continuations.
Readings: Ullman, ch 1-4, 5 (optional)
-
July 26, 2016
Overview of Prolog. Logical programming, goals, subgoals, backtracking, unification.
Readings: Scott, ch. 11 (including 11.3 on CD)
-
August 2, 2016
Program structure: Modules, packages, and interfaces. Abstract types and information hiding. Exception handling.
Readings: Scott ch 3.3.4-3.3.5, 3.7 (review), 8.5.
-
August 9, 2016
Concurrent programming: threads, tasks, synchronization, communication. Generic programming and templates in C++, Java, and ML. Containers and iteration.
Readings: Scott ch. 8.4-5,12, Stroustrup ch. 8.3, 13, 18 (optional), Barnes ch. 18. (optional), Arnold ch. 12, 14 (optional).
-
August 16, 2016 - Final exam (in class).