CS 361 Programming Languages and Implementation

  • Instructor: Prof. Sung-Hyuk Cha
    • Email: scha@pace.edu
    • Tel: (212) 346-1253
    • Office: 163 Williams, Rm. 234 at NYC
    • Office Hours: M W 11:am ~ 1:00 pm and Th 3:30 ~ 4:30 pm.


  • CRN: 72162

  • Meeting:
    • Time: TR 01:25 - 03:15 P.M., Fall 2012
    • Place: rm 237 at 163 Williams st.

  • Textbook: Programming Language Pragmatics, 3rd Edition, Michael L. Scott, Morgan Kaufmann, 2009

  • Course Goals:
    Upon completion of this course, students must
    • Understand the formal models of programming language syntax and semantics.
    • Understand the principles and components of programming language design.
    • Understand the various paradigms of programming languages.

  • Course Description:
    This course provides a history of programming languages including imperative/ procedural, object-oriented, functional, logical and concurrent varieties. Emphasis will be on principles of language design, semantics and implementation strategies. It introduces formal syntax of programming languages, scanning, parsing and overviews the other phases of the compilation process. Students develop the scanner and the parser of an experimental language in Java, and design the solutions to various programming exercises in diverse programming languages. The topics include syntactic specification, data types, abstraction mechanisms, sequences control, data control, storage management, functional programming and program verification. We will use C, Java, Scheme and Prolog to illustrate programming language concepts.

  • Prerequisites: A grade of "C" or better in CS 242

  • Lecture Notes: can be accessed using the http://blackboard.pace.edu.
    Blackboard Login Procedures for Registered Students are available here

  • Schedule: subject to change

    WeekMondayWednesday
    1 9/3 9/5 Introduction
    2 9/10 Ch2 Syntax 9/12 Ch2 Syntax
    3 9/17 Rosh Hashanah 9/19 Ch2 Syntax
    4 9/24 Ch11 Logic Languages 9/26 Yom Kippur
    5 10/1 Ch11 Logic Languages 10/3 Ch11 Logic Languages
    6 10/8 Ch3 Scopes and Bindings 10/10 Ch3 Scopes and Bindings
    7 10/15 Ch4 Semantic Analysis 10/17 Ch4 Semantic Analysis
    8 10/22 review 10/24 Midterm Exam
    9 10/29 Ch6 Control Flow 10/31 Ch6 Control Flow
    10 11/5 Ch7 Data Types 11/7 Ch7 Data Types
    11 11/12 Ch8 Subroutines 11/14 Ch8 Subroutines
    12 11/19 Ch10 Functional Languages 11/21 Thanksgiving Break
    13 11/26 Ch10 Functional Languages 11/28 Ch10 Functional Languages
    14 12/3 Ch12 Concurrency 12/5 Ch12 Concurrency
    15 12/10 Review 12/12 Presentation
    16 12/17 Final Exam  

  • Evaluation:
    • Homeworks and Attendance (25%):
    • Group Project (25%): A report and presentation
    • Midterm Exam (25%):
    • Final Exam (25%):

  • Course Policies
    • All homeworks must be submitted at the beginning of the class. No late homework will be accepted.