• Edge computing: Introduction to edge computing, cloud computing analytics pipeline, cloud databases
  • Data analytics: Introduction to deep learning, data mining, and its applications; introduction to hadoop, spark, and mapreduce
  • Internet of things (IoT): IoT concepts and technologies, its applications, micro-controller programming using sensors and actuators with arduino, IoT security and privacy issues
  • Blockchain: Fundamentals of blockchain, distributed ledger technology, cryptocurrency, and related algorithms
  • Introduction to mobile application development: Mobile app development platforms (Android, iOS, etc.), development and deployment of applications

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%