|Course Title:||Concepts of Programming Languages|
|Hourly Breakdown:||Theory||Practical||Independent Learning|
|Objectives:||Provide an overview of the basic concepts that appear in modern programming languages, the principles that underlie the design of programming languages, and their features.|
|Intended Learning Outcomes:|
- Describe the fundamental issues in the design and the use of major programming languages
- Demonstrate the differences of programming paradigms in different programming languages
- Discuss the use of formal methods for program verification
- Build concurrent and functional programs
- Introduction: Programming domains, evaluation criteria for programming languages, influences on language design, programming language categories
- Introduction to syntactic and semantic description of programming languages
- Programming paradigms in different programming languages: Data types, Abstract data types, Data objects, Control structures, subprograms, lifetime and scope of variables and functions, object-oriented programming, exception handling
- Concurrency: Basics of concurrency, subprogram-level concurrency, monitors, message passing, threads
- Functional programming: Fundamentals and programming with functional programming languages
|Teaching/Learning Methods:|| Lectures, practical sessions, Tutorial discussions, Assignments|
- In-course Assessment (Theory) ——————————– 10%
- In-course Assessment (Practical) ——————————- 30%
- End-of-course Examination ————————————- 60%
- R. W. Sebesta, Concepts of Programming Languages, Pearson, 2016.
- J. C. Mitchell, Concepts in Programming Languages, Cambridge University Press, 2003.
- C. Ghezzi and M. Jazayeri, Programming language concepts, 3rd Ed, 1997.