“Scientists investigate that which already is; Engineers create that which has never been.”
Why Study Programming?
As Albert Einstein noted, engineers think creatively to solve problems using the mental and physical tools at their disposal. Programming is now an essential skillset that comes with its own extensive box of tools. It is hard to imagine embarking on any engineering project nowadays without using software to measure, analyse, control and provide feedback and it comes as no surprise that the average car today contains over 100 million lines of code. Almost everything around us from heating control systems to heart rate monitors relies on software for its operation.
What will you learn?
The main aim of this group of modules is to introduce elementary programming concepts and to illustrate how to design and develop applications using widely used tools. Students will learn how to design, develop and deploy their own applications.
Module 1 (Year 2, Term 2) – Introduction to Programming
This module is an introductory course designed to take students through the basic principles of computer programming using Python. Most modern programming languages are based on the same, simple control structures, namely: sequence, loops, selection, functions and input / output. Students will learn how to go from a textual problem description to a computer program built from these elementary building blocks. Towards the end of the course students will develop an application using object-oriented design principles. This course is intensely practical in nature and students will complete a programming project in pairs as part of the module.
Module 2 (Year 3, Term 1) – Systems Engineering
Engineers are familiar with the need to specify plans and designs using different types of engineering drawings: an architect creates floor plans for a new building and an electronic engineer produces a schematic for boards. Just how do you specify a software design and how do users, or customers, explain what they want? In this course students will learn how to use industry- recognised techniques to capture and prioritise requirement, and to use this information to plan software projects in an efficient and effective way. Students will also learn how to model the design of an application from inception through to deployment. As with the other modules, this course is practical in nature and students are expected to complete a software application design project as part of a team.
Module 3 (Year 3, Term 2) – Web Development
The second module in this series builds on the programming skills developed in the first module and focuses on deploying web-based applications. Students will learn about the three core elements that make up any web site: the part that the user sees, a set of web pages, the application logic behind the web pages and the backend database where the data is stored. This course is also heavily practical and students will complete a programming project in groups as part of the module.
This Minor cannot be selected by students in the Department of Computer Science or students from the Department of Electronic & Electrical Engineering.
Ms Rae Harbird
Dept Computer Science