Gdrres
Gdrres
Computational thinking is the thought processes involved in formulating problems so their solutions can be
represented as computational steps and algorithms, and it consist of 3 main components, decomposition,
pattern recognition and pattern generalisation and abstraction.
Decomposition
Decomposition is the breaking down of complex problems into small manageable parts to make it easier to
understand/solve. For instance, a real-life example of decomposition can be math: when learning math, you
decompose the subject into topics which makes it easy for you to learn as now you can learn one by one.
Another example is when you are doing your chores: you firstly make a to-do list where you have all your tasks
listed vertically (most often) that you must do by the end of the day. Decomposition is broken down in the
following stages:
Firstly, you need to identify and describe the problems and the processes; here, you briefly list down the
problems and the processes using the same language that matches the problem. For example, if you’re
dealing with financial issues, use appropriate financial terms. Therefore, this tells that you must be familiar
with the language of whichever problem you’re dealing with.
Secondly, you break down problems and processes into recognisable steps; at this point, you will decompose
complex problems into a series of small manageable problems which can then later be reassembled together
correctly. There is no limit on the level of decomposition, so you may carry on decomposing until it’s easy for
you to understand. An example we can refer this to, is an employee’s net pay. So, for instance, if you need to
calculate weekly wage for the employee, you must follow these steps: at first, you calculate how many hours a
week does the employee work (e.g., 40 hrs). Then, you calculate how much they get paid per hour (e.g., £10).
You then proceed to also calculate how many additional hours they work (e.g., 3 hrs). Later, you multiply the
numbers to find the weekly pay (=£430). Then u take out the tax, national insurance and pension (optional)
from the weekly pay which will give the final payslip of the employee.
Thirdly, you describe the problems and process as a set of structured steps. Here, you will need to explain the
problems/process that you decomposed. This means it should be straightforward enough to be understood by
others.
Lastly, you communicate the key features of the problems and processes to others. In this last stage, you’ll
need to discuss the problems/process to others. This may also include other experts or clients. The benefit of
this process is that they may help you sort through the problem and see the situation more clearly. And once
you have decomposed the complex problem, you can then start to look at the steps involved to see if there is
any repeating pattern.
For example, one of the most common programming languages between programmers,
python, one of the main steps in designing a parallel program, is to break the problem
into discrete chunks (decomposition), that can be distributed to multiple tasks so they
can work on the problem simultaneously.
Advantages
One advantage of using decomposition is the significant change of complex problem
broken down into small “chunks”, which are much easier to understand. This is useful as
it allows many programmers who need to solve down programming problem. This also
saves their time which is also an advantage as it increases productivity. A key example
to support this statement is the development of games. For instance, if the programmer
is making a Tic-Tac-Toe game, they will need to break down the different win possibilities
a player can go through. Then, they’ll need to logically solve that problem by going
through the different steps the user (player) goes through.
Another advantage of using decomposition is the enhance understanding. This means
that not only it will be relatively easy to solve, but you will also have an understanding of
the overall system. This allows you to have a greater picture and greater understanding
and the individual components of the system you’re making. A key example to support
this statement is the divide and conquer method. This is where a problem is divided into
smaller subproblems. Then, each subproblem is solved individually, and at the end, the
solutions are combined to solve the original problem. This is an example of
decomposition in algorithm design.
In addition, another advantage of decomposition is the improvement of robustness,
which makes it easier to test individual parts of the system. By doing this, the system
will be enhanced after the tests, which decreases the chances of human error. A key
example to support this statement is the testing of systems. For instance, a database.
Here, the individual parts of the database, such as macros, are tested with different
values making sure that the system is working correctly. This may take up a long time,
but it is important as it minimised human error.
Disadvantages
However, on the other hand, a disadvantage of decomposition is that the programmer needs to fully
understand the problem he´s trying to solve because otherwise he will end up writing a code that it is not
specific to the problem. For instance, if the programmer is designing a game, with key data such as in-game
currency, and he doesn’t know how the currency work, it will most likely end up with some errors as the
programmer doesn’t understand the logic of the game, and how he actually needs to program the game the
way it should actually work.
Another disadvantage is that the different programmers of a team working on the code need to have a really
good team working or the codes written won´t fit properly making the output poor. This is because not every
programmer has the same level of skills as the other, meaning that one programmer needs the help of the
other, so that it will increase the productivity, and it will also produce a good output. A key example to
support this statement is the development of a website for big companies. This is because both front-end and
back-end programmers need to have a good communication between each other, so that they can produce a
good output.
Furthermore, another disadvantage of decomposition is the requirement of effective planning. This means
that a poorly planned decomposition will result in a poor output, and also resulting in the problems still being
complex. A key example to support this statement is the development of a game. For instance, if the
programmer is making a Tic-Tac-Toe game with a poorly planned decomposition plan, the game will end up
crashing as soon it’s executed. This could include things such as the system not recognising an integer as a
string due to the lack effective planning done by the programmer.
Pattern Recognition
Pattern recognition is the ability for a machine learning algorithm to automatically recognise patterns and
regularities in the same problem. This data can be anything from text and images, sounds and other.
Identifying these patterns can make problem solving much easier. For example, when doing the laundry, and
drying off the socks, you use pattern recognition to match the socks to each other. Another example is when
we recognise the traffic light turning yellow: we are aware that the pattern of the traffic lights in the area that
the turn lanes for cross-traffic will be green first, followed by straight cross-traffic, then turn lanes in our
direction, and finally our light will go green. In addition, pattern recognition is broken down in the following
stages:
Firstly, you need to identify common elements or features in problems or systems; here, you first examine the
problem to understand it before proceeding and solving it. You list the elements/features that exist in each,
and you highlight those which exist in multiple places. These will be recognised as patterns. For example, you
want to search for a student in a school, and to do you would need to use a searching algorithm (e.g., binary
search).
Secondly, you identify and interpreter common differences between processes/problems; here, you repeat
the same steps you have done in stage one. So, you understand the problem/s, find common differences in
the problem. For example, when taking the register, one system might simply record present and absent.
Another system might record, present, planned absence, unplanned absence and late. And lastly, list elements
or feature that exist in each and highlight those which are unique. These will be recognised as patterns.
Thirdly, you identify individual elements within the problem. This means that you will need to examine the
problem, identify the inputs, processes and outputs that are present. For example, when marking a student,
the character entered against the student's name could be '/' or ‘P’ to show that he’s present. Or ‘\’ & ‘N’ to
show that he was absent. This data will be saved in a database and the output will be a percentage showing
the attendance of each student.
Fourthly, you describe patterns that have been identified; once you identified the patterns, you can now
describe it.
Lastly, make predictions based on identified patterns, meaning once you identified a pattern, you can now
guess whether it can be reused in your existing program or in another program.
For example, Python, which consists of multiple libraries which can be readily imported
and used in applications involving recognizing patterns and processing images.
Furthermore, the patterns can be printed by using simple for loops or by matching it with
a particular pattern.
Advantages
An advantage of pattern recognition is the automation and efficiency. This is because
patterns are spotted easily and quickly because they are constantly seen, which
becomes much easier to identify through muscle memory. A key example to support this
statement is the traffic light. This is because we may recognise that an upcoming timed
traffic light has turned yellow. This is also because we are aware that the pattern of the traffic
lights in the area that the turn lanes for cross-traffic will be green first, followed by straight cross-traffic, then
turn lanes in our direction, and finally our light will go green.
In addition, another advantage of pattern recognition is the efficient problem solving, which helps the
programmer have a greater picture and understanding of the system. This is because by recognising patterns
in data, programmers can identify similarities and commonalities across different problems. By having this, it
allows the programmers to develop organised strategies which are applied in different contexts. A key
example to support this statement is after doing the laundry. This is because pattern recognition will be used
to pair the matching socks.
Furthermore, another advantage is the capability to recognize and assess repetitive patterns in data or code,
enabling developers to make better decisions. Programmers are able to develop algorithms and models that
can identify and analyse similar patterns within vast amounts of data by acknowledging patterns, ultimately
leading to time and effort saved. The ability to recognize patterns is especially valuable in areas like machine
learning and artificial intelligence. For instance, in image recognition, pattern recognition algorithms can learn
to recognize certain objects or traits in images, allowing for tasks like facial recognition, object detection, and
self-driving cars.
Disadvantages
One possible drawback of utilizing pattern recognition in programming is the potential for overfitting.
Overfitting happens when a pattern recognition algorithm gets too focused on recognizing certain patterns in
the training data and struggles to perform well on new, unseen data. This may result in incorrect forecasts or
categorizations. In machine learning, when a pattern recognition algorithm is trained on a limited and skewed
dataset, it might learn to identify patterns unique to that dataset but struggle when faced with different new
data sources. Overfitting in practical applications of pattern recognition algorithms is still a significant concern
despite the use of methods like cross-validation, regularization, and feature selection to reduce its impact.
Another disadvantage of utilizing pattern recognition in programming is the risk of obtaining imprecise
outcomes. You could encounter incorrect results known as false positives, where the algorithm mistakenly
detects a pattern that does not exist. There is also the possibility of false negatives, in which the algorithm
overlooks a pattern that actually exists. This could result in incorrect decisions or actions being taken based on
those findings. For example, in a spam prevention system, incorrect identifications could result in important
emails being labelled as spam, while incorrect omissions could allow real spam emails to go unnoticed. Finding
a middle ground between incorrect positive and incorrect negative results is important for trustworthy and
efficient pattern recognition algorithms.
A downside of utilizing pattern recognition in coding is the risk of biased results. The reason for this is because
pattern recognition algorithms are trained on the current data, which signifies that they have the potential to
pick up on and strengthen biases that are already present within that data. For example, a facial recognition
algorithm that is mainly trained on data from one race or gender, could have difficulties identifying or
categorizing individuals from marginalized groups. This may result in biased treatment or prejudice in different
scenarios, like recruitment procedures or police activities. Addressing and reducing biases in pattern
recognition algorithms is essential to guaranteeing fair and equitable results for everyone.
Pattern generalisation and abstraction
Abstraction is the process of displaying only the essential information and hiding the details. This is useful as it
allows the programmer to use a feature without having to know exactly how it works as the irrelevant
information is now removed with the use of abstraction. A real life of example of abstraction is a car: when
turning on the car, you don’t need to know how the engine is getting started as it is irrelevant information.
Pattern generalisation when links between patterns are identified. For example, you might want to search for
students in a class, or who are being taught by a specific teacher.
In addition, pattern generalisation and abstraction are divided into two sections:
Firstly, you need to identify the information required to solve the problem. You can get this by
Knowing what information, you need
Knowing the reason for it
Knowing the format in which you need the information in
Knowing the currency of the information to not delay the information
Secondly, you need to abstract the irrelevant information to solve the identified problem. You can do this by
Knowing the irrelevant information
Knowing the purpose if why you extracted this information
For example, in python, when you write in your codes, the program automatically removes all the irrelevant
information, such as, how the CPU complies from a high-level language to a low-level language which matches
the program so it can understand.
Advantages
One advantage of using abstraction is that it makes complex systems easy to use. This is because abstraction
enables developers to conceal superfluous aspects and concentrate on the vital elements of a system.
Programmers can develop reusable modules and libraries that are easy to understand and use by others by
forming abstract representations of real-world objects or concepts. In object-oriented programming, a class
serves as a representation of a tangible thing from the real world, containing its characteristics and actions.
This enables developers to generate various copies of the class, each symbolizing a distinct object with its
individual traits. Through abstraction, developers are able to produce code that is more modular,
maintainable, and scalable, ultimately leading to time and effort savings during the development stage.
Another benefit of incorporating abstraction into programming is the enhanced ability to reuse and maintain
code. Programmers can save time and effort by using existing code instead of starting from scratch, through
abstracting complex functionality into reusable modules or classes. In game development, developers use
abstraction to create broad game mechanics that can be applied to various levels or scenarios in a game. This
not only reduces the development time but also makes it easier to update or change the game without
affecting the entire codebase. Abstraction helps in developing code that is modular, well-organized, and easier
to understand, debug, and maintain in the long run.
Another benefit is that it aids in simplifying the complexity of the code. Programmers can concentrate on the
higher-level design and functionality of their code by removing unneeded details. This helps to enhance the
clarity, flexibility, and troubleshoot the code. Abstraction in game hacking, for instance, enables the distinction
between the hacking logic and the particular game mechanics. In this manner, you can focus on utilizing the
hacking methods without getting overwhelmed by the complexities of the game. Abstraction makes the
development process easier and encourages writing code that is easier to understand and manage.
Disadvantages
Although abstraction can make code easier to comprehend and upkeep, it can also add extra abstract layers
that might not be needed or could cause confusion. This could result in decreased performance or higher
memory consumption. In some cases, excessively abstracting can lead to longer execution times as a result of
having to handle and navigate through numerous abstraction layers. Moreover, poorly designed or
implemented abstractions can lead to increased difficulty in debugging and troubleshooting the code.
Maintaining a harmony between abstraction and simplicity is crucial for writing code that is efficient and easy
to manage.
Another disadvantage of using abstraction in programming is the limited control and flexibility. Programmers
may sacrifice the opportunity to adjust or perfect certain elements of their code by removing low-level details.
This could pose a challenge in situations where performance or particular features are important. When
dealing with demanding hardware applications or real-time systems, abstraction layers can create extra work
that limits the performance you want to reach. In such cases, it might be required to use a more hands-on and
detailed method to have better management of the code and how it runs. It's crucial to thoughtfully assess the
trade-offs between abstraction and control in accordance with the project's precise needs.
Another drawback of abstraction is its potential to result in a diminished comprehension of the fundamental
system. When simplifying intricate details, programmers might become disconnected from the fundamental
mechanisms of the code and the underlying ideas. This can create difficulties when trying to identify and fix
problems that come up. If a bug arises in a module that is highly abstracted, it may be challenging to pinpoint
the root cause without delving into the underlying code, especially if the programmer is not acquainted with
it. Finding a middle ground between abstraction and comprehension is crucial for efficient problem-solving
and sustaining manageable code.
Use of software applications
Software applications are software specifically designed to carry out specific tasks, problems and fulfil user’s
needs. Furthermore, there are many ways to classify the applications, for example, by the software license, by
the computer platform or by use. A popular use of software application category is gaming;
Videogames can be used to entertain, educate or help to recover from trauma. For instance, Call of Duty is a
popular example of videogame. However, it is vital to also look after yourself, as too much gaming can cause
mental issues (e.g., depression), physical issues (e.g., obesity), aggression, lack of motivation, etc...
Another example of software application category is Entertainment. Such applications help user relax and
enjoy various forms of media, like music, video, books, etc... The following list will show some popular
examples of entertainment applications: Apple iTunes, Microsoft Media Player, BBC iPlayer, etc... Although
this seems fine, it is essential to not get addicted as too much of it can result in lack of social isolation.
Another example of software application category is Productivity. Such applications like spreadsheets,
databases, word processors, etc... help workers complete task more efficiently. Some popular examples of
productivity are Microsoft Office, Adobe Office and Google Drive. A positive effect of this is that it improves
productivity, greater efficiency, new problem-solving techniques and reduced costs.
Another example of software application category is Information store and Management. This sort of
application store and manage data safely and allows quick retrieval, mostly through the Internet. Some
popular examples are Dropbox, iCloud and Google Drive. This is a benefit for the user as their information is
safely stored, so they won’t have to worry about data loss and.
Java: Java is specialised on website development and mobile applications the code
in this language is useful for different devices as it uses a method to approach
those devices which is write the code once and run it everywhere, also its ability to
move the computer systems easily from one to another makes a reason why this
language has a high demand and Java has a generic and compact code so that
different devices can support the code. Advantages of Java can be that this
programming language is easier to move from one system to another which is
beneficial especially for businesses, also java Is easy to learn because is a high
programming language and so therefore this also means it is easier to debug,
additionally this language is object orientated which means that the programmer
can reuse codes saving time and effort. Disadvantages is this language are that it
needs to go through compiler for the CPU, therefore this may mean that a code
can be longer than expected taking space in memory, another drawback is that
Java provides a poor graphical user interface (GUI) so that means when creating a
software, a programmer can´t depend on Java for GUI as this language is not
developed for complex GUI. Java has a great impact on software development as it
allows to the programmer to move easily from one system to another and so this
is crucial as this determines why Java succeeds.
Although low-level language is long and stressful, they can also be fun and creative. This is because you can
use them to create your own programs, games, or applications that run on the bare metal of the computer.
You can also use them to modify existing programs, such as reverse engineering, patching, or hacking.
On the other hand, high-level language can be used for a wide variety of applications, including web
development, scientific computing, data analysis, artificial intelligence, and video game development.
Furthermore, they produce code that is easier to debug, code that can be shifted and allows for the use of
more flexible program development tools.
Paradigms
In programming, paradigms are different ways a programming language can be organised. Multiple
programming languages can belong to different paradigms. For instance, Visual Basic .NET is relying on classes
such as buttons, labels and forms which represent the basic of the Microsoft Windows operating system.
Below is a table I made listing the different languages, their level, strength/weaknesses and any possible
application you can make with the languages
Procedural
Procedural programming are programming models which are taken from structured programming, based
upon the concept of calling procedure. The main purpose of this, is to help a device perform tasks, and it's one
of the languages programmers use most often as they are often the first one learnt by a programmer. They are
written in a set of well-defined steps which solve a bunch of problem, for example, a simple calculation in C#.
For example, to develop a simple Bank Account App procedurally, you need to create an account for an
individual (account), get an account to deposit or withdraw funds (get account, deposit, withdraw). Procedural
have a bunch of sub routines like functions and procedures and then these can be called from the main
progam. Furthermore, on one hand, the advantages of procedural programming are that it’s excellent for
general-purpose programming, simplicity of code and less demanding on memory use. On the other hand, the
disadvantages of procedural programming are that the program code is harder to write when procedural
programming is written down, the procedural code is often not reusable, which may pose the need to recreate
the code if is needed to use in another application and it’s difficult to relate with real-world objects.
Object-Oriented (OO)
Object-oriented programming is based on the concept of objects. In object-oriented, objects are created from
classes which are usually based on real-world things (e.g., bank accounts, products, customers, etc...). Each
class acts as encapsulation: they contain programming data structures, or objects, which are defined, each
with its own properties or attributes. each object can also contain its own procedures or methods. In addition,
the programmer creates individual interaction between different objects, so they can solve problems. Also,
because each class exists differently, they can be easily adapted to contemplate changes in the real world,
without negatively effecting the whole solution. An example we can consider object-oriented programming is
to a car. A car has a model name, a colour, a year in which it was manufactured, an engine size and so on. We
would therefore create a car object with the name, colour, engine size and year as attributes. The advantages
of OOP are re-usability, which means reusing some facilities rather than building them again and again, data
redundancy, code maintenance, security, better productivity and many more. Whereas on the other hand, the
disadvantages of OOP are steeper learning curve, potential performance overhead, memory consumption,
lower execution efficiency, and complex designs.
Encapsulation: Bundling of data with the methods uses by the programmer to operate
on that data, it is used frequently in a form of classes as then the code will be easier to
reuse for the programmer which can save him time at the time when creating a class of
“something”. The attributes are set to private so it helps with keeping data secure and
through set and get methods you can use them in the class.
Inheritance: Method where the programmer can acquire features and behaviors /
attributes and methods from another class in order to share the same attributes and
change it a little bit to create a new data in the same class if the programmer wants.
Event-driven (ED)
Event-Driven is a programming paradigm in which the program is committed by any event triggered from the
user action, which can be from mice and keyboards. Unlike, procedural, which follows step-by-step, this
typically works non-sequentially with the user able to select operations they want to perform. Some examples
of programming languages that are event-driven are Microsoft Visual Basic .NET, Python, Ruby and Java.
Developers typically focus on programming events handlers, which are codes that specifies the action
triggered by a listener. A listener is a process that waits for a certain event to occur. For example, when a
file>open menu is clicked, a file open dialog will appear. In addition, the advantages of ED are that it enhances
the performance, maintainability, and adaptability of software applications. Whereas on the other hand, the
disadvantage is the complexity, debugging and troubleshooting challenges and difficulties with monitoring.
Machine
Machine programming is about automating the development and maintenance of software. It’s the numeric
codes for the operations that a particular computer can execute. Machine code is also the elemental language
of computers. It is read by the computer's central processing unit (CPU), is composed of digital binary numbers
and looks like a very long sequence of zeros and ones. Therefore, the code must be written for a specific CPU
family, for example, Intelx86 (32-bit) or x6 (64-bit). The advantages of machine programming are that it runs
very fast as no translation is required from the CPU. Also, it’s easy to organise, easy file access, helpful tools
and much more. On the other hand, the disadvantages are that it has limited understandings, vulnerability to
errors and can replace one’s job.
Below is an example of machine code whose function is generic for all M controllers will return
True in case of forced IOs:
Markup
Markup programming language is a text encoding system that consists of symbols inserted in text documents
to control its structure, formatting, or the relationship between its parts. They are mainly used to structure
and format text and other content on a webpage, and it includes programming languages such as HTML and
XML. The advantages of markup language are the cost efficient of the program, the ease to learn, flexibility
and easy to read. Whereas on the other hand, the disadvantages are the complexity in document structure,
limited security and the lengthy code for complex webpages. Also, Markup is a form of language used to
specify the content formatting of a document in a structured manner using specific tags. For example, in
HTML, <p> is used to show the start and end of a paragraph.
Below is an example of <p>
Scripting
Scripting is a way of delivering instructions to a computer (or group of computers), as with all forms of
programming. The instructions in question not only tell a computer what to do but when and how to do it, as
well. Also, it is primarily used to automate tasks for websites and web applications while using an existing
program, and it includes programming languages such as Perl, JavaScript, Ruby and PHP. The advantages of
scripting languages are that most network administrators know how to script, it’s free and each operating
system has a built-in scheduler, which is also free. Whereas on the other hand, the disadvantages are that
typically the lack the coding standards followed by developers. Not all scripts are created equal. Their
structure can wildly vary from one developer to the next, and they can be very hard to read and understand.
An example of scripting language is Perl and Ruby, which are often sued to automate system processes on a
computer by linking and executing tasks that may have been run separately by another user.
For instance, the picture below is an example of scripting languages as if statement, are considered as
conditional statements, therefore, comes in the scripting language
Naming Conventions
Conventions are recommendations specific for programming languages, these
recommendations include methods of how to write the programming language
effectively, programming styles, etc… for examples recommendation that conventions
can offer in programming styled can be functional programming, modular programming
and object orientated programming. A lot of naming conventions are used nowadays
however the are some popular conventions that are used by most programmers.
Advantages of naming conventions are that by using recommendation the code is easier
to read and understand which improves the consistency in within a team which is crucial
in software development, also depending on the program naming conventions can have
a text with some rules (shown below) so it makes it easier for the user to write the
appropriate information. However, a drawback is that the programmer can make a
mistake and name the convention with an existing name, therefore when he starts to
code he will find 2 different elements with the same name which can lead to problems
later on. Despite that human error, naming conventions are useful in software
development because they reduce the need of understand the code fully and so
developers can focus on other bugs affecting the program critically rather than some
syntax or string saving a great amount of time.
For example, to store the shoes size of a person in C#:
Naming Convention Example Characteristic
Snakecase int person_size; Words are in lowercase
linked by an underscore
character
Camelcase int personSize; First letter must be
lower case and upper
case needs to be
applied in the initial
letter of a successive
word.
Pascalcase int PersonSize; Words are delimited by
capital letters
Data Types
A good programming language will always have a range of data types for the code. The
main purpose of data types is to tell the computer how to interpret a certain value, this
is advantageous for the programmer as it avoids errors when data is inputted and also it
gives the value that the programmer expects. Data type will store the value defined by
the programmer, overall, in most languages the common data types are:
Character: This data type stores only a single value, an example can be the initial
of someone’s name (characters are any letters, digits, punctuation marks, or blank
spaces). Memory usage of 1 byte.
String: This data type stores a certain quantity of characters, an example can be
the full name of a person. Memory usage of 1 byte per character. Written as str in
code
Integer: This data stores a whole number avoiding decimal, e.g., Age of people.
Memory usage of 2-4 bytes. Written as Int in code
Real: Real (also known as floating point) stores number with decimals, an example
can be the exact profit of a company in a year. Memory usage of 4-8 bytes.
Boolean: these are values given by the program which stores 2 types of
information, true or false. Memory usage of 1 byte. Written as bool in code
Long: Data type used for large integers such as pi number. Written as Lng in code
Date: Used to store information about date and time, and example can be when in
the systems it asks you about you full date of birth, 00/00/0000 commonly in this
format. Written as dat in code
Single: To store decimal numbers such as Pi Number, written as sng in code
Additionally, there are some other rules besides data types that can be applied to
acquire a more accurate response and reducing the error, for example applying the
maximum of field size or a range between the allowed values. As distinct programming
languages support the use of data types all language has a different style to apply the
data types. The image below shows different styles of applying data types in different
popular languages. Advantages of data types are that they define the size of the
variable, therefore this will allow to the programmer to keep a track of his storage saving
space in the hardware. Another benefit is that as the data is assigned to a format such
as number or string, that will keep the data accurate and will avoid errors later on,
additionally variables will help to understand and to code in an effective way as variables
store the information and they can be extracted whenever the program wants. However,
a drawback of data types is that as the data needs to be precise so that will take more
time to the program to run it therefore it will affect the performance of the software,
specially if the software is running in a hardware with a low RAM. Therefore, data types
are essential in software development due to its accuracy, developers will set to a data
to collect only a certain type of information so the program will be mostly free from
errors, and therefore spotting bugs will also be easier.
Loops
Loops is a sequence of instructions set by the programmer that is continually iterated
(repeated) until a specific condition is achieved. The purpose of loops is that allows to
the programmer to repeat a process several times without having to write the same
commands (code) again to perform a task. Commonly there are 3 types of Loops that are
used in the code, next loops, do loops (some languages use a different name for this
type of loop), and while loops. The advantages of loops is that reduces the chance of
bugs in code as there is less code written and makes the code more readable, another
benefit if loops is that the code is reusable, therefore the programmer does not need to
write the same code over again saving time. However, a drawback of loops is that it is
common to write a loop that never ends so this infinite loop will present the same
outcome multiple times, additionally another limitation is that it takes more time to the
compiler to translate the code. Loops are extremely important in software development
because it allows to shorten a long code into a smaller fragment of code, for example to
store data in a system of workers, the system can be written in hundred lines of code
doing the same thing, however a loop can shorten the code saving a lot of time and a lot
of storage.
Next loops: execute a set of statements if the values of a variable are successive
until a limit of a value is reached.
Do Loops: Executes a block of code once and then the block will be executed if a
Boolean condition is met at the end of the block.
While Loops: To repeat/iterate a certain block of code until a specific condition is
achieved
This example shows how Loops are written in 2 different programming languages ().
VB.NET C#
Pre-test Loops: Pre-test Loops:
While c < 10 Do Until c = 10 // no "until" keyword
while (c < 10)
c += 1 c += 1 c++;
End While Loop
As shown in this example, in VB.NET the meaning of the code is that while c is less than
10 add a value +1 to C this loop will do so until it reaches 10. On the other hand, in C#
there is the same loop going on but in a different method, as shown in the table in C#
there is C++ that means the same as .NET it simply adds one to the value of C while C is
less than 10. Secondly, there is an array collection looping. In VB.NET the code shows
that for each S in string names the string must be collected, therefore in that case it will
only appear one name but in C# this is written differently, in this case some of the code
is written inside brackets and foreach is written joined which is how the program detects
the command. The next section is about breaking Loops, as shown in the example if I is
equal to 5 the loop will be broken, there is a little difference between the languages in
VB.NET the command to break the loop is to write Exit While, but in C# the command
to break the loop is simply break;. Finally, there is a section which shows how to
continue a loop, firstly it is stated that for i the values are 0 to 4 and there is an IF
statement which shows that if the value i Is less than 4 the loop will iterate otherwise it
will be stopped. The same applies for C# however it Is written in a more complex way
and it is written in 3 lines which can be a little bit confusing.
Functions
A function is a fragment of code carrying out a specific task that can be reused multiple
times in the program rather than writing the code over again. Benefits of functions is
that allows to programmers to decompose a problem and assign each function a
particular task, another benefit is that the block of code can be used as much as the
programmer wants once the code is defined and functions make programs more
manageable and easier to understand, also it will take less time to code so that means
that the cost of the project will be less. However, a drawback is that in functions
variables are used and when more functions are added, more variables are added as
well leading to more memory usage and less overall performance. This has a great
impact in software development because the problem can be broken down in different
parts and so these parts can be delivered to different developers in order to code better
therefore the outcome will be positive. There are 4 types of functions which are,
Functions with arguments and return values
Functions with arguments and without return values
Functions without arguments and return values
Function without arguments and without return values
The table shows an example of how functions are written in 2 different programming
languages.
VB.NET C#
' Pass by value (in, default), reference // Pass by value (in, default), reference
(in/out), and reference (out) (in/out), and reference (out)
Sub TestFunc(ByVal x As Integer, ByRef y void TestFunc(int x, ref int y, out int z) {
As Integer, ByRef z As Integer) x++;
x += 1 y++;
y += 1 z = 5;
z=5
}
End Sub
As shown in this example, in VB.NET 1 will add into the value of x and y and z is equal to
5, in C# is written in a different method such as x++, the symbols ++ have the same
meaning as the VB.NET code it shows that 1 must add into the value x or y. There are
variables set before starting with the function which are a and b as a Integer, there is a
little difference between the 2 languages of how to set up the variables, in .NET the
programmer must start with DIM as it is the command that the program recognizes as a
data type and after inputting the values the code must be closed stating what that data
type must be, in this case the variables are set as an Integer, but in C# it is written in a
simpler way, “int” means integer and after int the programmer only needs to write the
variables for each value. The function is simply saying that add the numbers as an
Integers and for each Integer in the value of i add 1, in both languages there is a
difference in how the function ends. In VB.NET to end the functions the programmer can
simply write “End Function” however in C# is a bit different as to end the function it
needs to be written “return sum”
Initializing Initializing
Dim correct As Boolean = True bool correct = true;
Dim b As Byte = &H2A 'hex or &O52 for byte b = 0x2A; // hex
octal object person = null;
Dim person As Object = Nothing string name = "Dwight";
Dim name As String = "Dwight" char grade = 'B';
Dim grade As Char = "B"c DateTime today =
Dim today As Date = #12/31/2010 12:15:00 DateTime.Parse("12/31/2010 12:15:00
PM# PM");
Dim amount As Decimal = 35.99@
decimal amount = 35.99m;
Dim gpa As Single = 2.9!
float gpa = 2.9f;
Dim pi As Double = 3.14159265
Dim lTotal As Long = 123456L double pi = 3.14159265; // or
Dim sTotal As Short = 123S 3.14159265D
Dim usTotal As UShort = 123US long lTotal = 123456L;
Dim uiTotal As UInteger = 123UI short sTotal = 123;
Dim ulTotal As ULong = 123UL ushort usTotal = 123;
uint uiTotal = 123; // or 123U
Nullable Types ulong ulTotal = 123; // or 123UL
Dim x? As Integer = Nothing
Nullable Types
Anonymous Types int? x = null;
Dim stu = New With {.Name = "Sue", .Gpa
= 3.4} Anonymous Types
Dim stu2 = New With {Key .Name = "Bob", var stu = new {Name = "Sue", Gpa = 3.5};
.Gpa = 2.9}
var stu2 = new {Name = "Bob", Gpa =
2.9}; // no Key equivalent
Implicitly Typed Local Variables
Dim s = "Hello!"
Dim nums = New Integer() {1, 2, 3} Implicitly Typed Local Variables
Dim hero = New SuperHero With {.Name = var s = "Hello!";
"Batman"} var nums = new int[] { 1, 2, 3 };
var hero = new SuperHero() { Name =
Type Information "Batman" };
Dim x As Integer
Console.WriteLine(x.GetType()) ' Type Information
System.Int32 int x;
Console.WriteLine(GetType(Integer)) ' Console.WriteLine(x.GetType()); //
System.Int32 System.Int32
Console.WriteLine(TypeName(x)) ' Console.WriteLine(typeof(int)); //
Integer System.Int32
Console.WriteLine(x.GetType().Name); //
Dim c as New Circle
Int32
isShape = TypeOf c Is Shape ' True if c is
a Shape
Circle c = new Circle();
isSame = o1 Is o2 // True if o1 and o2 isShape = c is Shape; // true if c is a
reference same object Shape
As shown in this example, in VB.NET there are several data types and all of them start in
a code line with DIM command, DIM is used to declare a data type for variables. To store
a Boolean data type in VB, the code needs to start with Dim so that the code/variable is
stored as a data type and then depending on the condition the programmer must set the
Boolean as a true o false condition, in this case the Boolean is written as a true condition
when something is correct otherwise it will be false, on the other hand in C# the method
of how to set a data type is simpler, for Boolean data type the programmer needs to
write bool and the program will detect it as a data type, afterwards the programmer
needs to set the Boolean if correct o false and the condition, in this case if the bool is
correct then the result will be correct. Generally Boolean is used when there is an
options of T/F or gender M/F.
To store a string in C# the programmer only needs to assign the name of the string as
shown, string name= “something”; , the code is really simple as the name can be set
straight forward inside quotes but in VB.NET is a little bit different, as mentioned before
in .NET all data types codes must start with DIM and another really important thing is
that all data types must be written outside the sub events so that the programmer can
use them in any part of the code. In VB.NET the programmer must write the name of the
object after DIM and write that the object must be stored as a string, then the
programmer needs to press equals and he needs to assign a name for that specific
string.
Another example of data type is to store certain type of information as a lower case or
upper case. In VB.NET to store data as a lower case the code needs an object name as a
Ushort and then the value, Ushort is the specific part that makes the characters into
lowercase, on the same language to make the characters in uppercase the structure is
the same however what changes now is instead of writing Ushort now is ULong, that will
make all the character into uppercase. On the other hand, in C# to write in lowercase
firstly the programmer needs to state if it is short or long, in this case firstly he needs to
write short, the object and finally the value. For uppercase the same applies however but
instead of short the code must be written with long.
Overall, the main difference is simply that in VB.NET to state data type it is must to start
with DIM while in C# it is easier to write the code and understand it.
Choices – If Statements
If statement is a code that carries out a task depending on which criteria the condition
met, normally there are 2 outcomes in IF statements, one outcome is executed if the
statement is true and the second one is executed if the statement is false. An advantage
of choices is that the programmer saves some lines of code as there are other ways to
present the outputs however choices make it simpler so it will save some space in the
storage, another benefit is that it gives to the user 2 choices so the program won´t do
always the same, for example in a game there may be a level where the user needs to
choose between 2 choices, depending on the choice he selects a specific thing will
happen. But a drawback of choices is that when more If statements of Nested If
statements are added, the code gets more complex so if a bug is made it will be harder
to debug and it will take time. However, choices are effective in software development
because it will let the user/programmer know whether the program will execute that line
of code or not, saving a lot of storage compared to other methods, also it will allow to
the user to select from multiple outputs which is better for him, otherwise for the user
the software would be boring. There 4 conditional statements for IF statement.
If: specify which code to be executed if the condition met is true
Else: specify which code to be executed if the condition met is false
Else if: specify a new condition to test if the first one result to be false
Switch: to specify multiple blocks of code to be executed
VB.NET C#
' Null-coalescing operator if called with 2 // Null-coalescing operator
arguments x = y ?? 5; // if y != null then x = y, else x
x = If(y, 5) ' if y is not Nothing then x = y, =5
else x = 5
// Ternary/Conditional operator
' Ternary/Conditional operator (IIf evaluates greeting = age < 20 ? "What's
2nd and 3rd expressions) up?" : "Hello";
greeting = If(age < 20, "What's up?",
"Hello")
if (age < 20)
greeting = "What's up?";
' One line doesn't require "End If"
If age < 20 Then greeting = "What's up?" else
If age < 20 Then greeting = "What's greeting = "Hello";
up?" Else greeting = "Hello"
// Multiple statements must be enclosed in
' Use : to put two commands on same line {}
If x <> 100 AndAlso y < 5 Then x *= 5 : y if (x != 100 && y < 5) {
*= 2 x *= 5;
y *= 2;
' Preferred }
If x <> 100 AndAlso y < 5 Then
x *= 5
y *= 2
End If
' Use _ to break up long single line or use No need for _ or : since ; is used to
implicit line break terminate each statement.
If whenYouHaveAReally < longLine And
itNeedsToBeBrokenInto2 > Lines Then _
UseTheUnderscore(charToBreakItUp)
if (x > 5)
'If x > 5 Then x *= y;
x *= y
else if (x == 5 || y % 2 == 0)
ElseIf x = 5 OrElse y Mod 2 = 0 Then
x += y;
x += y
ElseIf x < 10 Then else if (x < 10)
x -= y x -= y;
Else else
x /= y x /= y;
End If
As shown in this example, in VB.NET the IF statement shows if the age is below 20 then
the program needs to show What´s up, otherwise it will show hello by, otherwise it
means bigger than 20. To write the code VB.NET needs of the words “Then greeting” and
“Else greeting” to write what the programmer wants to show after input, however in C#
is simpler to write because the programmer only needs to write Greeting and what he
wants to show. On the other hand, in C# to write multiple statements the programmer
needs to write the statements inside square brackets whereas in VB.NET the 2
commands can be written on the same line. Also, as VB.NET can have a long line
because the commands can be written in the same line, the programmer sets a
statement which separates a line into 2, as shown in the example to execute that the
programmer should use underscore whenever he wants his line to be separated but in
C# this is not shown because the statements were written on different lines this is
advantageous as it will consume less memory. Finally, in VB.NET to show a colour of an
axis or to modify any part of the program, the code is written like x (any colour) +=1,
the first character will select the colour and +=1 means that the specific colour selected
will be placed once so it depends on the programmer how many numbers of time, he
wants to show the colour. But on C#, all the code is written on a single line, r++ means
that it increases the value of the variable by 1 is the same as VB.NET but written in a
different style, finally break means that it is the end of the loop so the colour will stop on
that point
Comments
Comments are explanations written near the source code of the program to understand
what the code is doing, this is extremely important and beneficial when other
programmers are looking at your program, if there are annotations then it will be easy to
understand what the code is doing and easy to sport any bug. There are 2 types of
comments which are shown in the table below. The main benefit of comments is that
allows to other programmers to understand what is the code doing, this is beneficial
when a team is working on a project as the program needs to be understood by
everyone in order to offer the best code possible and to spot any bug, another
advantage is that for the final program the comments don´t take any of the storage
leaving to programmers to write as much comments as they need. However, a drawback
of comments is that they need to be updated as stated before, If the code is manipulated
but not the comment that will create confusion, additionally depending on the program
comments can only be written in single line such as VB.NET. Overall, comments are
necessary in software development as it gives the accurate information to developers of
what is the code doing, so if a programmer leaves the industry or project, others
developers will know what they´re doing and that also will help to sport bugs quicker.
VB.NET C#
' Single line only // Single line
REM Single line only /* Multiple line */
''' <summary>XML comments</summary> /// <summary>XML comments on single
line</summary>
/** <summary>XML comments on multiple
lines</summary> */
As shown in this example, in VB.NET there is only 1 type of comment which is the single
line comment, to start to write a comment the programmer needs to start with the
apostrophe and then he can start writing the comment, by the, also the compiler won´t
take any notice about the comments because of the apostrophe/REM. Comments are
effective however in this programming language the disadvantage is that the
programmer can only write a single line comment which limits his capacity to write the
code detail and therefore the programmer won´t be able to comment on complex code
as there is no space, an alternative to that can be to make a lot of single line comments
which is not productive and takes memory, therefore this programming language is not
the optimum one to make comments. On the other hand, in C# there are both
comments available however it is a different method to write it, the programmer in C#
needs to start with // for single comments and with /* for a large comment, the
advantage is that the programmer can document his code in multiple lines letting him
comment the complex codes as well, one of the disadvantages is that it may take
memory. Finally, to write a summary of the comment, in VB.NET the programmer should
start with triple apostrophe and write the summary inside chevron however in C# the
programmer needs to start with slash and chevron for single lines but there is another
code for multi lines which is by a slash and 2 stars.
Subroutines – Functions/Procedures
Subroutine is a small chunk of code that performs a specific task, subroutines make the
code easier to read and reusable. Also, the programmer can test the subroutines
separately instead than running the whole program which makes subroutines easier to
debug. An Advantage of subroutines is that the code is easier to understand and read,
this is because the program breaks the code into smaller fragments, another benefit is
that subroutines can be added into the library to use it in another program and also a
programmer can extract a subroutine from a library to use it, additionally if there is a
large program, different programmers can work on different subroutines for the same
program as that will improve the speed, productivity and there will be a better outcome
if programmers join the subroutines together. However, a drawback is that subroutines
can only be used in functions and procedures.
VB.NET C#
' Pass by value (in, default), reference // Pass by value (in, default), reference
(in/out), and reference (out) (in/out), and reference (out)
Sub TestFunc(ByVal x As Integer, ByRef y void TestFunc(int x, ref int y, out int z) {
As Integer, ByRef z As Integer) x++;
x += 1 y++;
y += 1 z = 5;
z=5
}
End Sub
When it comes to comparing & contrasting programming languages, there are other many factors to look out
for, such as the requirements (e.g., hardware, software and special devices), performance and ease of
development. Furthermore, some programming languages require specific hardware (e.g., CPU) and software
(e.g., Python) for running and developing a program. Below is a picture showing the different domains
produced through programming languages
Reliability
Reliability is crucial in software application quality as it guarantees consistent and accurate performance in
different situations. If a software application is dependable, it operates as planned without any unforeseen
crashes, errors, or data loss. This builds trust among users, as they can depend on the software to always
produce the desired outcomes. Dependable software reduces downtime, avoids data loss, and upholds system
integrity. It also aids in establishing a favourable image for the software and the individuals who created it.
Usability
Ensuring a positive user experience and satisfaction levels depends on the functionality of software
applications. When a software program is intuitive and easy to navigate, minimal effort is required to learn
and operate it, making it user-friendly. Functional software that is effective offers clear guidance, easy-to-use
interfaces, and smooth operations to help users complete tasks efficiently. It accelerates learning, reduces
mistakes, and boosts efficiency. Factors such as accessibility, responsiveness, and customization are
considered in usability to ensure the software meets the needs of various users. A popular technique to get
some feedback is by rapid application development where the programmer rapidly alters the layout, schemes,
and other elements of the application to receive quick feedback from the user and fix or improve the errors.
For example, social media websites like Instagram, snapchat, Facebook, WhatsApp etc. All need to make sure
their apps and websites are usable. They do this by having instant messaging and by using different software
that make their apps and websites run better. They also make it, so their apps and website run on all devices
almost perfectly. This helps usability because it makes sure that no matter what device a user is using, they
can use that company’s apps or website no matter what. Also, the software should have a good user-interface
because that will affect how the user will use the application. Advantages of Usability is that the programmer
will meet the customer expectations by different methods such as a beta in a game, another advantage is that
it will allow to the user to have an easier navigation which means that the user is more likely to use that
software more.
Pattern Generalisation
Pattern abstraction is crucial in software application quality as it enables the development of code that is both
reusable and scalable. Software developers can transform identified patterns in their code into reusable
components or functions by abstracting and generalizing them. This decreases repetition in code, boosts
maintainability, and improves the overall efficiency of the software. Through the use of pattern generalization,
developers can quickly modify and expand their codebase, resulting in speedier development processes and
reduced mistakes.
Logical Operations
Logical operators a symbol or word used to connect two or more expressions. These include operations such
as And, Or, Not, etc... which operate on Boolean principles. Furthermore, they are used to combine conditions
in if statements and various loops. For example, in the picture below there is a list of logical operators used in
C++
NOTICE: be careful when using different languages. For example, in VB.NET, the symbol ‘=’ is used to test
equality. However, in other programs, such as Java, C, C++, C#, the ‘==’ is used instead.
Subroutines, Functions and Procedures
Subroutines, functions and procedures are terms used in procedural programming, where code is split into
different sections, and each section is called subroutines, functions and procedures depending on the
programming language used. Furthermore, each one is responsible for performing a single task, where the
coding script is anywhere between 5 to 50 lines. In addition, the use of these modules tends to be easier to
write, read and debug as code written in these ways can usually be reused. You can see this in the example
below
Library Functions
Library functions are functions stored in a special library file (nearly all programming
hold this function), however sometimes it depends on the programming language
chosen, for example in C language Library function are localised in the header files. This
function provides to the programmer solution to different complex problems. All of the
information that a programmer may looks in this function are stored in a common
location known as library. What offers to the programmer is common operations such as
formatting appearance, find the exact length of a string, calculations, etc… Additionally,
the programmer can install some functions from google which will amplify his library
function, Microsoft offers his library for the people to install functions. This is beneficial
as it saves a lot of work and time. The main advantage of Library function is that it
provides to the programmer with codes that work perfectly and can be used in the
program, therefore this will save a lot of time and the programmer will be able to tackle
a problem with a code that even he doesn´t fully understand, another benefit is makes a
high degree of code reusing as a lot of coding can be extracted from the library, also this
ensures accuracy of code and so the programmer doesn’t need to check If there is bugs
inside the code extracted from the library, additionally the code can be manipulated into
what the programmer wants if it´s necessary. However, a drawback of library functions is
that if the library code is updated then the programmer should recompile the whole
program again to apply the new one and that is time consuming. Overall, libraries are
essential in software development, it makes it easier for developers to tackle problems in
an efficient way by providing reusable chunks of code, this is also a time saving and
ensures the code free from bugs.
Data Structures
Data structure is a way of organising and collecting specific data in a formal structure.
This formal structure helps to the computer to keep the information organised and
processed so that the information can be retrieved rapidly and helps to the data to be
processed effectively. Data Structure is essential is the programmer wants to program
fluently and without problems, for example with the use of data types, the programmer
can decrease the chance of error making the program more effective, also developers
will learn more data types as they try more programming languages. Depending on the
programming language, some of the data structures can be restricted however all
programming language provides the main data structures which are; Arrays, Strings,
Stack, Queue, Record, Graphs, Linked Lists. Data structure is essential in software
development as it is necessary for executing efficient algorithms inside the program,
also if data structure has a good structure the programmer will be able to abstract some
data and save a good amount of time.
Data Structures
Data structure is a programming technique used to collect and organise data items. And sometimes, it is
possible to program more effectively through the selection of specific data structures. Therefore, this is why
software developers become familiar with different data structures as they learn about different programming
languages. In addition, there are many data structures, but here are the most common:
String (Or Text) - Used to store a collection of characters with one character requiring one byte of RAM. These
can also be fixed length, for example, only 10 characters. Some languages also use a one-dimensional
sequence of characters to simulate a string, rather than using specific string data type. Furthermore, string is
mainly used to store data entered by the user, such as username or password.
Here is an example demonstrated in VB.NET
Array (One-Dimensional) - An array can only store one type of data. Any type of data such as integers,
characters and Booleans are acceptable. For example, if we wanted to store the temperature of seven days,
we could create an array of seven decimal numbers. It is also possible to access individual elements in the
array using the required index. Normally as being a static data structure, the variable has a
fixed field size however some programming languages allow to manipulate the fixed size
as they are more flexibles. Additionally, with array the programmer can access to the
specific element he wants by applying the necessary/required index. The image below shows
the creation of this simple one-dimensional array in C
Stack (LIFO)
Stack is a data type with the purpose of collecting elements that are coming in. Stack
has 2 main operation which are described as push and pull (also known as push and
pop). Stack is an essential part of the program when some operation is taking place. If a
computer is processing something and some important factor comes inside the process
which has more importance, then the current process will be interrupted/stopped and
deal with the important part
As stated before, Stack can only be accessed in the way of last in first out (Unlikely an
array which the elemetns can be accesed in any order) . This is because stack required
of a data type and that data type will follow the process of last in first out. This is
advantegous for the programmers as it helps to reduce likely errors and to process
better the recursive alghorithms. Additionally, Stacks can be included in the library of
programming languages offering to the programmers different methods and coding to
tackle the problems. Also, stacks can contain different data types elements. However a
drawback of stack is that it offers a limited size so the programmer cannot excced to the
amount he wants, and so before creating the stack the total size must be defined
first.Despite the drawback stacks are really important in software development beacause
they can abstract a lot of information and stacks maintain an order of the elemetns that
need to be executed. Another example of stack in computing can be when a character in
a game collects a series of objects. The character is most likely to use the last object the
he collected (last object in, the first one to be out/used) however he will have on his
invenotory other more objects that he collected previously (that will make the pile)
LIFO stands for last in, first out, and it describes how data is treated in some data structures. This means that
the last item of data pushed on, is also the first item of data that may be pulled back off.
Queue (FIFO)
Unlike stack, queue is known as a FIFO data structure, and it considers two basic operations, add and remove,
and they are also viewed horizontally. Furthermore, only data at the head of the queue can be
accessed/removed, and they are also a vital part of any computer's operating system.Queues are essential for
every program, an example of it can be phone call system, as more people call a company more are added to
the queue and normally it follows the FIFO system, the first one that call is the first one that leaves. Also, there
are 4 types of queues which are Simple Queue, Circular Queue, Priority Queue, Double Ended Queue. And
there will be an example of how queues are viewed. A benefit of queue is that it uses a better way to store the
space, if there is space available the element will be added in and will be the first one to leave. Another
benefit is that operations such as insertion or deletion are easy to perform as they follow FIFO rule,
additionally queues are really useful when a service is being used by multiple customers. However, some
drawbacks is that it offer limited space so the programmer cannot work flexible and so the maximum size
must be defined from before, another drawback is that operation such as insertion or deletion are time
consuming. Overall queues are useful in software development as it gives a structured information of which
things to execute first, this structure makes it easier for the developer and provides advantages such as not
losing any storage which is beneficial for the program and its performance.
Extracting A Substring
The output will be ‘Substring is ua’, because we start extracting at position 3, and we want to extract the nest
2 characters.
Bibliography
Low-Level Language
https://sites.google.com/a/iharrow.org.uk/compsci/1-1-data-representation/1-1-2-
hexadecimal/3-uses-of-hex-html-mac-debugging?tmpl=%2Fsystem%2Fapp
%2Ftemplates%2Fprint%2F&showPrintDialog=1
High-Level Language
https://towardsdatascience.com/3-tools-to-track-and-visualize-the-execution-of-your-
python-code-666a153e435e
Machine
https://www.se.com/uk/en/faqs/FAQ000247106/
Markup
https://studio.code.org/docs/concepts/html/html-tags/
Scripting
https://debug.to/378/if-conditions-in-programming-languages
Comparing & Contrasting Programming Languages
https://twitter.com/seokonikaislam/status/1538110507227312128
Identifiers
https://alok-verma6597.medium.com/case-styles-in-development-camel-pascal-snake-
and-kebab-case-ed8e7b2497af
Data Type
https://www.comteachers.com/dataypes-in-vbnet
Statements
https://www.c-sharpcorner.com/UploadFile/75a48f/python-if-else-nested-if-elif/
Logical Operations
https://www.geeksforgeeks.org/written-version-logical-operators-c/
Subroutines, Functions and Procedures
https://bournetocode.com/projects/gcse_computing_fundamentals/pages/3-2-7-
subroutines.html
String
https://www.homeandlearn.co.uk/NET/nets1p13.html
Array
https://study.com/learn/lesson/one-dimensional-arrays.html
Stack (LIFO)
https://www.programiz.com/dsa/stack
Queue (LIFO)
https://www.geeksforgeeks.org/queue-data-structure/
Structure (Or Record)
https://medium.com/nerd-for-tech/c-class-struct-record-record-struct-d3b21c57d9bb
Finding The Length Of A String In Characters
https://www.javastring.net/java/string/length-method-examples