Module manager: Dr Francesco Cosentino
Email: f.cosentino@leeds.ac.uk
Taught: Semesters 1 & 2 (Sep to Jun) View Timetable
Year running 2025/26
This module is not approved as a discovery module
This module develops the learners’ programming skills for applications to software engineering and machine learning. Students encounter the object-oriented programming paradigm as well as software engineering practices around design thinking, resource trade-offs and project management tools. Fundamental machine learning paradigms such as supervised, unsupervised and reinforcement learning are introduced and key topics in data science such as clustering, genetic algorithms, random forests, and dimensionality reduction are also explored.
This module aims to
- bridge the transition between basic programming and computational modelling to applications in a professional organisational context. Additionally, students will learn to embed good software engineering practices and adopt a design and project management approach to code development in an organisational context.
- explore different industry-appropriate collaborative software design methodologies, taking into account value for money and return on investment and considering resource implications of scaling a system up.
- examine the importance of a design approach to prototyping, piloting and production scale.
- Lay the foundations for key machine learning paradigms and data science techniques.
- equip learners to use appropriate libraries to perform standard data science tasks.
On successful completion of the module students will have demonstrated the following learning outcomes relevant to the subject:
1. Explain and apply the object-oriented programming paradigm to computational modelling and create code solutions to problems.
2. Evaluate computational resource implications in an organisational context, from prototyping and scaling up to business and sustainability considerations.
3. Explain and select appropriate machine learning methods for different tasks.
4. Apply algebraic ideas in order to develop data science tools and techniques.
5. Select appropriate libraries to perform standard data science tasks on a dataset.
Skills Learning Outcomes
On successful completion of the module students will have demonstrated the following skills learning outcomes:
a. Implement solutions to design challenges using appropriate software engineering, design and project management methodologies.
b. Plan, organise and manage resources to optimise output with respect to strategic goals.
c. Reflect on collaboration, design thinking and project management from the perspective of an organisation’s strategic needs.
1. Foundations of the object-oriented programming paradigm: objects, classes, encapsulation, inheritance, abstraction, polymorphism, modularity etc; applications to computational modelling and genetic algorithms
2. Software engineering and project management practices such as reproducibility/version control and agile collaborative user-centred design approaches like scrum and lean; prototypes, pilot and production stage
3. Practical programming considerations such as computing and organisational costs, memory and execution performance, constraints and trade-offs, value for money and return on investment, scaling up; networking, high-performance computing, map reduce, web and system integration
4. Key Machine Learning paradigms: supervised, unsupervised and reinforcement learning, labels; regularisation and overfitting; loss function, performance metrics, model selection and cross-validation; ethics and sustainability
5. The curse of big data/dimensionality and dimensionality reduction; practical application of algebraic data science techniques such as separating hyperplanes for classification, support vector machines, principal component analysis, uniform manifold approximation and projection, t-distributed stochastic neighbourhood embedding, decision trees and random forest etc using appropriate libraries or software environments
Methods of assessment
The assessment details for this module will be provided at the start of the academic year
| Delivery type | Number | Length hours | Student hours |
|---|---|---|---|
| Practical | 11 | 2 | 22 |
| Practical | 11 | 3 | 33 |
| Independent online learning hours | 60 | ||
| Private study hours | 85 | ||
| Total Contact hours | 55 | ||
| Total hours (100hr per 10 credits) | 200 | ||
Learners will regularly produce work in the hands-on teaching sessions, and get peer and formative feedback, including for preparation for the group/individual project. Some information searching, written work and presentation tasks will be set with feedback opportunities. The students can then act on this feedback for their projects.
Check the module area in Minerva for your reading list
Last updated: 30/04/2025
Errors, omissions, failed links etc should be notified to the Catalogue Team