Course Code:CSC208S3
Course Title:Concepts of Programming Languages
Credit Value:03
Core/Optional:core
Hourly Breakdown:TheoryPracticalIndependent Learning
303090
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.