Programming Languages

CSCI-GA.2110-001
Summer 2017

Course Outline

This outline is subject to change, but should give you some idea of what will be covered and when.

  1. May 23, 2017 
    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.

     
  2. May 30, 2017
    I
    mperative languages. names, binding, scope, lifetime, nesting, control structures.
    Readings: Scott, ch 3

     
  3. June 6, 2017
    Subprograms: functions and procedures. Parameter passing. Nested procedures. First-class and higher-order functions. Implementation issues.
    Readings: Scott, ch 6, 8.1 - 8.3

     
  4. June 13, 2017
    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)
      
  5. June 20, 2017
    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

     
  6. June 27, 2017 - Midterm exam (in class)
     
  7. July 4, 2017 - Independence Day - No Class

  8. July 11, 2017
    Garbage collection, allocation/deallocation, reference counting, concurrent programming.
    Readings: Scott, ch. 7

     
  9. July 18, 2017
    Overview of ML. Pattern matching, type inference, data types, pattern matching, continuations.
    Readings: Ullman, ch 1-4, 5 (optional)

     
  10. July 25, 2017
    Overview of Prolog. Logical programming, goals, subgoals, backtracking, unification.
    Readings: Scott, ch. 11 (including 11.3 on CD)

     
  11. August 1, 2017
    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).

     
  12. August 8, 2017 - Final exam (in class).