This module introduces imperative computer programming, which is a fundamental building block of computer science.
This module introduces concepts and terminology related to the computer science discipline.
This module introduces students to a framework for investigating both computability and complexity of problems.
Data abstraction is a fundamental concept in the design and implementation of correct and efficient software.
This module will introduce the student to netcentric systems by focusing on the development of systems for the web, mobile devices and the cloud.
This module will expose students to the evolution of databases systems.
The main objective of this module is to introduce a selection of topics from artificial intelligence (AI), and to provide the student with the …
The objective of this module is to acquaint the student with the terminology of communication systems and to establish a thorough understanding of …
Programming languages are the backbone for software development. Each language has its own different syntax and semantics, but there are many common …
The aim of this module is to acquire a sound knowledge of the basic theory of interactive computer graphics and basic computer graphics programming …
The focus is on object-oriented (OO) programming. Concepts including inheritance and multiple inheritance, polymorphism, operator overloading, memory …
Fundamental concepts of modern operating systems in terms of their structure and the mechanisms they use are studied in this module.
The module will introduce the concepts of model-driven analysis and design as a mechanism to develop and evaluate complex software systems.
Computer science courses mostly deal with sequential programs. This module looks at the fundamentals of concurrency; what it means, how it can be …
This module provides the foundations on which other modules build by enabling a deeper understanding of how software interacts with hardware.
This module builds on a prior introductory module on database technology and provides more advanced theoretical and practical study material for …
This module develops an appreciation of the fundamentals and design principles for information assurance and security.
This module will introduce the student to the fundamentals of compiler construction.
The module exposes students to problems associated with software development on an industrial scale.