0% found this document useful (0 votes)
4 views49 pages

Programming

The document is a feedback form for a programming assignment submitted by Balasingam Judes Kolin, focusing on a Training Fee Calculation System for KickBlast Judo. It outlines the assignment requirements, assessment criteria, and guidelines for submission, including the importance of avoiding plagiarism and adhering to coding standards. Additionally, it provides a detailed breakdown of activities related to algorithms, programming paradigms, and the development process using an Integrated Development Environment (IDE).

Uploaded by

bj kolin
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views49 pages

Programming

The document is a feedback form for a programming assignment submitted by Balasingam Judes Kolin, focusing on a Training Fee Calculation System for KickBlast Judo. It outlines the assignment requirements, assessment criteria, and guidelines for submission, including the importance of avoiding plagiarism and adhering to coding standards. Additionally, it provides a detailed breakdown of activities related to algorithms, programming paradigms, and the development process using an Integrated Development Environment (IDE).

Uploaded by

bj kolin
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Higher Nationals - Summative Assignment Feedback Form

Student Name/ID Balasingam Judes Kolin / Student ID: JAF00239038


NO: - E157358

Unit Title Unit 01 – Programming


Assignment Number 1 Assessor Hari
12/08/2024 Date Received 12/08/2024
Submission Date
1st
submission
Date Received 2nd
Re-submission Date
submission

Assessor Feedback:

Grade: Assessor Signature: Date:


Resubmission Feedback:

• Please note resubmission feedback is focussed only on the resubmitted work

Grade: Assessor Signature: Date:


Internal Verifier’s Comments:

Signature & Date:


• Please note that grade decisions are provisional. They are only confirmed once internal and
external moderation has taken place and grades decisions have been agreed at the
assessment board.

BTEC HN Summative Assignment Feedback Form


Issue Date: June 2021 Owner: HN QD
DCL1 Public (Unclassified) Version 1.0
Important Points:

1. It is strictly prohibited to use textboxes to add texts in the assignments, except for the
compulsory information. eg: Figures, tables of comparison etc. Adding text boxes in the
body except for the before mentioned compulsory information will result in rejection of
your work.
2. Avoid using page borders in your assignment body.
3. Carefully check the hand in date and the instructions given in the assignment. Late
submissions will not be accepted.
4. Ensure that you give yourself enough time to complete the assignment by the due date.
5. Excuses of any nature will not be accepted for failure to hand in the work on time.
6. You must take responsibility for managing your own time effectively.
7. If you are unable to hand in your assignment on time and have valid reasons such as
illness, you may apply (in writing) for an extension.
8. Failure to achieve at least PASS criteria will result in a REFERRAL grade.
9. Non-submission of work without valid reasons will lead to an automatic RE FERRAL.
You will then be asked to complete an alternative assignment.
10. If you use other people’s work or ideas in your assignment, reference them properly
using HARVARD referencing system to avoid plagiarism. You have to provide both in-
text citation and a reference list.
11. If you are proven to be guilty of plagiarism or any academic misconduct, your grade
could be reduced to A REFERRAL or at worst you could be expelled from the course
12. Use word processing application spell check and grammar check function to help
editing your assignment.
13. Use footer function in the word processor to insert Your Name, Subject,
Assignment No, and Page Number on each page. This is useful if individual sheets
become detached for any reason.
STUDENT ASSESSMENT SUBMISSION AND DECLARATION
When submitting evidence for assessment, each student must sign a declaration
confirming that the work is their own.
Student name: Balasingam Judes Kolin Assessor name: Hari

Issue date:15/07/2024 Submission date: Submitted on:12/08/2024


12/08/2024

Programme: Pearson BTEC HND in Computing

Unit: Unit 01 – Programming


Assignment number and title:
1- Training Fee Calculation System for KickBlast Judo.

Plagiarism
Plagiarism is a particular form of cheating. Plagiarism must be avoided at all costs and
students who break the rules, however innocently, may be penalised. It is your
responsibility to ensure that you understand correct referencing practices. As a
university level student, you are expected to use appropriate references throughout and
keep carefully detailed notes of all your sources of materials for material you have used
in your work, including any material downloaded from the Internet. Please consult the
relevant unit lecturer or your course tutor if you need any further advice.

Guidelines for incorporating AI-generated content into assignments:


The use of AI-generated tools to enhance intellectual development is permitted;
nevertheless, submitted work must be original. It is not acceptable to pass off AI-generated
work as your own.
Student Declaration
Student declaration
I certify that the assignment submission is entirely my own work and I fully understand
the consequences of plagiarism. I understand that making a false declaration is a form of
malpractice.

Student signature: Date:


National in

Software Engineering
Unit 01: Programming
Assignment 01
Unit 01: Programming

Assignment Brief

Student Name/ID Number Balasingam Judes Kolin / Student ID: JAF00239038


NO: - E157358

Unit Number and Title Unit 01 – Programming


Academic Year 2024/2025

Unit Tutor Hari

Assignment Title Training Fee Calculation System for KickBlast Judo.


15/07/2024
Issue Date
Submission Date 12/08/2024

Submission Format
The assignment submission is in the form of the following.
• An individual written report written in a concise, formal technical style using single
spacing and font size 12. Include all necessary screenshots of your coding and
screenshots of the developed application as evidence. Referencing should be done
using the Harvard Referencing system.
• All the source code files, Complete GUI System with the database.

