Course Code: | CSC208S3 |
Course Title: | Concepts of Programming Languages |
Credit Value: | 03 |
Core/Optional: | core |
Hourly Breakdown: | Theory | Practical | Independent Learning |
30 | 30 | 90 |
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
|
Contents: | - 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 |
Assessment Strategy: | - In-course Assessment (Theory) ——————————– 10%
- In-course Assessment (Practical) ——————————- 30%
- End-of-course Examination ————————————- 60%
|
References: | - 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.
|