Principles of Programming Languages

This course guides the student through a comparative study of programming languages, guided by a well-defined set of criteria. It involves an introduction to the fundamental principles of programming language design. It also involves a review of different types of programming languages.Following is a set of lectures that reference Robert Sebesta's classic text on the subject matter as the primary source, but also draw from other sources.

01.  Introduction to Programming Languages

02.  Chronology of Programming Languages

03.  Translation Issues

04.  Data Types and Variables

05.  Expressions

06.  Control Structures

07.  Subprograms

08.  Support for Abstract Data Types

09.  Support for Object-Oriented Programming

10. Concurrency Control

11. Exception and Event Handling

12. Procedural and Functional Languages

13. Logic-based Languages