Submit all above in a one single .zip file to the submission portal.

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
Computing-related cognitive skills :
• Demonstrate knowledge and understanding of essential facts, concepts, principles
and
theories relating to computing and computer applications
• Use such knowledge and understanding in the modelling and design of computer-
based
systems for the purposes of comprehension, communication, prediction and the
understanding of trade-offs
• 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.
Assignment Brief and Guidance:

Activity 1

A. The Fibonacci numbers are the numbers in the following integer sequence.
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ……..

In mathematical terms, the sequence Fn of Fibonacci numbers is defined by the recurrence


relation.

Fn = F n-1 + F n-2

B. Factorial of a non-negative integer, is multiplication of all integers smaller than or equal


to n. For example, factorial of 6 is 6*5*4*3*2*1 which is 720.

n! = n * (n - 1) * …….. 1

Define what an algorithm is and outline the characteristics of a good algorithm. Write the
algorithms to display the Fibonacci series and the factorial value for a given number using
Pseudo code. Determine the steps involved in the process of writing and executing a
program and carry out an analysis of writing the code phase by discussing the potential
challenges faced.

Take a sample number and dry run the above two algorithms. Show the outputs at the end
of each iteration and the final output. Examine what Big-O notation is and explain its role in
evaluating efficiencies of algorithms. Write the Python program code for the above two
algorithms and critically evaluate their efficiencies using Big-O notation.
Activity 2

Compare and discuss what is meant by a Programming Paradigm and the main
characteristics of Procedural, Object oriented and Event-driven paradigms and the
relationships among them. Write small snippets of code as example for the above three
programming paradigms using a suitable programming language(s) and critically
evaluate the code samples that you have given above in relation to their structure and
the unique characteristics.

Activity 3 and Activity 4 are based on the following Scenario.

You have just started a new role as a Junior Software Developer at CUBE-GEN Software
Solutions 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.
CUBE-GEN Software Solutions has been approached by a small, local company – KickBlast
Judo – that specialises in providing judo training sessions to people from the local community.
KickBlast Judo caters to people of all ages and experience, from expert to beginner.
KickBlast Judo has requested a simple program that will calculate the cost of training fees for
their athletes each month.
The Chief Executive Officer (CEO) of the company has reviewed the client requirements and
has determined that this is a suitable project for you to take on. The company wants to see how
you use and apply the CUBE-GEN Software development environments and code standards.
The requirements are that KickBlast Judo wants a program that will allow a user to enter the
following information:
● athlete name
● training plan
● current weight in kilograms (kg)
● competition weight category
● number of competitions entered this month
● option to add the number of hours private coaching.
For each athlete, the program should then output the following information:
● the athlete’s name
● an itemised list of all costs for the month
● the total cost of training and competitions for the month
● how their current weight compares to their competition weight category.
KickBlast Judo currently have six athletes enrolled on their training program, but they would
like the ability to register more.
You should use the additional information on the next page to help you when developing your
program.
The CEO has instructed you to develop a GUI application for the KickBlast Judo.
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.
Additional information

● Athletes can receive a maximum of five hours’ private coaching a week


● Only Intermediate and Elite athletes can enter competitions
● Competitions are held on the second Saturday of each month
● All prices and costs should be displayed as currency to two decimal places
● The program deals with user error by displaying suitable messages to the user and then
prompting them for another go
● KickBlast Judo assumes that a month consists of four weeks.
Activity 3

