Learning Outcomes:
On successful completion of this module, the student will be able to:
1. Understand and describe a set of general principles and methodologies for tackling large-scale programming problems, independent of the programming language involved.
2. Solve simple problems with object-oriented programming using C++
3. Understand how to use version control systems, with particular focus on git
4. Understand how to engineer software through requirements engineering approaches, and software design approaches
5. Knowledge of the basics of Python programming for fast prototyping