The course comprises the fundamental concepts in design and implementation of programming languages, including syntax, semantics, names, bindings, data types, type checking, data control, storage management, subprograms, parameter passing, operating environment. Main paradigms of programming will be carefully covered including: structured programming, object oriented programming and functional programming. An exposure to several programming languages representing procedural, object-oriented and functional programming will also be provided, where students will further develop their practical competency.
The course is organized around basic concepts in design and implementation of programming languages, including syntax, semantics, names, bindings, type checking, subprograms, etc. Main paradigms of programming will be carefully covered including: structured programming, object oriented programming and functional programming.
| Week | Topic |
|---|---|
| 1 | General overview on programming languages |
| 2 | Describing syntax and semantics |
| 3 | Lexical and syntax analysis |
| 4 | Automata theory and Backus-Naur Form |
| 5 | Imperative programming elements |
| 6 | Selection structures, repetition structures, nesting. |
| 7 | Built-in data structures in imperative languages. |
| 8 | Midterm exam |
| 9 | Subprograms and their implementation in imperative programming. |
| 10 | Object-oriented programming principles. |
| 11 | Support for Object-Oriented Programming in Specific Languages |
| 12 | Exception handling and event handling |
| 13 | Functional programming languages |
| 14 | Support for Functional Programming in Primarily Imperative Languages |
| Method | % Each | Quantity |
|---|---|---|
| Homework | 10 | 2 |
| Midterm Exam(s) | 25 | 1 |
| Project | 10 | 1 |
| Final Exam | 40 | 1 |
| Attendance | 5 |
"Concepts of Programming Languages" by Robert Sebesta, Pearson 2019