Course name: Principles of Programming Language (Code: IT092IU)

Fall semester 2024
Class room: L201

Course Learning Outcomes

The following are the official course goals agreed upon by the faculty for this course, i.e., students can undestand:
  • A wide range of programming paradigms
  • How different programming languages evolved
  • The differences in problem domains and language suitability
  • The basic features of programming language translation
  • Implementation techniques for selected language constructs

  • Textbooks

  • [R1] Robert W. Sebesta, Concepts of programming languages 10th, 2012
  • [R2] Alfred Aho, Jeffrey Ullma, Ravi Sethi, Monica Lam, Compilers: Principles, Techniques, and Tools 2nd, 2007

  • Grading scheme

  • C1 - Class participation/in-class quiz: 10%
  • C2 – Assignments: 15%
  • C3 - Midterm: 30%
  • C4 - Final project: 40%
  • C5 - Extra credit will be granted periodically for clever or creative solutions: 5% (Release before the final exam)
  • To attend the final exam, you MUST complete satisfactory work in every component (≥40% of {C1, C2, C3}).

    Course Materials and Communications

  • Handouts, ebooks, and related materials for this course are available on Blackboard (https://blackboard.hcmiu.edu.vn)
    Any assigment will be submitted to Blackboard by the announced due date and time.
    Assignments will be graded based on program performance and documentation.
  • The MS Team discussion board is used for all non-personal, course-related communication with the instructor.

  • Tentative Class Schedule

    WEEK
    DATE
    TOPIC
    NOTE
    01
    03/09
    National Holiday
    no class
    02
    10/09
    Introduction
    03
    17/09
    Lexical Analysis
    04
    24/09
    Lexical Analysis (cont.)
    Assigment 1
    05
    01/10
    Syntax Analysis
    Group confirmation
    06
    08/10
    Syntax Analysis (cont.)
    07
    15/10
    Semantic Analysis
    Assigment 2
    08
    22/10
    Exercises + Revision
    09
    29/10
    Midterm
    10
    05/11
    Midterm
    Final Project confirmation
    11
    12/11
    Functional Programming
    12
    19/11
    Logical Programming
    Assigment 3
    13
    26/11
    Design Pattern
    14
    03/12
    Name - Binding - Scope
    Assigment 4
    15
    10/12
    Code Generation
    16
    17/12
    Code Optimization
    Assigment 5
    17
    24/12
    Final Project preparation
    no class
    18
    31/12
    Final Project presentation
    i.e., final exam