Course Code:CSC237SC3
Course Title:Concepts of Programming Languages
Academic Credits:03 (30 hours of lectures and tutorials and 45 hours practical)
Objectives:This course aims to 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
  • Write 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, 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 Methods:Lecture by teacher, Programming practical sessions by teacher, Tutorial submission and discussion
Assessment/ Evaluation Details:
  • In-course Assessment(Theory) —————–20%
  • In-course Assessment (Practical) ————–20%
  • End-of-course Examination ——————–60%