Name Faheyan Nomani
Unit Title Coding and Website Development
Unit Level 3
Unit Reference Number R/618/6091
1. Understand the purpose and types of coding.
1.1 Identify popular programming languages that are used within computer systems.
Introduction: In order to create, run, and maintain computer systems, programming languages
are necessary tools. They give programmers the syntax and commands they need to interact with
hardware and software components, allowing them to create databases, websites, apps, and more.
Numerous programming languages have been developed over time, each suited to particular
kinds of systems, contexts, and jobs. Gaining knowledge of the most widely used programming
languages nowadays will help you better understand how contemporary systems and software are
developed and maintained.
Programming Language Usage Benefit
Python Python is known for its Python has a vast library
simplicity and versatility, ecosystem, making it easy to
making it popular in fields find resources for a wide
such as web development, range of applications, from
data science, artificial scientific computing with
intelligence, and automation. libraries like NumPy and
(Wikipedia,2024) SciPy to machine learning
with TensorFlow and
PyTorch. (Wikipedia, 2024
& Techvidan, no date)
Java Java is a highly portable, Its "write once, run
object-oriented language anywhere" nature allows for
frequently used in enterprise cross-platform compatibility,
applications, Android app and it has strong support for
development, and large-scale networked, high-performance
distributed systems. applications, making it
(Wikipedia, 2024) popular in finance and web-
based business applications.
(Wikipedia, 2024 & Quora,
2021)
JavaScript Primarily used for front-end JavaScript is versatile for
web development, JavaScript both client-side and server-
is essential for creating side applications, making it
interactive elements on highly valuable for full-stack
websites. With frameworks web development. (Quora,
like Node.js, it’s also used for 2023)
server-side development.
(Wikipedia, 2024 & Quora,
2023)
C++ C++ is used in Known for its high
system/software performance and efficiency,
development, game C++ enables close interaction
development, and with hardware, making it
performance-critical ideal for operating systems,
applications like finance and gaming engines, and real-
engineering. (Wikipedia, time simulation software.
2024) (Wikipedia, 2024 &
Dataflair, no date)
C# Created by Microsoft, C# is C# is strongly integrated with
used extensively in Windows Windows-based applications
applications, web and is highly favored in the
development (via ASP.NET), development of Windows
and game development with desktop applications and
Unity. (Wikipedia, 2024) enterprise software. (Quora,
2022)
PHP PHP is mainly used for Widely supported by web
server-side web development. hosting services, PHP
(Wikipedia, 2024) remains a staple in web
development for dynamically
generating content and
interacting with databases,
especially for content
management systems like
WordPress. (GeeksforGeeks,
2022 & Wikipedia, 2024)
SQL SQL (Structured Query SQL is the go-to language for
Language) is used for database management,
managing and querying allowing efficient data
relational databases. retrieval, updates, and
(Wikipedia, 2024) operations for a wide range of
applications, from websites to
enterprise systems.
(GeeksforGeeks, 2024 &
Wikipedia, 2024)
Kotlin Kotlin is officially supported Known for its concise syntax
for Android app development and interoperability with
and is an alternative to Java. Java, Kotlin is preferred by
(Wikipedia, 2024) many Android developers and
is increasingly being adopted
for server-side development
as well. (Wikipedia, 2024 &
Lab S.T.I. 2021)
HTML (HyperText Markup HTML is a markup language HTML is important for web
Language) used to create and structure development, serving as the
content on the web. It forms basic building block for web
the backbone of all websites, pages and allowing content to
defining elements like text, be easily structured and
images, and links. displayed on browsers.
(Wikipedia, 2024) (GeeksforGeeks, 2024 &
Wikipedia, 2024)
Conclusion: Each of these programming languages has its strengths, shaped by the
environments and systems they’re designed to serve. From creating websites with HTML and
CSS to developing large-scale systems with Java and C++, programming languages allow
developers to create powerful, efficient, and versatile software solutions. Understanding the
variety and roles of these languages provides a foundation for designing and choosing the right
tools for specific projects and environments, enabling both innovation and reliable system
performance.
References:
1. Wikipedia contributors (2024) Python (programming language).
https://en.wikipedia.org/wiki/Python_(programming_language)
2. Techvidan (no date) Python Advantages and Disadvantages – Step in the right direction
https://techvidvan.com/tutorials/python-advantages-and-disadvantages/
3. Wikipedia contributors (2024) Java (programming language).
https://en.wikipedia.org/wiki/Java_(programming_language)
4. Quora (2021) What is the advantage of Java? https://www.quora.com/What-is-the-advantage-
of-Java
5. Wikipedia contributors (2024) JavaScript. https://simple.wikipedia.org/wiki/JavaScript
6. Quora (2023) What is JavaScript, and what are their advantages?
https://www.quora.com/What-is-JavaScript-and-what-are-their-advantages
7. Wikipedia contributors (2024) C++. https://en.wikipedia.org/wiki/C++
8. Dataflair (no date) Advantages and Disadvantages of C++ | Make your Next Move!
https://data-flair.training/blogs/advantages-and-disadvantages-of-cpp/
9. Wikipedia contributors (2024) C Sharp (programming language).
https://en.wikipedia.org/wiki/C_Sharp_(programming_language)
10. Quora (2022) What are the advantages and disadvantages of using C sharp as a programming
language? https://www.quora.com/What-are-the-advantages-and-disadvantages-of-using-C-
sharp-as-a-programming-language
11. Wikipedia contributors (2024) PHP. https://en.wikipedia.org/wiki/PHP
12. GeeksforGeeks (2022) Advantages and Disadvantages of PHP.
https://www.geeksforgeeks.org/advantages-and-disadvantages-of-php/
13. Wikipedia contributors (2024) SQL. https://en.wikipedia.org/wiki/SQL
14. GeeksforGeeks (2024) Advantages and Disadvantages of SQL.
https://www.geeksforgeeks.org/advantages-and-disadvantages-of-sql/
15. Lab, S.T.I. (2021) 'What are The Benefits of Kotlin - Sagara Technology Idea Lab - Medium,'
Medium, 13 December. https://sagaratechnology.medium.com/what-are-the-benefits-of-kotlin-
d7fdcd1cfc0
16. Wikipedia contributors (2024) Kotlin (programming language).
https://en.wikipedia.org/wiki/Kotlin_(programming_language)
17. Wikipedia contributors (2024) HTML. https://en.wikipedia.org/wiki/HTML
18. GeeksforGeeks (2022) Advantages and Disadvantages of HTML.
https://www.geeksforgeeks.org/advantages-and-disadvanatges-of-html/
1.2 Differentiate between High level and Low-level programming languages.
Introduction: Programming languages are tools that enable developers to communicate
instructions to computers. These languages vary in complexity and abstraction, primarily
categorized as high-level and low-level languages. High-level languages are designed to be
closer to human language, making them easier to read, write, and maintain. Low-level languages,
on the other hand, are closer to machine code, offering greater control over hardware but
requiring more technical knowledge. This distinction impacts how and where each language type
is used, depending on project needs, performance demands, and system requirements.
High-Level Programming Languages:
High-level languages are designed to be easy for humans to read and write, focusing more on
problem-solving and less on hardware details. These languages are abstracted from the
computer's hardware, meaning they handle tasks like memory management automatically and
allow programmers to write code in a way that is close to natural language. (Wikipedia, 2024)
They are characterized by:
Abstraction: High abstraction from the hardware. (Technologies, no date)
Ease of Use: Easier to learn and use with simpler syntax. (Technologies, no date)
Portability: Typically portable across different systems. (Technologies, no date)
Automatic Memory Management: Memory handling is often managed by the language runtime
(e.g., garbage collection). (Technologies, no date)
Examples:
Java: Popular for enterprise applications, Android app development, and web applications.
(Wikipedia, 2024)
Python: Commonly used in data science, web development, artificial intelligence, and
automation. (Wikipedia, 2024)
Where High-Level Languages are Used:
Web Development: Languages like JavaScript, Python (Django, Flask), and Ruby (Ruby on
Rails) are popular for creating dynamic web applications. (McPherson, 2023)
Enterprise Software: Java and C# are often used in business applications due to their reliability,
scalability, and support for object-oriented programming principles. (Wikipedia, 2024 &
Sruthy, 2024)
Low-Level Programming Languages:
Low-level languages are closer to machine code and provide minimal abstraction from a
computer’s hardware. These languages require a deep understanding of the system's architecture
and memory management, as they allow for direct hardware manipulation and are highly
efficient. (Wikipedia, 2024)
They are characterized by:
Minimal Abstraction: Very close to machine language, offering direct interaction with hardware.
(Epitech Spain, 2023)
Efficiency: Faster execution and memory efficiency. (Epitech Spain, 2023)
Machine-Specific: Generally not portable and often tied to a particular hardware architecture.
(Epitech Spain, 2023)
Manual Memory Management: The programmer has control over memory allocation, leading to
faster and more optimized code. (Epitech Spain, 2023)
Examples:
Assembly Language: Used for system programming, such as developing operating system
kernels, device drivers, and firmware. (Wikipedia, 2024)
Machine Language: Direct binary code executed by the CPU, typically not written by
programmers but generated by compilers from assembly or other low-level languages.
(GeeksforGeeks, 2023)
Where Low-Level Languages are Used:
Operating System Development: Assembly language is used to write parts of operating systems,
like memory and process management modules, where speed and resource control are essential.
(Franklin and Pollette, 2024 & Wikipedia, 2024)
Embedded Systems: Low-level languages are used in embedded devices like microcontrollers in
medical devices, automotive systems, and IoT devices, where direct control of hardware is
required. (Wikipedia, 2024)
The main differences between low-level and high-level language are:
Feature High-Level Language Low-Level Language
Abstraction High, far from hardware Low, close to hardware
(Tutorialspoint, no date & (Tutorialspoint, no date &
Wikipedia, 2024) Wikipedia, 2024)
Ease of Use Easy to write and understand Complex, requires hardware
(Tutorialspoint, no date & knowledge (Tutorialspoint,
Wikipedia, 2024) no date & Wikipedia, 2024)
Portability Cross-platform, generally Platform-specific, hardware-
portable (Tutorialspoint, no dependent (Tutorialspoint,
date & Wikipedia, 2024) no date & Wikipedia, 2024)
Memory Management Automatic for example Manual by programmer
garbage collection (Tutorialspoint, no date &
(Tutorialspoint, no date & Wikipedia, 2024)
Wikipedia, 2024)
Execution Speed Slower as a result of high Faster as a result of low-level
abstraction (Tutorialspoint, control (Tutorialspoint, no
no date & Wikipedia, 2024) date & Wikipedia, 2024)
Typical Use Application development, System programming,
web development, scripting embedded systems
(Tutorialspoint, no date & (Tutorialspoint, no date &
Wikipedia, 2024) Wikipedia, 2024)
Conclusion: High-level and low-level languages serve different purposes within the realm of
programming. High-level languages are optimal for rapid development, ease of maintenance, and
cross-platform compatibility, ideal for software applications and web development. Conversely,
low-level languages are suited for systems programming, embedded systems, and applications
requiring direct hardware interaction and maximum performance. Choosing between high-level
and low-level programming languages depends on the specific needs of the project, balancing
control and efficiency with readability and portability.
References:
1. Wikipedia contributors (2024) High-level programming language.
https://en.wikipedia.org/wiki/High-level_programming_language
2. Technologies, S. (no date) Characteristics of high level languages.
https://cprogramming007.blogspot.com/2012/01/characteristics-of-high-level-languages.html
3. Wikipedia contributors (2024) Low-level programming language.
https://en.wikipedia.org/wiki/Low-level_programming_language
4. Epitech Spain (2023) Low-level language: What it is, types, features and much more.
https://www.epitech-it.es/low-level-language/
5. Difference between High-Level language and Low-Level language (no date).
https://www.tutorialspoint.com/difference-between-high-level-language-and-low-level-language
6. Wikipedia contributors (2024) Java (programming language).
https://en.wikipedia.org/wiki/Java_(programming_language)
7. Wikipedia contributors (2024) Python (programming language).
https://en.wikipedia.org/wiki/Python_(programming_language)
8. McPherson, D. (2023) A jumbo list of 52 great web development tools.
https://paperform.co/blog/web-development-tools/
9. Wikipedia contributors (2024) Enterprise software.
https://en.wikipedia.org/wiki/Enterprise_software
10. Sruthy (2024) 12 Best Enterprise Software To Look For In 2024
https://www.softwaretestinghelp.com/best-enterprise-software/
11. GeeksforGeeks (2023) What is Machine Language? https://www.geeksforgeeks.org/what-is-
machine-language/
12. Wikipedia contributors (2024) Assembly language.
https://en.wikipedia.org/wiki/Assembly_language
13. Franklin, C. and Pollette, C. (2024) How operating systems work.
https://computer.howstuffworks.com/operating-system.htm
14. Wikipedia contributors (2024) Embedded system.
https://en.wikipedia.org/wiki/Embedded_system
1.3 Explain how principles of computer programming are applied in different languages to
produce software applications.
Introduction: Computer programming principles provide the foundation for creating reliable,
efficient, and maintainable software applications across a variety of languages. These core
principles, including modularity, abstraction, encapsulation, inheritance, error handling, and
readability, help developers produce high-quality software. Regardless of the specific
programming language, the consistent application of these principles enables developers to build
complex systems, streamline functionality, and manage software development challenges
effectively. This exploration will highlight how these principles are applied across different
programming languages to produce software applications for diverse purposes.
Key Principles of Computer Programming and Their Applications Across Languages are:
Principle Details & how they are applied
Modularity and Reusability Principle: It allows code to be divided into
smaller, manageable sections, often called
functions or modules, which can be reused
across the application.
Application in Languages:
In Python and Java, modularity is achieved
using classes and functions that are organized
into packages or modules. This encourages
reusability, as each module can perform a
specific function.
In C, modularity can be achieved through
functions and libraries, allowing developers to
separate code into reusable components.
In JavaScript, reusable modules are created
using functions and libraries, especially in
frameworks like React and Angular, which
promote modularity for web applications.
(Wikipedia, 2024 & Quora, 2023 &
Yurianja, 2024 & GeeksforGeeks, 2018)
Abstraction Principle: It simplifies complex systems by
allowing developers to work with a simplified
version of the code, hiding any unnecessary
details.
Application in Languages:
Java uses abstract classes and interfaces to
provide a framework that hides lower-level
details while defining high-level functionality.
In Python, abstraction is achieved through
classes, functions, and libraries that allow
users to implement specific methods without
exposing internal mechanisms.
In C++, abstraction can be implemented using
classes and objects, encapsulating data and
methods to hide complexity.
(Stackoverflow, no date & W3Schools, no
date & GeeksforGeeks, 2024)
Encapsulation Principle: It restricts direct access to some of
an object's components, which can protect the
integrity of the data and maintain control over
changes.
Application in Languages:
In Java and C++, encapsulation is
implemented through private, public, and
protected access modifiers that control access
to object data.
Python however provides limited support for
encapsulation using conventions like
prefixing variables with underscores to
indicate private data, although it doesn’t
enforce strict access control.
Swift and Objective-C use access control
keywords (e.g., private, fileprivate, public) to
manage encapsulation, essential for
developing iOS applications.
(Wikipedia, 2024 & Hanning, 2023 &
GeeksforGeeks, 2024)
Inheritance Principle: It allows new classes to adopt
attributes and behaviors from existing classes,
promoting code reuse and reducing
redundancy.
Application in Languages:
In Java and C++, inheritance is explicitly
supported with keywords like extends and
public inheritance respectively, allowing for
hierarchical class structures.
Python supports multiple inheritance, where a
class can inherit from more than one base
class, allowing flexibility in code reuse.
JavaScript, though not traditionally object-
oriented, uses prototypes for inheritance,
especially useful in frameworks where objects
share functionality.
(Janssen, 2024 & Programiz, no date &
MDN, 2024)
Error Handling Principle: It ensures that a program can
gracefully recover from errors or handle
unexpected situations, improving robustness.
Application in Languages:
In Java and Python, try-catch or try-except
blocks allow developers to capture and
manage errors, improving user experience by
preventing program crashes.
C++ uses try-catch blocks and custom
exception classes to handle specific error
types, essential for maintaining system
stability.
JavaScript has try-catch blocks for client-side
applications and server-side error handling in
environments like Node.js, essential for web
applications where errors need smooth
handling.
(GeeksforGeeks, 2024 & Fita, 2022 &
Tutorialspoint, no date)
Documentation and Readability Principle: Both Code readability and
documentation helps to make the code easier
to understand, maintain, and modify by other
developers.
Application in Languages:
Python focuses on readability with its
straightforward syntax and conventions (PEP
8), making it a preferred language for
collaborative projects.
In Java, thorough documentation is typically
generated with Javadoc comments, providing
automatic documentation for developers.
C# in .NET environments promotes
readability with standardized coding
conventions and XML documentation
comments.
(Linkedin, 2023 & GeeksforGeeks, 2021 &
Grifski, 2024 & Stackoverflow, no date &
Tariq Usman M. Bashir Bihal M. Bahar M.
Adnan Sohail, 2020)
Conclusion: The principles of computer programming which include modularity, abstraction,
encapsulation, inheritance, error handling, and readability are fundamental across programming
languages. Applying these principles ensures that software applications are efficient, scalable,
and maintainable, regardless of the programming language. By understanding how these
principles work in different languages, developers can effectively create applications suited to
varied environments, from mobile apps to web platforms and complex software systems. This
consistent foundation across languages enables developers to produce high-quality software that
meets both functional and organizational goals.
References:
1. Wikipedia contributors (2024) Modular programming.
https://en.wikipedia.org/wiki/Modular_programming
2. Quora (2023) Code reusability https://www.quora.com/What-is-code-reusability
3. Yurianja, C. (2024) 'Modularization on Python - Python in Plain English,' Medium, 24
September. https://python.plainenglish.io/modularization-on-python-68b7dd6982cf
4. GeeksforGeeks (2018) Modular approach in programming.
https://www.geeksforgeeks.org/modular-approach-in-programming/
5. Stackoverflow (no date) What does abstraction mean in programming?
https://stackoverflow.com/questions/21220155/what-does-abstraction-mean-in-programming
6. W3Schools.com (no date). https://www.w3schools.com/java/java_abstract.asp
7. GeeksforGeeks (2024b) Data abstraction in Python. https://www.geeksforgeeks.org/data-
abstraction-in-python/
8. GeeksforGeeks (2024a) Abstraction in C++. https://www.geeksforgeeks.org/abstraction-in-
cpp/
9. Wikipedia contributors (2024) Encapsulation (computer programming) - Wikipedia.
https://en.wikipedia.org/wiki/Encapsulation_(computer_programming)
10. GeeksforGeeks (2024) Encapsulation in Java. https://www.geeksforgeeks.org/encapsulation-
in-java/
11. GeeksforGeeks (2024) Encapsulation in Python.
https://www.geeksforgeeks.org/encapsulation-in-python/
12. Hanning, T. (2023) Swift: Access control. https://www.thomashanning.com/swift-access-
control/
13. Janssen, T. (2024) OOP Concept for Beginners: What is Inheritance?
https://stackify.com/oop-concept-inheritance/
14. Programiz (no date) Java Inheritance (With examples) https://www.programiz.com/java-
programming/inheritance
15. Inheritance and the prototype chain - JavaScript | MDN (2024).
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Inheritance_and_the_prototype_chain
16. GeeksforGeeks (2024) Error handling in programming.
https://www.geeksforgeeks.org/error-handling-in-programming/
17. GeeksforGeeks (2024h) Python Exception Handling. https://www.geeksforgeeks.org/python-
exception-handling/
18. Fita, M. (2022) 'Modern error handling in C++ | by Michał Fita | Jun, 2021 | Medium |
Medium,' Medium, 30 March. https://michalfita.medium.com/error-handling-in-c-versus-rust-
169693fa04f3
19. Tutorialspoint (no date) JavaScript - Errors & Exceptions Handling
https://www.tutorialspoint.com/javascript/javascript_error_handling.htm
20. Linkedin (2023) Why is code readability important in programming language best
practices? https://www.linkedin.com/advice/3/why-code-readability-important-programming-
qsece
21. GeeksforGeeks (2021) Readability Index in Python(NLP).
https://www.geeksforgeeks.org/readability-index-pythonnlp/
22. Grifski, J. (2024) 'Readability and style in Java,' The Renegade Coder, 27 February.
https://therenegadecoder.com/code/readability-and-style-in-java/
23. Stackoverflow (no date) .net code readability and maintainability
https://stackoverflow.com/questions/2585704/net-code-readability-and-maintainability
24. Tariq Usman M. Bashir Bihal M. Bahar M. Adnan Sohail (2020)
https://www.researchgate.net/figure/Comparison-of-Readability-Difficulty-among-Java-C-and-
C_fig4_340280214
3. Be able to create interactive websites.
|3.1 +3.2 | Be able to create or modify components of websites to meet business needs.
Demonstrate that a created website meets the defined requirements and achieves the defined
purpose.
Below is the website I made using Wix for Arts and Crafts site:
https://stefanvonmuller.wixsite.com/my-site-1
Down below are images being submitted as evidence: