HND Computing Programming Report
HND Computing Programming Report
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.
Student Declaration
I certify that the assignment submission is entirely my own work and I fully understand the consequences of plagiarism. I declare that the
work submitted for assessment has been carried out without assistance other than that which is acceptable according to the rules of the
specification. I certify I have clearly referenced any sources and any artificial intelligence (AI) tools used in the work. I understand that
making a false declaration is a form of malpractice.
Student’s signature
Grading grid
P1 P2 P3 P4 P5 P6 M1 M2 M3 M4 D1 D2 D3 D4
❒ Summative Feedback: ❒ Resubmission Feedback:
TABLE OF FIGURE
Figure 0-1: Algorithm .................................................................................................................................................... 9
Figure 0-2Example of Algorithm ................................................................................................................................. 10
Step 1: prepare Eggs 1 ................................................................................................................................................ 11
Step 2: Add water ....................................................................................................................................................... 12
Step 2: Remove eggs ................................................................................................................................................... 12
Figure 0-3: Example Compare Algorithm.................................................................................................................... 13
Figure 0-4: Step1 ......................................................................................................................................................... 14
Figure 0-5: Step 2 ........................................................................................................................................................ 14
Figure 0-6: Step 3 ........................................................................................................................................................ 15
Figure 0-7: Step 4 ........................................................................................................................................................ 15
Figure 0-8: Debugg ...................................................................................................................................................... 18
Figure 0-9: Example Algorithm ................................................................................................................................... 22
Figure 0-11:Example Algorithm .................................................................................................................................. 23
Figure 0-12:Example Algorithm .................................................................................................................................. 24
Figure 0-13: [Link] Asm1 ......................................................................................................................................... 25
Figure 0-14 : ASM 1 ..................................................................................................................................................... 26
Figure 0-15: ASM 1...................................................................................................................................................... 26
Figure 0-17: ASM 1...................................................................................................................................................... 27
Figure 0-18: ASM 1...................................................................................................................................................... 27
Figure 0-19: ASM 1...................................................................................................................................................... 27
Figure 0-20: BILL.......................................................................................................................................................... 28
Figure 0-21: RESULT .................................................................................................................................................... 28
Seqence of In struction 1 ............................................................................................................................................ 29
Function ...................................................................................................................................................................... 30
Global Data ................................................................................................................................................................. 30
Control ........................................................................................................................................................................ 31
Moduarity ................................................................................................................................................................... 31
Object programming ................................................................................................................................................... 33
Encapsulation.............................................................................................................................................................. 35
Polymorphism ............................................................................................................................................................. 36
Code ASM 2 ................................................................................................................................................................. 41
Code ASM 2 ................................................................................................................................................................. 41
Code ASM 2 ................................................................................................................................................................. 42
Code ASM 2 ................................................................................................................................................................. 44
Code ASM 2 ................................................................................................................................................................. 44
Code ASM 2 ................................................................................................................................................................. 45
Code ASM 2 ................................................................................................................................................................. 46
Code ASM 2 ................................................................................................................................................................. 47
Code ASM 2 ................................................................................................................................................................. 48
Code ASM 2 ................................................................................................................................................................. 48
Code ASM 2 ................................................................................................................................................................. 49
STEP 1: Set breakpoint ................................................................................................................................................ 56
STEP 2: Debugging process ......................................................................................................................................... 56
STEP 2: Debugging process ......................................................................................................................................... 56
lOG IN FORM ............................................................................................................................................................... 57
Figure 0-22: PASCAL CASE........................................................................................................................................... 60
Figure 0-23: CAMEL CASE ........................................................................................................................................... 60
Figure 0-24: ALL CAP ................................................................................................................................................... 60
Figure 0-25: CLASS ...................................................................................................................................................... 61
Figure 0-26: LAYOUT STANDARD ................................................................................................................................ 62
Figure 0-27: COMMENT STANDARD ........................................................................................................................... 63
Introduce:
I have applied for a post as a trainee with a software development company and have been invited
for an interview. I have been asked to demonstrate your problem solving and basic programming
skills. To do this I have to prepare a report on using algorithms to solve problems. In this
assignment I will explain what is algorithm, and ouline process in building application.
Vocational Scenario:
Part1 : Provide a definition of what an algorithm is and outline the process in building an
application.
2:The Charactericstics
- An algorithm is a properly defined sequence of steps or commands designed to clear up a
selected problem or perform a selected task. It is a scientific method to problem-fixing that
outlines the important movements or operations to be accomplished in a clean and
unambiguous manner. Algorithms can be expressed in various bureaucracy, along with
natural language, pseudocode, flowcharts, or programming languages.
4: The example.
Part 2: Analyse the process of writing code, including the potential challenges faced.
A. Steps to create a program
Step 1: Click on "Visual Studio", and select "Create a new project".
Step 2: Then go to the search bar and type "Console App(Net)", then select.
Step 4: Finally the program is successfully created. And can write lines of code.
- The first step in the program development cycle is to define the problem. This is done by
identifying and understanding why is the program or software developed. Usually, it’s in the
form of a program specification. In larger development teams, the system analyst is
responsible for this step.
- The program specification defines the problem statement, what is required from the
software development team, and what is the output of the solution to the problem they’ve
been tasked with solving.([Link])
- Once the design process is complete, converting algorithm to a program by selecting any one
of the high – level languages that is suitable for the problem.
- Coding is generally a very small part of the entire program development process and also a
less time consuming activity in reality.
- In this process we identify and eliminate all the syntax errors related to spelling, missing
commas, undefined labels etc.
- For effective coding some of the guide lines are to be follow:
Use of meaningful names and labels of variables
Simple and clear expressions
Modularity with emphasis on making modules generalized
Making use of comments and indenting the code properly
Avoiding jumps in the program to transfer control
Testing is the process of executing a program with the deliberate intent of finding
errors
Testing is needed to check whether the expected output matches the actual output
Testing is done during every phase of program development
Initially, requirements can be tested for its correctness
Then, the design (algorithm, flow charts) can be tested for its exactness and efficiency
2. Compilation errors
Syntax errors: This is a very common error that I encounter, and can be difficult to diagnose
if the code is large or the error message is unclear.
Link errors: These errors occur when the compiler cannot find the required functions or
objects. These errors can be frustrating to troubleshoot, especially if the error message is
unclear or if dependencies are not linked correctly.
character).
Figure 0-12:Example Algorithm
I process the input "name". I use a function with type "bool" named "corectName()" . Combined with the
"while" loop . This step is to enter the customer's name and can re-enter if the character is wrong
Step2:
I process the input data "water this month, water last month", with the data type "double". I use the
"[Link]" command to turn "input1,2" into double numbers. Combined with the "while" loop. This step is to
enter the quantity and can re-enter if the character is wrong.
I set the condition (this month's water > last month's water) to be able to calculate the "amount of water
used". amount of water used = this month's water - last month's water.
Step4:
I use "while" to loop and print out the statements, customer types for the user to choose. Along with the
input are numbers from 1 -4 in the keyboard.
Step5:
I use "switch-case" statement to select each case, especially in case 1 "household customer" there will be 4
more cases about number of people to calculate separate price.
Difficulties:
Syntax Errors
- Syntax errors occur when your code does not conform to the C# language syntax rules.
Debugging Issues
1.1: Definition: Procedural programming is a programming paradigm built around the idea
that programs are sequences of instructions to be executed. They focus heavily on splitting
up programs into named sets of instructions called procedures, analogous to functions. A
procedure can store local data that is not accessible from outside the procedure's scope and
can also access and modify global data variables.
Some of the earliest procedural programming languages were Fortran and ALGOL. Ideas
developed in ALGOL are very much relevant and prevalent in modern-day programming
languages.
1.2: Main features of procedural programming:
a) Sequence of Instructions:
- The top-down approach is a way of dividing and subdividing the procedure into a sequence
of commands. As you break down the commands and get further through the sequence, the
instructions become more specific. The top-line level of commands is often a broad task
with little detail, for example. As you separate the command into smaller parts, each part
becomes increasingly detailed and specific until there's a set of specific commands that let
the program achieve the top-line objective.
Seqence of In struction 1
b) Procedures (Functions):
- Sometimes developers code new instructions and functions into their programs. You may
use common technology commands and functions frequently when writing a program. Pre-
defined functions are common, ready-to-use functions. Developers identify them by name,
and they're generally part of a larger programming library that professionals can access
rather than programming a new function. Back-end developers often use these pre-defined
resources as blueprints.
Function
c) Global Data:
- Global variables are the opposite of local variables. Although local variables have a limited
scope of one subprogram, a global variable piece of data is visible in all subprograms across
the wider program. Developers can therefore use a global variable in all functions of the
program.
Global Data
d) Control Structures:
- Procedural code relies heavily on common control flow structures like loops, conditionals
(if-else), and function calls.
Control
e) Modularity:
- Modularity relates to the top-down approach of breaking down overall tasks into smaller
tasks and commands. It is the programming approach of having two different tasks
grouped together under a wider process. The proper functioning of this process depends
on these two tasks in the shared group. Both finish at the same time to complete a more
prominent task first. This lets developers prioritise tasks within their procedural sequence.
Moduarity
- Simplicity: For simple, linear tasks or small programs, procedural programming can
be straightforward and easy to implement.
- Efficiency: Since the flow of control is linear and typically directly tied to the
sequence of operations, procedural programs can often be more efficient than other
paradigms, especially for smaller applications.
b. Disadvantages:
- The application is large or complex, and you need a more structured approach to
organizing and maintaining the code.
- Data and behaviors are inherently tied and should be grouped together (for
instance, in the case of GUI applications or complex simulations).
- Code reuse and scalability are priorities, as OOP and event-driven models better
support these goals.
2. Object-Oriented Programming (OOP) Paradigm.
Object programming
Encapsulation
Polymorphism
- The word polymorphism means having many forms. In simple words, we can define
polymorphism as the ability of a message to be displayed in more than one form. For
example, A person at the same time can have different characteristics. Like a man at
the same time is a father, a husband, an employee. So the same person posses
different behavior in different situations. This is called polymorphism.
2.3: Advantages and Disadvantages of Object-Oriented Programming.
a) Advantages:
Modularity: Software is organized into distinct classes and objects, making it easier to
understand and modify.
Reusability: Code can be reused through inheritance, reducing redundancy.
Maintainability: Changes to one part of the system can be made without affecting
others, especially if encapsulation is used properly.
Scalability: OOP allows systems to be extended and new functionality to be added with
minimal disruption to existing code.
b) Disadvantages:
Complexity: OOP can introduce unnecessary complexity for small projects or for those
who are unfamiliar with the paradigm.
Performance: The overhead introduced by objects and method calls may impact
performance, especially in resource-constrained environments.
5. Asynchronous Programming:
- Event-driven programming often involves asynchronous operations, where the program
can respond to multiple events without waiting for one task to finish before starting
another. This is particularly useful in GUI applications or systems that require
responsiveness, such as web servers.
a) Graphical User Interfaces (GUIs): In GUI applications, users interact with the system by
clicking buttons, selecting menu options, or typing in fields. The program responds to
these events by triggering appropriate functions or methods.
b) Real-time Systems: In real-time applications like gaming or simulations, the system must
respond to user input, changes in the environment, or other real-time data events
continuously.
c) Web Servers: Event-driven programming is used in handling HTTP requests
asynchronously. The server waits for incoming requests and handles them as they come
in.
d) Embedded Systems: Embedded systems with limited resources often rely on event-
driven programming to handle sensor input, button presses, or other hardware events.
- Responsiveness: Since the program reacts to user input or external events, it can be very
responsive. For example, in a GUI application, the program can continue to function while
waiting for user actions.
- Scalability: Event-driven systems can handle many different types of events and can scale
well when dealing with multiple concurrent users or devices.
- Flexibility: Event-driven programming allows for the easy addition of new events and
handlers, making it ideal for dynamic, real-time applications.
- Simplicity in GUI Applications: EDP makes it easier to handle user interactions like
mouse clicks and key presses. These events can be managed in a natural and intuitive way
by defining separate handlers for each type of interaction.
b) Disadvantages:
- Complexity in Event Management: In large applications, managing events and event
handlers can become complex, especially when events are chained or need to interact in
specific sequences.
- Harder to Debug: Since the flow of the program is non-linear and asynchronous, it can be
harder to trace program execution and debug issues related to event handling.
- Concurrency Issues: In systems that handle many events at the same time (e.g., web
servers), proper management of concurrency and synchronization is necessary to avoid
race conditions or inconsistent states.
Code ASM 2
To log in the account I wrote the code in “LOGIN” button, with “CLICK” event:
Code ASM 2
In this form I will set the corresponding variables to save: name, number of countries,
customer type, ....
Code ASM 2
Create the GetPriceUnit() function to determine the price for each customer type and
number of users.
CustomerType == 0 mean that User selects customer type "Household".
If the number of people < 10 then unit value = 5973.
If the number of people < 20 then unit value = 7052.
If the number of people < 30 then unit value = 8699.
If the number of people > 30 then unit value = 15929.
CustomerType == 1 mean that User selects customer type " Administrative".
The unit value = 9955.
CustomerType == 0 mean that User selects customer type " Production units".
The unit value = 11615.
CustomerType == 0 mean that User selects customer type " Business services".
The unit value = 22068.
Code ASM 2
Code ASM 2
First I assign the value of cboType = SelectedIndex.
“SelectedIndex” is an integer representing the selected position in the comboBox.
If (SelectedIndex ==0) means selecting the first position in ComboBox(HouseHold),
then the 2 items "lblNumberPeople", "txtPeople" appear.
[Link] = true;
[Link] = true;
Otherwise these 2 items will disappear if the user selects another position in the
ComboBox.
[Link] = false;
[Link] = false;
Code ASM 2
This is the code line that can display the bill as a notification through "MessagaBox".
string nameCustomer = [Link];
string costumerPeople = [Link];
nameCostumer get value from txtName, this is cuxtomer names.
costumerPeople get vaue from txtPeople, this is the number of people in household.
double lastMonth = [Link]([Link]);
double thisMonth = [Link]([Link]);
“Parse” has the effect of coercing the value to "double"
“lastMonth”: Converts the value from the txtLastMonth input cell (amount or index of the
previous month) to a double data type.
“thisMonth”: Converts the value from the txtThisMonth input cell (amount or index of this
month) to a double data type.
int customerType = [Link];
customerType gets the selected index (ie customer type), SelectedIndex returns the selected
index.
0 = household
1 = Administrative
2 = Production units
3 = Business services
Code ASM 2
This is when the user selects "Yes" in the confirmation dialog. It will then run the commands
to save the values and print them to the DataGridView.
Code ASM 2
for(int i = index; i<n; i++)
Loop through all elements from index to n (the size of the array). This means starting from
the position to be deleted (stored in the index variable), and deleting all elements from there
until the last element in the list.
name[i] = name[i+1];
type[i] = type[i+1] ;
lastMonths[i] = lastMonths[i+1] ;
thisMonths[i] = thisMonths[i+1] ;
numberPeople[i] = numberPeople[i+1] ;
usage[i] = usage[i+1] ;
totalCost[i] = totalCost[i+1] ;
The values in the array will be shifted forward (incremented) to "delete" the element at
position i. For example, name[i] = name[i + 1]; will replace the name at position i with the
name at the next position (i + 1). Similarly, other values in the arrays such as type,
LastMonths, thisMonths, numberPeople, Usage, TotalCost are also treated similarly.
n --;
It shows that 1 element has been subtracted.
Code ASM 2
This loop iterates over all elements in the name[] array (the array containing the names of
the invoices).
n is the number of invoices (or the number of elements in the respective arrays).
name[i] != null: Ensures that the invoice name is not null.
name[i].IndexOf(search, [Link]) != -1: Checks whether the
invoice name (name[i]) contains the search keyword.
IndexOf(search, [Link]) returns the position of the keyword
in the invoice name. If not found, it returns -1. This checks whether the search keyword
appears in the invoice name, regardless of upper or lower case.
2. Analyze the common features that a developer has access to in an IDE.
Definition: An Integrated Development Environment (IDE) is a software application that
provides developers with a comprehensive set of tools for writing, testing, and debugging
code. It is designed to make the software development process more efficient by combining
several essential features into one platform.
- Visual Studio Code (VS Code): A highly customizable, open-source IDE from Microsoft,
known for its lightweight nature and support for multiple languages.
- Eclipse: Popular for Java development but also supports other languages through plugins.
- IntelliJ IDEA: A widely-used IDE for Java, Kotlin, and other languages, known for its
powerful code assistance and smart refactoring features.
- PyCharm: A Python-specific IDE, designed to streamline Python development with built-
in tools for testing, debugging, and package management.
- Xcode: The official IDE for macOS and iOS development, used for building apps in Swift
and Objective-C.
- Efficiency: All the tools you need are in one place, which saves time spent switching
between different applications.
- Error Reduction: Features like syntax highlighting, auto-completion, and real-time error
checking help reduce mistakes.
- Learning Curve: Many IDEs offer features that make it easier for beginners to get started,
such as tutorials, templates, and simple debugging tools.
- Productivity: Built-in automation features like code refactoring, linting, and debugging
tools streamline development, enabling developers to focus more on writing good code.
- Code Editor: A text editor optimized for writing source code, which often includes
features like syntax highlighting, auto-completion, and code folding to help developers
write code more efficiently and with fewer errors.
- Compiler/Interpreter: IDEs typically include a built-in compiler (for compiled languages
like C, C++) or an interpreter (for interpreted languages like Python), allowing you to
convert your source code into executable programs or run code directly from the IDE.
- Debugger: A tool to test and troubleshoot code by running it in a controlled environment,
allowing you to step through the program, inspect variables, and find bugs.
- Build Automation Tools: IDEs can integrate with tools that automate the process of
compiling and linking code, which can speed up development, especially for large projects.
- Version Control Integration: Many modern IDEs offer built-in integration with version
control systems like Git, making it easier to track changes in your codebase, collaborate
with others, and manage different versions of your software.
- User Interface (UI) Tools: For creating and designing graphical user interfaces (GUIs),
some IDEs offer drag-and-drop UI builders.
- Project Management: IDEs often support managing large codebases with project and file
organization, making it easier to navigate through files, libraries, and dependencies.
Part 6: Determine the debugging process and explain the importance of a coding
standard
1. Explain the debugging process and explain the debugging facilities available in
the IDE.
What is debugging ?
Debugging is an essential part of software development because it helps ensure that your code
runs as intended and meets its requirements. Bugs or errors are a natural part of
programming, and debugging is the process of finding and fixing these issues to make sure the
software works correctly.
Step Through
- Step Over: This allows you to move over a line of code without entering any function calls it may
contain. This is useful when you want to skip over functions that you know are working fine.
- Step Into: This allows you to dive into function calls and observe how the code executes
inside those functions. This is essential for tracking down bugs in specific functions or
methods.
- Step Out: This lets you exit from the current function and return to the calling function. It’s useful for
quickly moving out of deeply nested functions.
Variable Inspection
- Watch Variables: You can watch the values of specific variables during execution. The IDE will
show you how their values change at different points in the program. This is helpful for
detecting logical errors.
- Hover to Inspect: Many IDEs allow you to hover over variables while the program is paused,
displaying the current value of that variable.
- Variable Scope: You can view the scope of variables—local, global, or parameters of a
function—so you can better understand where the values are coming from and how they
change.
Call Stack
- Viewing the Call Stack: The call stack shows the sequence of function calls that led to the
current point in the program. It can help identify which function is responsible for an issue,
particularly in recursive or deeply nested calls.
- Call Stack Navigation: You can navigate through the stack to examine previous function calls,
making it easier to trace how the program reached a certain point.
Logging and Output Windows
- Console Output: IDEs often provide a built-in terminal or console window where you can
view print statements, logs, or error messages generated by your program.
- Logging: You can log information such as variable values, execution paths, or custom
messages. This is useful for tracking down issues that only happen under certain conditions.
c) Benefits of Debugging.
- Improves Code Quality: Debugging helps identify and fix errors, ensuring the software
functions correctly and reliably.
- Enhances Developer Understanding: It allows developers to understand the code’s behavior,
pinpoint issues, and improve logic.
- Saves Time and Resources: Early detection of bugs leads to faster problem resolution,
reducing future testing and rework.
- Optimizes Performance: Debugging helps identify inefficiencies like memory leaks and
bottlenecks, improving the overall performance of the software.
- Reduces Future Errors: Fixing existing issues often prevents similar bugs from appearing
later, leading to cleaner, more maintainable code.
- Increases Productivity: By resolving issues quickly, developers can focus on adding features
and enhancing the product rather than spending time troubleshooting later.
- Improves User Experience: Debugging ensures the software runs smoothly without crashes
or errors, leading to a better user experience.
We can easily see that when I enter username = "phong", and password = "123", it is wrong
with the condition, so the program automatically "oversteps" to the "else" condition.
2. Examine how the debugging process can be used to help develop more secure, robust
applications.
1. Identifying and Fixing Security Vulnerabilities
Debugging helps me detect issues that can create security vulnerabilities:
- Buffer Overflow: Using debugging tools such as breakpoints and memory watches,
engineers can detect buffer overflows that could be exploited by attackers to execute
malicious code.
- SQL Injection Vulnerabilities: Debugging allows developers to examine database queries
sent from the application. By examining input and output, they can detect points where
user input is not properly sanitized and could be vulnerable to SQL Injection.
- XSS (Cross-Site SAcripting): Debugging allows developers to monitor how user input is
processed and displayed, helping to ensure that untrusted data is properly sanitized or
encoded to prevent XSS attacks.
2. Ensuring Correctness and Reliability
Debugging helps find logical errors, race conditions, and unhandled edge cases, ensuring that
the application behaves correctly under different circumstances:
- Crash Prevention: Debugging tools help developers pinpoint crashes and unhandled
exceptions by providing stack traces and detailed error logs, enabling the application to be
more stable and crash-resistant.
- Concurrency Issues: In multi-threaded applications, debugging allows developers to
observe thread synchronization and detect race conditions, which can cause unpredictable
behavior, crashes, or corruption of critical data.
- Memory Leaks: Debuggers can monitor memory usage to track down memory leaks and
unfreed memory, which could cause performance degradation or crashes over time,
resulting in less robust applications.
- Boundary Cases: Debugging helps ensure that edge cases, such as extreme input values,
are handled correctly, preventing crashes or incorrect outputs. These tests improve the
robustness of the application in real-world scenarios.
3. Improving Application Performance
Debugging is not only for identifying errors but also for fine-tuning performance. By using
performance debugging tools, developers can:
- Profile Performance: Debuggers can profile an application’s resource usage (e.g., CPU,
memory), helping to identify performance bottlenecks that could impact scalability and
efficiency.
- Optimize Algorithms: By inspecting how the application handles large inputs or complex
operations, developers can optimize algorithms for better performance, which
contributes to both robustness and security. For instance, slow code may lead to denial-
of-service vulnerabilities due to resource exhaustion.
- Use of Hardcoded Secrets: Debugging may uncover hardcoded passwords or API keys,
which are a common security risk. Developers can replace these with environment
variables or secure vault solutions.
- Use of Unsafe Functions: Debuggers can help identify unsafe functions (like gets() in C)
that may lead to buffer overflows or other vulnerabilities.
- If developers are following coding standards, the code is consistent and can be easily
maintained. Anyone can understand it and modify it easily at any time.
1) Naming Convention.
Pascal Case: Used for class names, methods, properties, events, and constants. The first letter of
each word is capitalized.
In the above code, I am using the standard encoding name. It represents a type that should
have both lowercase and uppercase letters, starting with an uppercase letter.
camelCase: Used for variables and method parameters. The first letter of the first word is
lowercase, and subsequent words start with an uppercase letter.
In the above code, I am using standard encoding name. It represents variable name, it has
both lowercase and uppercase, first letter is lowercase. There is letter "s" after variable name
if there is more than 1.
Class: Each class should be in its own file, and the file name should match the class name. Ensure
that classes have clear responsibilities and avoid overly large classes (typically, they should not
exceed 200–300 lines of code).
Methods: Methods should have descriptive names. Each method should perform a specific task
(Single Responsibility Principle).
2) Layout Standard:
3) Comment Standard
Figure 0-27: COMMENT STANDARD
Conclusion.
In this article I have presented my understanding of algorithms and steps of building a
program. Then I have applied it in practice. I have written the code on Visual Studio
application.
Reference
P1: I’ve defined what an algorithm is and outlined the process of building an application. (Page
8)
M1: I analyzed the coding process, including the potential challenges faced.
+) I analyzed the coding process based on the water bill problem. I demonstrated an
understanding of inputs and outputs, created flowcharts, and proceeded to write code in the C#
programming language.(Page 13)
P2: I’ve determined the steps taken from writing code to execution. (Page 16)
P3: I’ve explained and provided a clear and concise overview of procedural, object-oriented, and
event-driven paradigms. Each paradigm is presented in a structured manner, with sub-sections
for definition, features, advantages, and disadvantages. (Page 25)
M2 I analyze the relationship between 3 types of events, thereby helping the software become
better.(36)
P4,M3: I have used the C# programming language with WinForms to develop a water bill
management program. . The management program has functionality of system login page, home
page, searching, adding, editing and deleting functions.(Page 36)
P5: I’ve explained the entire debugging process, from the definition of debugging to the role of
the debugger and the steps involved in the debugging process.(Page 49)
M4: I have Examine how the debugging process can be used to help develop more secure, robust
applications.(Page 53)
P6: I’ve explained about the coding standard I have used in my code (Advantages, Disadvantages,
Text Editor, Generate Executable Code, Debugging) (Page 53)
Material:
Indeed Career Guide. (2024). What is procedural programming language? (And its uses).
[online] Available at: [Link]
programming-language.
BasuMallick, C. (2022). What is OOP (object oriented programming)? Meaning, concepts, and
benefits. [online] Spiceworks. Available at:
[Link]
[Link]. (2021). Tech Glossary for Understanding Innovations | Lenovo US. [online]
Available at: [Link] [Accessed 9 Dec. 2024].
Neubauer, T. (2023). The what, why and how of event-driven programming. [online] [Link].
Available at: [Link]
SearchSoftwareQuality. (n.d.). What is integrated development environment (IDE)? -
Definition from [Link]. [online] Available at:
[Link]
environment.
[Link]. (n.d.). What is Debugging? Types & Tools Definition Guide. [online]
Available at: [Link]
Link: [Link]
LINK: [Link]