Write the complete pseudocode to calculate the cost of training fees for KickBlast
athletes for each month. Use the visual studio IDE (using C#.net) to implement the above
algorithms. The developer can decide the methods which need to be included when
developing the classes. Design the suitable database structure for keeping the data of the
above system.

Analyze the features of an Integrated Development Environment (IDE) and explain how
those features help in application development. Evaluate the use of the Visual StudioIDE
for your application development contrasted with not using an IDE.

Activity 4

4.1 Design and build a small GUI system for the above scenario and the application should be a
complete functional system with all the functions which has described in the above scenario
with the database structure which has designed in activity 3.

4.2 Examine debugging process and the features available in Visual studio IDE for debugging
your code more easily. Evaluate how you used the debugging process to develop more
secure, robust application with examples.

4.3 Explain and outline the coding standards you have used in your application development.
Critically evaluate why a coding standard is necessary for the team as well as for the
individual.
Reading:
Aho, A. V. et al. (1987) Data Structures and Algorithms. 1st Ed. Addison-Wesley. Hunt,
A. et al. (2000) The Pragmatic Programmer: From Journeyman to Master. 1st Ed.

Addison-Wesley. McConnell, S. (2004) Code Complete: A Practical Handbook of


Software Construction. 2nd Ed. Microsoft Press.

HN Global:
HN Global HN Global (2021) Reading Lists. Available at:
[Link]

HN Global (2021) Student Resource Library. Available at:


[Link]

HN Global (2021) Textbooks. Available at:


[Link]
Acknowledgement

I would like to sincerely express my gratitude to my lecturer, Mr. Hari, for her constant
guidance, encouragement, and valuable support throughout this work. Her thoughtful advice,
patience, and motivation helped me to complete this successfully and also inspired me to
improve my knowledge and skills.

I also extend my heartfelt thanks to ESOFT Metro Campus for providing me with the
opportunity, resources, and a positive learning environment that contributed greatly to my
progress. The encouragement and facilities offered have played a significant role in shaping this
work.

Finally, I wish to thank everyone who directly or indirectly supported me in this journey.

B. Judes Kolin
HIGHER NATIONAL DIPLOMA IN
SOFTWARE ENGINEERING

Programming ID: E157358


B Judes kolin Page 1 of 33
HIGHER NATIONAL DIPLOMA IN
SOFTWARE ENGINEERING

Table of contents

Contents
Activity 01 ...................................................................................................................................... 4
1.1 Algorithm ....................................................................................................................... 4
1.2 Process in building an application ..................................................................................... 6
1.3 Fibonacci and Factorial Series ........................................................................................... 7
1.4 Big O Notation ................................................................................................................... 10
1.5 Reasons for why python is suitable to implement Fibonacci and factorial algorithm 10
1.6 Relationship between written algorithm and the code variant ..................................... 11
Activity 02 .................................................................................................................................... 12
2.1 Programming Paradigm ................................................................................................... 12
2.2 Example code for Procedural, Object oriented and Event driven Paradigm .............. 17
Activity 03 .................................................................................................................................... 18
3.1 Written Algorithm for calculating the cost of training fees ........................................... 18
3.2 Design of the systems......................................................................................................... 21
3.3 Integrated Development environment (IDE) .................................................................. 25
3.4 Features of Visual Studio IDE for KickBlast Judo Development .................................. 26
3.5 Advantages of Visual Studio IDE for KickBlast Judo System Development ............... 26
Activity 04 .................................................................................................................................... 28
4.1 Debugging .......................................................................................................................... 28
4.2 Steps in debugging............................................................................................................. 28
4.3 Coding Standard ............................................................................................................... 29
4.4 Importance of coding standards for Individual and Teamwork ................................... 33

Programming ID: E157358


B Judes kolin Page 2 of 33
HIGHER NATIONAL DIPLOMA IN
SOFTWARE ENGINEERING

Table of figures

Figure 1:Symbols used in Flow chart .............................................................................................. 5


Figure 2:Fibonacci series ................................................................................................................ 7
Figure 3:Factorial series .................................................................................................................. 8
Figure 4:Programming Paradigms ................................................................................................ 12
Figure 5:Example code for procedural paradigm .......................................................................... 17
Figure 6:Login Form ..................................................................................................................... 21
Figure 7:Dashboard ....................................................................................................................... 22
Figure 8:Athlete form .................................................................................................................... 23
Figure 9:Coaching form ................................................................................................................ 24
Figure 10:Competition form.......................................................................................................... 24
Figure 11:Coding For Login ......................................................................................................... 25
Figure 12:Coding Standards .......................................................................................................... 29

Programming ID: E157358


B Judes kolin Page 3 of 33
HIGHER NATIONAL DIPLOMA IN
SOFTWARE ENGINEERING

Activity 01

1.1 Algorithm

An algorithm is a process for carrying out a calculation or resolving an issue. In hardware- or


software-based routines, algorithms function as a precise set of instructions that carry out
predetermined actions step by step.
In every aspect of IT, algorithms are widely used. In computer science, computer programming,
and mathematics, an algorithm is typically a brief process that resolves a persistent issue.
Algorithms are crucial to automated systems and are also used as specifications for data
processing. Sorting sets of numbers or more complex tasks like suggesting user content on social
media could be done with an algorithm. Usually, algorithms begin with instructions that outline a
particular computation and initial input. The process generates an output after the calculation is
completed. (Gillis, 2024)
Characteristics of Good Algorithm
• Well Defined Inputs
• Well defined Outputs
• Unambiguity
• Finiteness
• Language Independence
• Feasibility
Advantages of computer Algorithm
1. It is a step-wise representation of a solution to a given problem, which makes it easy to
understand.
2. An algorithm uses a definite procedure.
3. It is not dependent on any programming language, so it is easy to understand for anyone
even without programming knowledge.
4. Every step in an algorithm has its own logical sequence so it is easy to debug.
5. By using algorithm, the problem is broken down into smaller pieces or steps hence, it is
easier for programmer to convert it into an actual program
Disadvantages of computer algorithm
1. Writing algorithm takes a long time.

Programming ID: E157358


B Judes kolin Page 4 of 33
HIGHER NATIONAL DIPLOMA IN
SOFTWARE ENGINEERING

2. An Algorithm is not a computer program, it is rather a concept of how a program should


be

Flow Chart
• Flowchart is a graphical representation of algorithm.

Figure 1:Symbols used in Flow chart

Pseudo Code
• Presenting an algorithm using simple English terms is called Pseudo code.
BEGIN-to indicate a beginning
END-to indicate an end
INPUT/OUTPUT/READ-to indicate input
OUTPUT/DISPLAY/SHOW/PRINT-to indicate output
IF….THEN….ELSE….ENDIF-to indicate selection
FORDO
WHILE END WHILE To indicate the repetition or iteration
REPEAT….UNTIL

Programming ID: E157358


B Judes kolin Page 5 of 33
HIGHER NATIONAL DIPLOMA IN
SOFTWARE ENGINEERING

1.2 Process in building an application


1. Research and Planning
2. Design
3. Code development
4. Testing
5. Documenting the program
1. Research and Planning
The research and planning phase defines the app’s purpose, identifies target users and ensures
there’s an actual demand for the idea. A strong plan helps you avoid costly mistakes and ensures
your app delivers real value to users. (Rodrigues, 2025)
2. Design
The design and prototyping phase allow for early feedback and adjustments ahead of
development. Refining the app early saves time, minimizes development changes and ensures a
smoother launch. The process involves creating wireframes or interactive prototypes to visualize
the app’s look and functionality. (Rodrigues, 2025)

3. Code development
App developers use the prototype as a blueprint for creating the app – using programming
languages (like Java or SQL), frameworks and APIs to bring your design to life. (Rodrigues,
2025)
The coding phase includes:

• Creating front-end code to create the app’s interface


• Crafting back-end code to handle data, authentication and functionality
4. Documenting the program
Documentation in programming refers to the process of creating written or visual materials that
explain and describe the code, its functionality, and how to use it. It serves as a guide for
developers, users, and other stakeholders to understand and interact with the software effectively.
(POINTS, 2023)

Programming ID: E157358


B Judes kolin Page 6 of 33
HIGHER NATIONAL DIPLOMA IN
SOFTWARE ENGINEERING

1.3 Fibonacci and Factorial Series


1. Fibonacci

A sequence of numbers known as a Fibonacci series is one in which the first two numbers are
either 1 and 1 or 0 and 1, depending on the sequence's chosen starting point, and each succeeding
number is the sum of the preceding two. Thus, the nth term in this series is equal to the sum of the
n-1 and n-2 terms. (Fibonacci Series Algorithm And Flowchart - Code With C, 2014)
Code to execute the Fibonacci series
n = 12
a, b = 0, 1
print (a, b, end=' ')
for i in range(2, n):
next number = a + b
print (next number, end=' ')
a, b = b, next number
Output- 0 1 1 2 3 5 8 13 21 34 55 89

Figure 2:Fibonacci series

2. Factorial

Programming ID: E157358


B Judes kolin Page 7 of 33
HIGHER NATIONAL DIPLOMA IN
SOFTWARE ENGINEERING

Defined for non-negative integers, the factorial function represents the product of all positive
integers up to a given integer n. It is denoted by the exclamation mark (!), indicating
multiplication of all positive integers up to that number. To calculate a number’s factorial,
multiply it by all descending integers down to 1. For example, 5! is 5 × 4 × 3 × 2 × 1, which
equals 120. (Cox, 2025)
Code to execute the Factorial series

n=6
fact =
for i in range(1, n + 1):
fact *= i
print (f" The factorial of {n} is {fact}")
Output-Factorial of 6 is 720

Figure 3:Factorial series

Programming ID: E157358


B Judes kolin Page 8 of 33
HIGHER NATIONAL DIPLOMA IN
SOFTWARE ENGINEERING

Technical challenges faced during the Development stage

• Integration Issues. Difficulty in integrating different systems or components

• Scalability Concerns

• Performance Optimization

• Security Vulnerabilities

• Technical Debt

• Testing and Quality Assurance

• Documentation Gaps

• Team Collaboration

Suitable Languages to implement Fibonacci and factorial algorithm

1. Python
Incredibly simple to read and write.
Big integers (factorials of large numbers) are supported by default.
supports both recursive and iterative methods.
Example: for loops, recursion, and list handling are straightforward.
2. C / C++
Very quick and effective execution.
Excellent for teaching memory management and recursion.
Example: Factorial using loops or recursion; Fibonacci using recursion or iterative loops.
able to carry out extensive calculations while taking integer overflow into account.
3. Java
object-oriented and frequently utilized in education.
supports iterative and recursive techniques.
able to manage large integers for large factorials by using the Big Integer class.
4. JavaScript
Perfect for applications that run on the web.

Programming E157358
B Judes kolin Page G of 33
HIGHER NATIONAL DIPLOMA IN
SOFTWARE ENGINEERING

able to use both recursive and iterative methods.


The output can be shown in a web browser.
5. C#
Like Java, it's object-oriented.
Iteration and recursion are supported.
able to use Big Integer to handle big numbers.

1.4 Big O Notation


Big O Notation is a way to describe how the time or space needed by an algorithm grows as the
size of the input increases. When it is said that a function f(n) is O(g(n)), it means that f(n) will not
grow faster than a certain multiple of another function g(n) once the input size is large enough. In
other words, f(n) is bounded by g(n) scaled up by some constant value for large inputs.

To simplify, if a constant and a starting point can be found where this relationship holds, it means
f(n) behaves in a predictable way compared to g(n) as the input size gets bigger. This helps in
understanding and comparing the efficiency of different algorithms, ensuring they perform within
acceptable limits for large amounts of data. (kumar, 2022)

1.5 Reasons for why python is suitable to implement Fibonacci and factorial algorithm
• Easy-to-Read Syntax
• Python code is incredibly clear and simple to comprehend.
• Python can express loops and recursion in very few lines, which is necessary when writing
Fibonacci or Factorial algorithms.
• Python naturally supports both Fibonacci and Factorial, and both can be implemented with
loops or recursion.
• Python's lists, tuples, and dictionaries facilitate the manipulation and storing of sequences,
such as the Fibonacci numbers.
• Python is compatible with a wide range of operating systems, including Windows, Linux, and
macOS.
• Python code is perfect for teaching and learning algorithms because it can run virtually
anywhere without requiring any changes.

Programming ID: E157358


B Judes kolin Page 10 of 33
HIGHER NATIONAL DIPLOMA IN
SOFTWARE ENGINEERING

1.6 Relationship between written algorithm and the code variant


1. Logic Translation: The algorithm serves as a high-level blueprint, outlining the steps and
logic required to solve a problem. The code variant, on the other hand, translates this logic
into a specific programming language, providing the detailed instructions for the computer
to execute.

2. Abstraction to Implementation: The algorithm abstracts the problem-solving process,


focusing on the sequence of steps and decision points. The code variant, however, provides
the concrete syntax and structure required by the chosen programming language to execute
the algorithm.

3. Precision and Detail: While the algorithm focuses on clarity and logic, the code variant
delves into the specifics of syntax, data structures, and control flow, ensuring that the
algorithm's steps are accurately and efficiently executed by the computer.

4. Language Specifics: The code variant is heavily influenced by the syntax, features, and
constraints of the chosen programming language, while the algorithm is generally
language-agnostic, focusing on the underlying logic.

In summary, the algorithm and its code variant are interconnected, with the algorithm providing
the high-level logic and the code variant translating this logic into a specific programming
language, incorporating language-specific syntax and features to execute the algorithm effectively.
([Solved] Examine the implementation of an algorithm in a suitable language - BTEC HND In
Software / Networking Engineering (business intelligenc) - Studocu, 2024)

Programming ID: E157358


B Judes kolin Page 11 of 33
HIGHER NATIONAL DIPLOMA IN
SOFTWARE ENGINEERING

Activity 02

2.1 Programming Paradigm


A programming paradigm is a basic programming style or approach that offers a collection of
ideas, concepts, and methods for creating and executing computer programs. It outlines the
methods for solving problems and expressing calculations, as well as the code's structure,
organization, and flow. (Liyan, 2023)

Figure 4:Programming Paradigms

Imperative Paradigm

Every step in the software development process is implicitly coded to address a problem under the
paradigm of imperative programming. Every operation in imperative programming is coded, and
the code itself outlines the solution to the issue. The majority of conventional programming
languages are essential. (techtarget, n.d.)

Programming ID: E157358


B Judes kolin Page 12 of 33
HIGHER NATIONAL DIPLOMA IN
SOFTWARE ENGINEERING

1. Procedural Programming

Under the paradigm of procedural programming, the program is organized around data-
manipulation procedures or functions. It stresses code reusability through the use of functions and
provides detailed instructions. Languages that adhere to this paradigm include C and Pascal.
(Liyan, 2023)

Characteristics of Procedural Programming


• Procedural Calls (Routines): Groups code into functions or reusable procedures that carry
out particular operations.
• Linear Program Flow: Consists of a sequential execution path with distinct start and
finish points for a sequence of computations.
• Top-Down Design: Makes complicated issues easier to manage and comprehend by
breaking them down into smaller, simpler steps.
• Global and Local Variables: Facilitates the storage of data that can be accessed within or
between procedures by using global and local variables.
• Modularity: By separating processes or functions, it enables code reuse and improved
organization.
• Parameter Passing: Encourages code modularity and flexibility by enabling data
exchange between procedures via parameters.
• State Mutability: Usually entails the direct manipulation of data and variables, which
frequently results in program-wide state changes.
2. Structured Programming

A programming paradigm known as structured programming places an emphasis on a methodical


approach to software development, with an emphasis on controlling complexity and enhancing
code quality. The methodical writing of computer programs and the organized management of
software throughout its life cycle are its two main components. Projects move through discrete
phases, from definition and construction to implementation and maintenance, thanks to a well-
defined process that is governed by the Information System Development Life Cycle (ISDLC).
(Structured Programming | EBSCO, 2021)

Programming ID: E157358


B Judes kolin Page 13 of 33
HIGHER NATIONAL DIPLOMA IN
SOFTWARE ENGINEERING

3. Object Oriented Programming


The idea of objects, which are instances of classes, is central to object-oriented programming.
Code is arranged into objects that contain information and actions. In addition to allowing for ideas
like inheritance, polymorphism, and encapsulation, OOP encourages modularity and reusability.
Popular languages that support OOP include Python, C++, and Java. (Liyan, 2023)
Characteristics of Object-Oriented Programming
• Polymorphism
It enables a single interface to represent a general class of actions following which different types
of objects can pass through the same interface. In other words, polymorphism treats different types
of objects as objects of a common superclass. Hence, it minimizes the need to duplicate code
because the program determines which meaning or usage is necessary for each execution.
• Encapsulation
This concept asserts that developers should contain important information inside an object for
minimal exposure. Coders bundle data and methods into a single unit or a defined class. In fact,
the principle does not permit access to other objects in order to prevent changes. This practice
provides effective security and prevents unintended data corruption.
• Abstraction
It is a way to simplify complex reality by modeling classes on essential properties and behaviors
relevant to the problem. In this principle, objects only reveal internal mechanisms that are relevant
for the use of other objects whereas unnecessary implementation code remains hidden. It helps
developers seamlessly make additional changes or additions over time.
• Communication Between Objects
It is one of the most important aspects of OOP because the execution of code depends on how
objects interact with each other. The objects send and receive messages (data) across the program,
often through method calls.
• Dynamic Binding
Dynamic binding, also known as late binding, allows developers to determine the selection of an
appropriate method at runtime rather than at compile time. This is particularly important in
polymorphic scenarios.

Programming ID: E157358


B Judes kolin Page 14 of 33
HIGHER NATIONAL DIPLOMA IN
SOFTWARE ENGINEERING

Declarative Paradigm
Declarative programming is a paradigm for computer programming in which the developer
specifies the goals of the program instead of the explicit methods by which it should achieve them.
This method has the advantage of making programming some parallel processing applications
easier and is naturally suited to the programmatic definition of formal logic systems. (What is
Declarative Programming?, n.d.)
1. Functional Programming
Functional programming stays away from mutable data and changing states by treating
computation as the evaluation of mathematical functions. Higher-order functions, pure functions,
and immutability are emphasized. The evaluation of expressions is the main focus of FP languages.
Languages that adhere to this paradigm include Haskell, Lisp, and Erlang. (Liyan, 2023)
2. Logic programming

Logic programming is a paradigm for computer programming in which program statements use a
system of formal logic to express facts and rules about problems. Rules are expressed as head-and-
body logical clauses, such as "H is true if B1, B2, and B3 are true." Like rules, facts have no body;
for example, "H is true." (Programming, 2019)
Event Driven Programming

Driven by Events The foundation of programming is the idea of events and event handlers. It
entails structuring a program's flow according to events and responses to those events. This
paradigm is frequently used in asynchronous and GUI programming. One language that
prominently supports event-driven programming is JavaScript. (Liyan, 2023)

Characteristics of Event driven Programming

• Event Handlers: Event-driven programs are structured around event handlers, which are
functions or methods that are executed in response to specific events. These event handlers
define the behavior of the program when a particular event occurs.
• Event Loop: Event-driven programs typically have an event loop that continuously waits
for events to occur. When an event is detected, the corresponding event handler is invoked to
handle the event.

Programming ID: E157358


B Judes kolin Page 15 of 33
HIGHER NATIONAL DIPLOMA IN
SOFTWARE ENGINEERING

• Asynchronous Execution: Event-driven programming allows for asynchronous


execution, meaning that multiple events can be processed concurrently. This allows the program
to respond to multiple events simultaneously, improving responsiveness and efficiency.
• Event-Driven Architecture: Event-driven programs often follow an event-driven
architecture, where components or modules communicate with each other by sending and
receiving events. This loose coupling between components allows for flexibility and modularity
in the program design.
• Event Dispatching: In event-driven programming, events are dispatched or triggered by
external sources, such as user interactions, system notifications, or timers. These events are then
processed by the program to trigger the appropriate event handlers.
• Event Propagation: Events in event-driven programming can propagate through a
hierarchy of objects or components. This allows events to be handled at different levels of the
program's structure, enabling more granular control over event handling.
• Event Synchronization: Event-driven programs often require synchronization
mechanisms to handle concurrent events. Techniques such as locks, semaphores, or message
queues can be used to ensure proper synchronization and prevent race conditions.

Programming ID: E157358


B Judes kolin Page 16 of 33
HIGHER NATIONAL DIPLOMA IN
SOFTWARE ENGINEERING

2.2 Example code for Procedural, Object oriented and Event driven Paradigm
Procedural Paradigm-Login system

Figure 5:Example code for procedural paradigm

Programming ID: E157358


B Judes kolin Page 17 of 33
HIGHER NATIONAL DIPLOMA IN
SOFTWARE ENGINEERING

Activity 03

3.1 Written Algorithm for calculating the cost of training fees


Step 1-Start
Step 2-Get Athlete ID and Athlete Name, Training Start Date, Training End Date, and Total
Amount for Training, Private Coaching Start Date, Private Coaching End Date, and Total
Amount for Coaching.
Step 3-Calculate Training Duration (days)
days = Training End - Training Start
Step 4-Convert to Months & Calculate Monthly Cost
training months = (days / 30)
training cost per month = Total Amount / training months
Step 5-Calculate Private Coaching Duration (days)
days = Private End - Private Start
Convert to Months & Calculate Monthly Cost
private months = (days / 30)
private cost per month = Total Amount / private months
Step 6- Each Month in Training Period
Add training cost per month to Monthly Cost[month]
Step 7- Each Month in Private Coaching Period
Add private cost per month to Monthly Cost
Step 8-If Both Exist in Same Month → Sum Amounts
Step 9- Display Monthly Training Fees Report
(Athlete ID, Athlete Name, Month, Year, Total Monthly Fees)
Step 10-End

Programming ID: E157358


B Judes kolin Page 18 of 33
HIGHER NATIONAL DIPLOMA IN
SOFTWARE ENGINEERING

Flow chart

Start

Input Records
(Athlete ID, Name, Training Start/End, Training
Amount, Private Start/End, Private Amount)

Do

Training Days = Training End Date – Training Start Date + 1

Do

Training Months = (Training Days / 30)

Do

Training Cost Per Month = Total Training Amount / Training


Months

Programming ID: E157358


B Judes kolin Page 1G of 33
HIGHER NATIONAL DIPLOMA IN
SOFTWARE ENGINEERING

Do

Private Days = Private End Date – Private Start Date + 1

Do

Private Months = (Private Days / 30)

Do

Private Cost Per Month = Total Private Amount / Private


Months

Do

Monthly Cost+= Training Cost Per Month

Do

Monthly Cost+= Private Cost Per Month

Output=Cost of training fees

END

Programming ID: E157358


B Judes kolin Page 20 of 33
HIGHER NATIONAL DIPLOMA IN
SOFTWARE ENGINEERING

3.2 Design of the systems


Login Form

Figure c:Login Form

Programming ID: E157358


B Judes kolin Page 21 of 33
HIGHER NATIONAL DIPLOMA IN
SOFTWARE ENGINEERING

Dashboard

Figure 7:Dashboard

Programming ID: E157358


B Judes kolin Page 22 of 33
HIGHER NATIONAL DIPLOMA IN
SOFTWARE ENGINEERING

Athlete Form

Figure 8:Athlete form

Programming ID: E157358


B Judes kolin Page 23 of 33
HIGHER NATIONAL DIPLOMA IN
SOFTWARE ENGINEERING

Coaching form

Figure S:Coaching form

Competition Form

Figure 10:Competition form


HIGHER NATIONAL DIPLOMA IN
SOFTWARE ENGINEERING

3.3 Integrated Development environment (IDE)

An integrated development environment (IDE) is a software suite that consolidates basic tools
required to write and test software. Developers use numerous tools throughout software code
creation, building and testing. Development tools often include text editors, code libraries,
compilers and test platforms. Without an IDE, a developer must select, deploy, integrate and
manage all these tools separately. An IDE combines many of those development tools together in
a single graphical user interface (GUI). The IDE is designed to simplify software development and
can identify and minimize coding mistakes and typos. Some IDEs are open source, while others
are commercial offerings. An IDE can be a standalone application, or it can be part of a larger
software package. (techtarget, n.d.)

Coding for Login to the Dashboard

Figure 11:Coding For Login

Programming ID: E157358


B Judes kolin Page 25 of 33
HIGHER NATIONAL DIPLOMA IN
SOFTWARE ENGINEERING

3.4 Features of Visual Studio IDE for KickBlast Judo Development


Project and Solution Management

Project templates: Easy setup for console apps, WinForms, or WPF.

Files, classes, and resources are arranged hierarchically in Solution Explorer.

Benefit: Preserves the KickBlast system's modularity and structure for future growth.

Error List & Build Tools

Real-time compilation errors & warnings: Immediate feedback for syntax or reference errors.
Build Output: Shows detailed messages about compilation issues.
Benefit: Prevents runtime crashes and ensures smooth build cycles.
Database Tools & Integration

Server Explorer / SQL Server Object Explorer: Connect to databases, view tables, and design
queries.

Data Binding Tools: Bind data to grids and forms in WPF/WinForms.


Benefit: Simplifies development of athlete records, billing, and report management.

3.5 Advantages of Visual Studio IDE for KickBlast Judo System Development
• One-Stop Development Environment-integrates database tools, a code editor, a GUI
designer, a debugger, and project management into a single program.
Because developers don't require multiple tools, setup time and integration problems are
decreased.
• Code & IntelliSense Suggestions-allows variables, classes, methods, and parameters to be
automatically completed, speeds up development and lowers coding errors, guarantees that
GUI, database, and business logic APIs and methods are used correctly.
• Tools for GUI Design-
-WinForms/WPF drag-and-drop interface designers enable quick form, button, grid, and
report creation.
makes it easier to create invoice summaries, billing interfaces, and athlete registration forms.
• Effective Debugging-enables evaluating expressions, inspecting variables, stepping through

Programming ID: E157358


B Judes kolin Page 26 of 33
HIGHER NATIONAL DIPLOMA IN
SOFTWARE ENGINEERING

code, and setting breakpoints.


assists in locating and correcting logical mistakes in computations (such as monthly fees and
private coaching hours).
helps create applications that are reliable and error-free.
• Management of Projects and Solutions-arranges various resources, classes, and forms in a
methodical manner.
enables the database, user interface, and business logic layers to be developed in modular
fashion.

Programming ID: E157358


B Judes kolin Page 27 of 33
HIGHER NATIONAL DIPLOMA IN
SOFTWARE ENGINEERING

Activity 04

4.1 Debugging

Debugging is the process of tracking down and eliminating issues in software applications such as
bugs and vulnerabilities that may arise due to bad coding, architecture, or implementation. It is
commonly associated with the use of tracing and analysis tools that can execute our code step-by-
step and allow us to examine the program state while suspended.

Debugging can also be achieved in many other ways, including instrumenting our code to produce
extra artifacts, such as logging, executing in small, controlled, units (testing), or examining the
code statically (code review and static analysis). (What is Debugging? Types & Tools Definition
Guide, n.d.)

4.2 Steps in debugging


1 Identify the Error: A bad identification of an error can lead to wasted developing time. It is
usual that production errors reported by users are hard to interpret and sometimes the
information we receive is misleading. It is import to identify the actual error.
2 Find the Error Location: After identifying the error correctly, you need to go through the
code to find the exact spot where the error is located. In this stage, you need to focus on
finding the error instead of understanding it.
3 Analyze the Error: In the third step, you need to use a bottom-up approach from the error
location and analyze the code. This helps you in understanding the error. Analyzing a bug has
two main goals, such as checking around the error for other errors to be found, and to make
sure about the risks of entering any collateral damage in the fix.
4 Prove the Analysis: Once you are done analyzing the original bug, you need to find a few
more errors that may appear on the application. This step is about writing automated tests for
these areas with the help of a test framework.
5 Cover Lateral Damage: In this stage, you need to create or gather all the unit tests for the
code where you are going to make changes. Now, if you run these unit tests, they all should
pass.
6 Fix & Validate: The final stage is the fix all the errors and run all the test scripts to check if
they all pass.

Programming ID: E157358


B Judes kolin Page 28 of 33
HIGHER NATIONAL DIPLOMA IN
SOFTWARE ENGINEERING

4.3 Coding Standard

Coding standards, also known as coding guidelines or programming style guides, are rules and
conventions that developers follow when writing code. These rules define the code characteristics
necessary to maintain a uniform codebase and facilitate collaboration among developers. (Codacy,
2023)

Figure 12:Coding Standards

Roles of Coding standards for Individual Development

• Enhanced Code Quality: Standards encourage consistent code structure and formatting,
leading to more reliable and efficient code and reducing bugs.

• Improved Readability and Maintainability: Adhering to standards makes code easier


for you to understand later, even when working on complex projects or returning after a
break.

• Increased Code Reusability: Standardized code components are more likely to be reusable,
saving time and effort in future projects.

• Deeper Understanding of Best Practices: Following standards provides a practical way to


learn and reinforce good programming habits and sound techniques.

• Faster Troubleshooting: Consistent code makes it quicker to locate and fix errors in your
own code.

Programming ID: E157358


B Judes kolin Page 2G of 33
HIGHER NATIONAL DIPLOMA IN
SOFTWARE ENGINEERING

• Reduced Security Concerns: Standards often include rules for writing secure code,
preventing common vulnerabilities and strengthening your applications.

• Professional Growth: Developers who consistently apply coding standards demonstrate


professionalism, leading to improved code quality and overall productivity.

• Facilitates Code Reviews and Feedback: Code that follows established standards is easier
for others to review, leading to quicker and more effective feedback on your work.

• Smoother Collaboration: While a team effort, individuals who adhere to standards find it
easier to contribute to and understand code written by others, improving collaboration.

Programming ID: E157358


B Judes kolin Page 30 of 33
HIGHER NATIONAL DIPLOMA IN
SOFTWARE ENGINEERING

Benefits for Teams:

1 Consistency: Coding standards ensure that all team members follow a consistent coding
style. This makes it easier for team members to understand and review each other's code,
leading to improved collaboration and reduced time spent on code reviews.
2 Readability: By enforcing consistent formatting and naming conventions, coding standards
enhance code readability. This makes it easier for team members to understand and maintain
the codebase, even when multiple developers are working on the same project.
3 Maintainability: Following coding standards promotes code that is modular, reusable, and
well-structured. This improves the maintainability of the codebase, as it becomes easier to
debug, refactor, and extend the code in the future.
4 Reduced Errors: Coding standards often include guidelines for error handling, input
validation, and security practices. By adhering to these standards, teams can reduce the
likelihood of introducing common coding errors and vulnerabilities.
5 Onboarding and Scalability: Coding standards provide a clear set of guidelines for new team
members, making it easier for them to understand and contribute to the codebase.
Additionally, adhering to coding standards facilitates scalability, as new developers can
quickly understand and work with existing code.

Benefits for Individuals:

1 Code Quality: Following coding standards helps individuals write cleaner, more organized,
and more efficient code. This improves the overall quality of their work and reduces the
likelihood of introducing bugs or issues.
2 Professional Development: Adhering to coding standards helps individuals develop good
coding habits and improve their skills. By following best practices, individuals can enhance
their understanding of software development principles and become better programmers.
3 Code Reusability: Coding standards often emphasize modular and reusable code. By
following these standards, individuals can write code that is easier to reuse in future projects,
saving time and effort.
4 Collaboration: When individuals follow coding standards, it becomes easier for them to
collaborate with other developers. Consistent code formatting and naming conventions make

Programming ID: E157358


B Judes kolin Page 31 of 33
HIGHER NATIONAL DIPLOMA IN
SOFTWARE ENGINEERING

it simpler for others to understand and work with their code.


5 Code Reviews: Following coding standards makes code reviews more efficient and effective.
Code that adheres to standards is easier to review, leading to faster feedback cycles and
improved code quality.

Coding Standards Used in the KickBlast Judo System

1. Naming Conventions
• Classes and Interfaces: (e.g., Athlete, BillingService)
• Methods and Functions: (e.g., Calculate Monthly Fee(), Get Weight Comparison())
• Variables and Parameters: (e.g., private Coaching Hours, current Weight Kg)
• Constants: UPPER_CASE or in a static class (e.g., MAX_COACHING_HOURS,
Competition Fee)
• Event Handlers: Event suffix added (e.g., btnCalculate_Click)
2. Code Formatting
• 4-space indentation throughout the project.
• Curly braces {} consistently placed on new lines.
• Maximum line length of 120 characters for readability.
• Blank lines to separate logical code blocks for clarity.

Programming ID: E157358


B Judes kolin Page 32 of 33
HIGHER NATIONAL DIPLOMA IN
SOFTWARE ENGINEERING

4.4 Importance of coding standards for Individual and Teamwork

Coding standards are crucial rules that guarantee software code is readable, consistent, and
maintainable. By making code easier to comprehend, debug, and extend, coding standards help
individual developers become more efficient. It lowers errors, eliminates superfluous complexity,
and offers a clear framework that facilitates code revisits and improvements over time.

Coding standards are even more important for teams. By establishing a common coding style,
clearing up misunderstandings, and minimizing merge conflicts in version control systems, they
facilitate effective collaboration between numerous developers. Standards facilitate code reviews,
improve communication, and guarantee that everyone on the team can quickly understand, test,
and maintain each other's code. As a result, software quality improves, defects decrease, and
project handovers go more smoothly.

Programming ID: E157358


B Judes kolin Page 33 of 33

You might also like