Unit 1: Programming
Assignment Brief
Student Name/ID
Number
Unit Number and Title Unit 1: Programming
Academic Year
Unit Tutor
Assignment Title Introduction to Algorithms and Programming with an
IDE
Issue Date 26 March 2025
Submission Date 6 June 2025
Submission Format
The assignment submission is in the form of:
• a formal 10-minute presentation (10–15 slides as a guide, with supporting speaker
notes) to communicate an investigation to a technical audience explaining,
comparing and evaluating the key features and characteristics of the different
programming paradigms used in a specified application
• program source code – annotated/commented source should be produced in the
format created by the programming language selected (for example: .py, .cs, .vb, .txt,
.java files).
• Implemented program (final working version) in format suitable to be run and
assessed for functionality – this could be as project/solution files or final compiled
executable
• a written report to identify and define the algorithms used in the development of
the solution as well as an analysis and discussion of the steps taken in writing the
program and the challenges faced. The report will also clearly explain any coding
standards used, as well as how algorithms have been enhanced during the course
of development. The recommended word limit is 2,000–2,500 words, although you
will not be penalised for exceeding the total word limit
• a written report to demonstrate the key features and characteristics of the
debugging process and how these features are implemented in an Integrated
Development Environment (IDE) and applied to application development. The
recommended word limit is 1000-1500 words.
• a written report to evaluate the algorithms used in the development of the solution,
as well as an evaluation of the use of the IDE and the role of coding standards in
software development teams. The recommended word limit is 1,500–2,000 words,
although you will not be penalised for exceeding the total word limit.
You are required to make use of headings, paragraphs and sub-sections as appropriate,
and all work must be supported with research and referenced using an appropriate
referencing system such as Harvard. You will also need to provide a bibliography using
an appropriate referencing system such as Harvard. Inaccurate use of referencing may
lead to issues of plagiarism if not applied correctly.
Unit Learning Outcomes
LO1 Define basic algorithms to carry out an operation and outline the process of
programming an application
LO2 Explain the characteristics of procedural, object-orientated and event-driven-
programming
LO3 Implement basic algorithms in code using an IDE
LO4 Determine the debugging process and explain the importance of a coding
standard.
Transferable skills and competencies developed
Computing-related cognitive skills
• Computational thinking (including its relevance to everyday life)
• Demonstrate knowledge and understanding of essential facts, concepts, principles
and theories relating to computing and computer applications
• Recognise and analyse criteria and specifications appropriate to specific problems,
and plan strategies for their solutions
• Critical evaluation and testing: analyse the extent to which a computer-based
system meets the criteria defined for its current use and future development
• Methods and tools: deploy appropriate theory, practices and tools for the design,
implementation and evaluation of computer-based systems
Computing-related practical skills
• The ability to specify, design and construct reliable, secure and usable computer-
based systems
• The ability to evaluate systems in terms of quality attributes and possible trade-offs
presented within the given problem
• The ability to deploy effectively the tools used for the construction and
documentation of computer applications, with particular emphasis on
understanding the whole process involved in the effective deployment of
computers to solve practical problems
• The ability to critically evaluate and analyse complex problems, including those with
incomplete information, and devise appropriate solutions within the constraints of
a budget
Generic skills for employability
• Intellectual skills: critical thinking; making a case; numeracy and literacy
• Self-management: self-awareness and reflection; goal setting and action planning
• Independence and adaptability; acting on initiative; innovation and creativity
• Contextual awareness, e.g. the ability to understand and meet the needs of
individuals, business and the community, and to understand how workplaces and
organisations are governed
Vocational scenario
You have just started a new role as a Junior Software Developer at Light Digital
Solutions (LDS), an independent software development company that designs and
builds bespoke software solutions for various companies of different sizes that cover a
range of different industries. The software that they design uses a wide range of
technologies, from simple stand-alone programs to large web-based applications.
LDS has been approached by a local Skin Beauty Aesthetic Centre that specialises in
providing beauty treatments and services to clients and rewards clients with tiered
discounts based on their monthly spending. The more a client spends, the higher the
discount they receive. Additional loyalty discounts are given to clients with
memberships over 1 year.
The Skin Beauty Aesthetic Centre has requested a simple program that will make user
authentication before accessing a computer system and calculate the cost of
treatments for their clients each month and apply discounts based on the total cost.
The CEO of LDS has reviewed the client requirements and determined that this is a
suitable project for you to take on. The company wants to see how you use and apply
the LDS development environments and code standards.
The requirements are that the centre wants a program that is composed of two
modules:
1. The user is required to enter his password before accessing a computer system.
He is allowed three attempts before password entry is locked.
2. If the authentication is successful, the program allows a user to enter the
following information:
• Client ID
• Client name
• Selected treatments
• Number of selected treatments
• Membership duration (months)
For each client, the program should then output the following information:
• The client’s name
• Itemised list of treatments and costs for the month
• The total cost of treatments for the month before discount
• The discount amount (tier+loualty)
• The total cost after discount
You should use additional information to help you when developing your program.
The client has not specified any Graphical User Interface, but the CEO has left the
design of the program completely up to you.
Once the program has been built, the CEO has asked you to report back to them on
how you designed and developed the algorithms required, as well as how you
converted these algorithms into a final program and to show any issues you
encountered.
As part of your report, the CEO wants you to create a presentation for the development
team showing the different programming paradigms available, as well as the
debugging tools you used as part of the program development, so that the
development team can review your progress.
Additional Information
Treatment Prices (£GBP)
• Chemical Peel – per session: £175.00
• Microneedling - per session: £275.00
• PRP Therapy - per session: £100.00
• HIFU Treatment – per session: £400.00
• Hair Treatment – per session: £100.00
• Manicure – per session: £20.00
• Pedicure – per session: £25.00
Discount Rates
• Monthly Spending Tiers:
o 5% discount for costs over £500
o 10% discount for costs over £1000
o 15% discount for costs over £1500
• 5% extra for loyalty membership (membership>=12 months)
All prices and costs should be displayed as currency to two decimal places.
Assignment activity and guidance
Presentation into programming paradigms
Produce a formal presentation (with supporting notes) for LDS that explores the
features and characteristics of the three different programming paradigms – Event
Driven, Object Oriented and Procedural – in a selected application. The selected
application source code will need to implement all three paradigms.
Your presentation should include:
• a brief explanation about what the selected application is and what it does
P3 • a general discussion of the three code paradigms, with specific reference to their
characteristics and how each one is related
M2 • a comparison of how the three programming paradigms have been used in the
given application source code
D2 • a critical evaluation of how the source code implements all three paradigms in
terms of code structure and characteristics.
Program development
You are required to develop a program for the Skin Beauty Aesthetic Centre that makes
P4 use of appropriate algorithms to fulfil the given client requirements. You should make
use of whichever tools and techniques are most appropriate for your chosen coding
paradigm and for the nature of the software solution.
You are to write a report that details the process that would be required to design the
algorithm for the solution and how you turned the algorithm into a working application.
` Your report should include the following:
• a definition, written in the design tool of your choosing, of the algorithm required
P1
for the implementation of the program
P1 • an outline of the steps required to build the application
• a description of the steps required for converting the algorithm into a working
P2
program, including identification of a suitable programming language
M1 • an analysis of the relationship between the algorithm and program code to be
produced (e.g. parts of the algorithm that would remain the same, changes that
would have to be made)
• an analysis of the possible challenges you would face when converting the designed
M1 algorithm into program code (e.g. data types/structures available in the chosen
language, control structures required)
P6 • an explanation of the coding standards you used in your source code.
As part of your written report, you should clearly show how you have enhanced your
M3 original algorithm, using the features of the IDE to manage the development process.
This could include:
• identifying and solving any logical errors in the original algorithm
• debugging any errors in the program
• using version control within your IDE to track and monitor changes in the algorithm
• using performance monitoring tools to optimise the algorithm
• refining and optimising the algorithm using different code constructs.
You will include your final, annotated source code and working application as part of
your report.
Debugging Report
You need to write a debugging report for LDS that explains the debugging features
available to the developer in your chosen IDE and how they have been used in the
development of the solution for Beauty Skin Aesthetic Centre.
Your report should include:
• a brief description of the IDE chosen for this project
P5
• an explanation of the debugging process
P5 • an explanation of the debugging features available in your chosen IDE
M4 • an examination of how the debugging process can be used to develop more secure
and robust applications.
Evaluation report
You are to write an evaluative report for the CEO of LDS that provides a reflective
overview of how the process evolved, from algorithm design to implementation, and
how the use of the IDE and code standards are important for working in a company
like LDS.
Your report should include:
D1 • an evaluation of how the algorithm you designed for Skin Beauty Aesthetic Centre
was finally implemented
D1 • an evaluation of the relationship between the written algorithm and the actual
source code
• an evaluation of the use of the IDE you chose to develop the application for Skin
D3 Beauty Aesthetic Centre. As part of your evaluation, you will need to consider what
the development would have been like if you did not have access to the IDE
• an evaluation of the role and purpose of the coding standards you used, making
D4 specific reference to why it is necessary for software development teams as well as
individual programmers.
Recommended Resources
Please note that the resources listed are examples for you to use as a starting
point in your research – the list is not definitive.
Websites – general
https://www.codementor.io (n.d.) Comparing Programming Paradigms:
Procedural Programming vs Object-oriented Programming [online]. Available
at:
https://www.codementor.io/learn-programming/comparing-programming-
paradigms-procedural-programming-vs-object-oriented-programming
[Accessed 10 June 2024]
https://www.codingninjas.com/ (2020) Types of Algorithms and Their Uses
[online]. Available at:
https://www.codingninjas.com/blog/2020/06/04/types-of-algorithms-and-its-
uses/ [Accessed 10 June 2024]
https://www.freecodecamp.org/ (2022) What is Debugging? How to Debug Your
Code for Beginners [online]. Available at:
https://www.freecodecamp.org/news/what-is-debugging-how-to-debug-code/
[Accessed 10 June 2024]
https://www.geeksforgeeks.org/ (2022) Introduction of Programming
Paradigms [online].
Available at: https://www.geeksforgeeks.org/introduction-of-programming-
paradigms/ [Accessed 10 June 2024]
https://github.com/ (2022) The complete developer platform to build, scale, and
deliver secure software [online]. Available at: https://github.com/ [Accessed 10
June 2024]
https://www.mdpi.com/ (2022) Journals on algorithms [online]. Available at:
https://www.mdpi.com/journal/algorithms [Accessed 10 June 2024]
http://www.rosettacode.org (2016) programming chrestomathy site [online].
Available at: http://www.rosettacode.org/wiki/Rosetta_Code [Accessed 10 June
2024]
https://www.sourcecodester.com/ (2022) Free Source Code [online]. Available
at: https://www.sourcecodester.com/ [Accessed 10 June 2024]
https://www.technologyuk.net/ (n.d.) Event-driven Programming [online].
Available at: https://theruntime.com/ (n.d.) Difference Between Algorithm and
Code [online]. Available at: https://theruntime.com/algorithm-vs-code/
[Accessed 10 June 2024]
Websites – code learning tools
https://www.codecademy.com/ (2022) Join the millions learning to code with
Codecademy for free [online]. Available at: https://www.codecademy.com/
[Accessed 10 June 2024]
https://www.codechef.com/ (2022) Self-Learning coding tool [online].
Available at: https://www.codechef.com [Accessed 10 June 2024]
https://www.codewars.com/ (2022) Achieve Mastery Through Challenge
[online]. Available at: https://www.codewars.com/ [Accessed 10 June 2024]
https://www.codingame.com/start (2022) STEP UP YOUR CODING GAME
[online]. Available at: https://www.codingame.com/start [Accessed 10 June
2024]
https://replit.com/ (2022) Code, create, and learn together [online]. Available at:
https://replit.com/ [Accessed 10 June 2024]
https://www.w3schools.com/ (2022) Learn to Code [online]. Available at:
https://www.w3schools.com/ [Accessed 10 June 2024]
Journals and articles
Adragna, P. (n.d.) Software debugging techniques. Available at:
https://cds.cern.ch/record/1100526/files/p71.pdf [Accessed 10 June 2024]
McCauley, R., Fitzgerald, S., Lewandowski, G., Simon, B., Thomas, L., Zander, C.
and Murphy, L. (2008) Debugging: A review of the literature from an
educational perspective. Computer Science Education Vol. 18, No. 2, June 2008,
67–92. Available at:
https://www.tandfonline.com/doi/abs/10.1080/08993400802114581
[Accessed 10 June 2024]
Popic, S. (2018) The Benefits of the Coding Standards Enforcement and its
Influence on the Developers. Coding Behaviour: A Case Study on Two Small
Projects’ 26th Telecommunications forum TELFOR 2018.
doi:10.1109/TELFOR.2018.8612149. Available at:
https://www.researchgate.net/publication/328912784_[Accessed 10 June 2024]
Reeves, J. (1992) What is Software Design? C++ Journal. Available at:
http://www.public.telecom-sudparis.eu/~gibson/Teaching/Teaching-
ReadingMaterial/Reeves92.pdf [Accessed 10 June 2024]
Textbooks
Aho, A. V. et al. (1987) Data Structures and Algorithms. 1st edn. Addison-Wesley.
Edwards, S. et al. (2012) Problem Solving and Algorithms. Available at:
http://sofia.cs.vt.edu/cs1114-ebooklet/chapter4.html [Accessed 10 June 2024]
Hunt, A. et al. (2000) The Pragmatic Programmer: From Journeyman to Master.
1st edn. Addison-Wesley.
McConnell, S. (2004) Code Complete: A Practical Handbook of Software
Construction. 2nd edn. Microsoft Press.
Mitchell, J. (2002) Concepts in Programming Languages, Cambridge University
Press. Available at: http://theory.stanford.edu/~jcm/books/cpl-sample.pdf
[Accessed 10 June 2024]
HN Global
Reading Lists. Available at: https://hnglobal.highernationals.com/learning-
zone/reading-lists
Student Resource Library. Available at:
https://hnglobal.highernationals.com/subjects/resource-libraries
Learning Outcomes and Assessment Criteria
Pass Merit Distinction
LO1 Define basic algorithms to carry out an
operation and outline the process of programming
an application
P1 Define an algorithm M1 Analyse the D1 Evaluate the implementation
and outline the process in process of writing of an algorithm in a suitable
building an application. code, including the language and the relationship
potential challenges between the written algorithm
P2 Determine the steps
faced. and the code variant.
taken from writing code
to execution.
LO2 Explain the characteristics of procedural,
object-orientated and event-driven programming
P3 Discuss what M2 Compare the D2 Critically evaluate the source
procedural, object- procedural, object- code of an application that
orientated and event- orientated and event- implements the procedural,
driven paradigms are; driven paradigms used object-orientated and event-
their characteristics and in given source code of driven paradigms, in terms of
the relationship between an application. the code structure and
them. characteristics.
LO3 Implement basic algorithms in code using an
IDE
P4 Write a program that M3 Enhance the D3 Evaluate the use of an
implements an algorithm algorithm written,
IDE for development of
using an IDE. using the features of
the IDE to manage the applications contrasted
development process. with not using an IDE.
LO4 Determine the debugging process and explain
the importance of a coding standard.
P5 Explain the debugging M4 Examine how the D4 Evaluate the role and
process and the debugging process can purpose of a coding standard
debugging facilities be used to help and why it is necessary in a
available in the IDE. develop more secure, team as well as for the
robust applications. individual.
P6 Explain the coding
standard you have used
in your code.