Computing 2 - DE2-COM2
This module builds on the first programming module DE1-COM1 to apply the skills acquired there towards the implementation of more advanced algorithms and data structures. The course will delve deeper into the implementation of some important computing building blocks, such as algorithms for sorting and searching, data structures for maintaining lists, queues, stacks, heaps, etc. The course expands on the object-oriented programming paradigm that was introduced at the end of Computing 1 and addresses issues of software system design, development, integration, testing, and maintenance. Through a bottom-up implementation-based approach, lifecycle activities associated with developing software as part of a system as well as the design environment required to ensure timely, cost-effective performance will be taught. The design space associated with software systems is massive, and therefore systems thinking is critical to insure that each subsystem functions as a part of a larger whole. Coursework projects will also be undertaken focusing on software system design, programming, and project-based implementation.
Computing 1 - DE1-COM1
This module aims to introduce students to computer programming. They will learn the Python programming language using the Jupyter Notebook environment. The module will focus on the fundamental algorithms and data structures that are the foundations of computer programming in any language. By the end of the module students should be able to write moderately complex programs based on the Python language and be able to transition easily to other high-level languages, such as Java, C# .NET, C++, etc. The idea of this introductory course is to lay a foundation such that the students can undertake independent learning for application-specific programming in their subsequent work. The module teaching style is very hands-on, using a blended/hybrid teaching approach which intertwines short lectures with practical programming exercises.