The focus is on object-oriented (OO) programming. Concepts including inheritance and multiple inheritance, polymorphism, operator overloading, memory …
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.
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.
The module exposes students to problems associated with software development on an industrial scale.
Programming languages are the backbone for software development. Each language has its own different syntax and semantics, but there are many common …
This module will introduce the student to the fundamentals of compiler construction.