This module introduces imperative computer programming, which is a fundamental building block of computer science.
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.
Programming languages are the backbone for software development. Each language has its own different syntax and semantics, but there are many common …
The focus is on object-oriented (OO) programming. Concepts including inheritance and multiple inheritance, polymorphism, operator overloading, memory …
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 will introduce the student to the fundamentals of compiler construction.
The module exposes students to problems associated with software development on an industrial scale.
This module introduces the concepts of generic programming in order to generate code at compile-time.