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

Fall semester 2025
Class room: L.108

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/exercises: 10%
  • C2 – Assignments: 15%
  • C3 - Midterm Exam: 30%
  • C4 - Final Exam: 40%
  • C5 - Extra credit will be granted periodically for clever or creative solutions: 5% (Release before the final exam)

  • 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 and TA.

  • Tentative Class Schedule

    WEEK
    DATE
    TOPIC
    NOTE
    01
    08/09 ~ 13/09
    Introduction
    02
    15/09 ~ 20/09
    Lexical Analysis
    03
    22/09 ~ 27/09
    Lexical Analysis (cont.)
    04
    29/09 ~ 04/10
    Exercises and Revision
    Assigment 1
    05
    06/10 ~ 11/10
    Syntax Analysis
    06
    13/10 ~ 18/10
    Syntax Analysis (cont.)
    Invited talk:
    How PPL can be used to build chatbot
    07
    20/10 ~ 25/10
    Exercises + Revision
    08
    27/10 ~ 01/11
    Midterm Test
    In-class
    09
    03/11 ~ 08/11
    Semantic Analysis
    10
    10/11 ~ 15/11
    Functional & Logical Programming
    11
    17/11 ~ 22/11
    Name - Binding - Scope
    Assigment 2
    12
    24/11 ~ 29/11
    Design Patterns in PPL
    13
    01/12 ~ 06/12
    Code Generation
    14
    08/12 ~ 13/12
    Code Optimization
    Assigment 3
    15
    15/12 ~ 20/12
    Revision & Course Review