LEARNING OUTCOMES
1. Design and develop software solutions to problems using programming paradigms and programming languages.
Knowledge & Understanding
Problem Solving
2. Develop and test software solutions using recognised approaches and technologies
Analysis
Knowledge & Understanding
Application
3. Deploy applications using recognised development approaches and technologies
Knowledge & Understanding
Application
4. Present and reflect on the success and understanding of the application of software engineering approaches
Communication
Reflection
ADDITIONAL ASSESSMENT DETAILS
During the module alongside the materials covered and directed reading you will develop an electronic portfolio of solutions to the tutorial activities, tasks.¿
¿
Online Class Test in controlled conditions - approximately halfway through the module¿50%
The test will consist of questions based on the program design topics, it will require you to reference your electronic portfolio of practical work from the first half of the module (Learning Outcomes 1 and 2)
Demonstration including Q&A 50%
You will be required to develop applications to meet sets of requirements, you will demonstrate the working solutions as well as walk-through of how the programming of the applications achieve the required functionality. (Learning Outcomes 1,2,3 and 4)
Assessing aspects of the following KSBs from the CSTP Apprenticeship Standard:
K4: Computer architecture, digital logic, machine level representation of data
S4: Build test and debug a digital system to a specification
K6: Algorithm and program design, concepts, compilers and logic. Programming languages
S6: Write, test, debug programs in high- and low-level languages and scripts
K7: Algorithms, complexity and discrete maths
S7: Design, implement and analyse algorithms
K11: System development principles, tools, approaches, complexity, software engineering
S11: Apply system engineering and software development methodologies and models
B8: Analytical and critical thinking skills for Technology Solutions development and can systematically analyse and apply structured problem-solving techniques to complex systems and situations.
B10: Can conduct effective research, using literature and other media.
B11: Logical thinking and creative approach to problem solving.
INDICATIVE CONTENT
Development Methodologies – including waterfall, agile approaches.
Programming Topics
Classes and objects
Designing applications with UML
Inheritance & polymorphism
Association & aggregation
Abstract classes
Accessing external data
REST API that outputs data in JSON format
Interface Topics
Web standards and Web Development
Design of interfaces
Best practices in Web development
Event-driven programming to consume data from an API (e.g. JSON)
Quality Assurance
Testing
Debugging
Application Deployment
Introduction to Clean Code
Introduction to Green Computing
This module will support the development and assessment of the following KSBs from the CSTP Apprenticeship Standard:
K4: Computer architecture, digital logic, machine level representation of data
S4: Build test and debug a digital system to a specification
K6: Algorithm and program design, concepts, compilers and logic. Programming languages
S6: Write, test, debug programs in high- and low-level languages and scripts
K7: Algorithms, complexity and discrete maths
S7: Design, implement and analyse algorithms
S8: Construct software to interact with the real world and analyse for security exploits
K10: Defensive programming, malware resistance, code analysis, formal methods, good practice
S10: Apply secure programming principles and design patterns to address security issue
K11: System development principles, tools, approaches, complexity, software engineering
S11: Apply system engineering and software development methodologies and models
B8: Analytical and critical thinking skills for Technology Solutions development and can systematically analyse and apply structured problem-solving techniques to complex systems and situations
B10: Can conduct effective research, using literature and other media
B11: Logical thinking and creative approach to problem solving
Learning within this module maps to the following principles of Equality, Diversity & Inclusion:¿
Bias prevention in security
Equal opportunities
WEB DESCRIPTOR
This module builds on your knowledge of programming concepts and algorithms exploring further programming approaches as well as methodologies such as waterfall and agile. You'll develop your programming skills by working with classes, objects, inheritance, polymorphism, and designing applications using UML. You’ll access and handle external data through REST APIs delivering JSON, and build user interfaces using web standards, HTML, CSS, and event-driven programming. The module also covers testing, debugging, and deploying applications, while introducing you to clean code principles and environmentally conscious green computing practices.
LEARNING STRATEGIES
This module will be delivered in a blended learning mode consisting of face-to-face, online and guided learning sessions.
Teaching sessions will blend theory and practical learning, and most importantly where possible will seek to be contextualised in your workplace as part of your apprenticeship. You will be introduced to curriculum concepts and ideas and will then be able to apply theory to practical examples. In addition, students will be provided with a range of resources for independent study such as case studies, academic papers and industry case studies. There will be a mixture of practical and theoretical formative (mock or practice) exercises which will help you build knowledge and confidence in preparation for summative (formal) assessment.
The delivery will be delivered as follows:
Module Launch week: 12 hours.
There will be a module launch week with up to 12 hours of face to face contact time devoted to developing your understanding of the core purpose and assessment of the module. You will be presented with details of how the learning will be structured and how to access to the learning materials for the remainder of the module.
Structured Learning Sessions: 15 hours
Following the module launch week you will have a further 15 hours of attendance-based contact time as a class with the module team. This will typically be as 10 x 1.5-hour online classes. Classes which will be a combination of activities including lectures, demonstrations, discussions, tutorials and seminars. Some sessions maybe in flipped classroom style, where you will be expected to watch online recordings, read materials or respond to practical activities in preparation for active engagement with problem solving in the online session.
1:1 Progress Checks: 1 hour
As a Blended Learner understanding your progress can be a challenge so you are allocated an hour of 1:1 time with your tutor (typically 3 x 20-minute meetings). Some of these may be in small groups if appropriate. These sessions may be used to discuss key topics, troubleshoot solutions, review working drafts etc.
Assignment Development: Time 30 hours
A typical assignment will take you a minimum 30 hours to complete.
This module includes 58 off-the-job (OTJ) training hours as standard, covering new learning funded by the apprenticeship levy. A total 200 nominal learning hours has been attributed to this module, incorporating OTJ training alongside broader academic development beyond levy-funded new learning.
TEXTS
Goodrich, M. T., Tamassia, R. & Goldwasser, M. H. (2025) Data Structures and Algorithms in Python. 2nd edn. Hoboken, NJ: Wiley.
Sedgewick, R. & Wayne, K. (2024) Algorithms. 5th edn. Addison-Wesley Professional.
Brassard, G. & Bratley, P. (2024) Fundamentals of Algorithmics. 3rd edn. Prentice Hall.
Freeman, E. & Robson, E. (2023) Head First Design Patterns. 2nd edn. Sebastopol, CA: O'Reilly Media.
Dasgupta, S., Papadimitriou, C. H. & Vazirani, U. V. (2023) Algorithms. McGraw Hill.
Wengrew, J. (2020). ‘A Common-Sense Guide to Data Structures and Algorithms, 2e: Level Up Your Core Programming Skills’
Martin, R. (2009). 'Clean Code. A handbook of Agile Software Craftsmanship'. Prentice Hall.
McConnell, S. (2004). 'Code Complete. 2nd Edition'. Microsoft Publishing.
Rocca, L, M. (2021), Algorithms and Data Structures in Action, Manning Publications; 1st edition¿
Skiena, S. (2020), The Algorithm Design Manual (Texts in Computer Science), Springer; 3rd ed. 2020 edition¿
RESOURCES
Software Development kit such as: Java SDK, Python, Rust
Software Development Environments such as: Intellij, Visual Studio, Visual Studio Code or cloud-based tools.