03-003 Pseudocode
03-003 Pseudocode
Pseudocode
Task
Introduction
This task will introduce the concept of pseudocode. Although pseudocode is not a
formal programming language, it will ease your transition into the world of
programming. Pseudocode makes creating programs easier because, as you may have
guessed, programs can sometimes be complex and long, so preparation is key. It is
difficult to find errors without understanding the complete flow of a program. This is
the reason why you will begin your adventure into programming with pseudocode.
Once you’ve mastered the art of using pseudocode to tackle complex programming
problems, you’ll move on to the second section of this task, where you’ll have the
opportunity to learn about algorithms, and how you can write them efficiently and
succinctly.
Extra resources
If you’re taking this course, you’re brand new to the Python programming language.
You may even be new to programming altogether. Either way, you’ve come to the right
place!
HyperionDev knows what you need, but there are also other avenues you can explore
for help. One of the most frequently used by programmers worldwide is Stack
Overflow; it would be a good idea to bookmark this for future use.
Also, our blog is a great place to find detailed articles and tutorials on concepts into
which you may want to dig deeper. For instance, when you get more comfortable with
programming, if you want to read up about machine learning, or learn how to deploy
a machine learning model with Flask, you can find all this information and more on
our blog.
The blog is updated frequently, so be sure to check back from time to time for new
articles or subscribe to updates through our Facebook page.
Pseudocode is not actual code; instead, it is a detailed yet informal description of what
a computer program or algorithm must do. It is intended for human reading rather
than machine reading. Therefore, it is easier for people to understand than
conventional programming language code. Pseudocode does not need to obey any
specific syntax rules, unlike conventional programming languages. Hence, it can be
understood by any programmer, irrespective of the programming languages they’re
familiar with.
Algorithms
Simply put, an algorithm is a step-by-step method of solving a problem. To understand
this better, it might help to consider an example that is not algorithmic. When you
learned to multiply single-digit numbers, you probably memorised the multiplication
table for each number (say n) all the way up to n x 10. In effect, you memorised 100
specific solutions. That kind of knowledge is not algorithmic. But along the way, you
probably recognised a pattern and made up a few tricks.
For example, to find the product of n and 9 (when n is less than 10), you can write n − 1
as the first digit and 10 − n as the second digit (e.g., 7 x 9 = 63). This trick is a general
solution for multiplying any single-digit number by 9. That’s an algorithm! Similarly, the
techniques you learned for addition with carrying, subtraction with borrowing, and long
division are all algorithms.
One of the characteristics of algorithms is that they do not require any intelligence to
execute. Once you have an algorithm, it’s a mechanical process in which each step
follows from the last according to a simple set of rules (like a recipe). However, breaking
down a hard problem into precise, logical algorithmic processes to reach the desired
solution is what requires intelligence or computational thinking.
In some instances, you may be required to draft algorithms for a third party. Therefore,
it is essential that your algorithms satisfy a particular set of criteria so that they can
easily be read by anyone.
Generally, an algorithm should usually have some input and, of course, some eventual
output.
Input and output help the user keep track of the current status of the program and
they also aid in debugging if any errors arise. Debugging is the process of identifying
and resolving errors, or “bugs”, in software.
For example, say you have a series of calculations in your program that build on each
other, so it would be helpful to print out each of the programs to see if you’re getting
the desired result at each stage. Therefore, if a particular sequence in the calculation is
incorrect, you would know exactly where to look and what to adjust.
Take a look at the pseudocode example below that deals with multiple inputs and
outputs.
Problem
Write an algorithm that asks a user to input a password and then stores the password
in a variable (the simplest structure we use in coding to store values – you’ll learn more
about these soon) called “password”. Subsequently, the algorithm requests input from
the user. If the input does not match the password, it stores the incorrect passwords in
a list until the correct password is entered, and then prints out the content of the
variable “password” (i.e., the right password) and the incorrect passwords.
print out the “password” and the incorrect inputs (which should be
none at this point)
Variables
In a program, variables act as a kind of “storage location” for data. They are a way of
naming or labelling information so that we can refer to that particular piece of
information later on in the algorithm. For example, say you want to store the age of the
user so that the algorithm can use it later. You can store the user's age in a variable
called “age”. Now, every time you need the user's age you can input the variable “age”
to reference it.
As you can see, variables are very useful when you need to use and keep track of
multiple pieces of information in your algorithm. This is just a quick introduction to
variables, and you will get a more in-depth explanation later on in this course.
Writing algorithms
Now that you are familiar with variables, take a look at some of the important factors to
keep in mind when writing algorithms for your pseudocode.
Clarity
Clarity in algorithms is crucial. Your algorithm should be unambiguous, which means
an algorithm should be straightforward and not open to multiple interpretations.
Ambiguity occurs when a statement can be understood in various ways. You should
Correctness
Algorithms must accurately address and resolve a specific set of problems, which is a
concept known as correctness and generality. Your algorithm should execute without
errors and effectively solve the problem it's designed to address.
Capacity
Last but not least, consider the capacity of your computing resources. Resources such
as CPU power and memory are limited. Some tasks might require more memory than
your computer has or could take too long to complete. It’s important to find ways to
write efficient code to reduce the load on your machine.
Pseudocode syntax
There is no specific convention for writing pseudocode, as a program in pseudocode
cannot be executed. In other words, pseudocode itself is not a programming
language. It is a model of all programming languages that one uses to make eventual
coding a little simpler.
Examples
Consider the following examples:
Example 1
An algorithm that prints out “passed” or “failed” depending on whether a student's
grade is greater than or equal to 50 could be written in pseudocode as follows:
get grade
print "passed"
else
print "failed"
Example 3
An algorithm that requests an integer from the user and prints "fizz" if the number is
even or "buzz" if it is odd would be written like this:
print "fizz"
print "buzz"
Example 4
An algorithm that calculates the grade average by inputting and adding up the grades
of each of the 10 students, and then prints out the class average, would be written as
follows:
Calculate the class average by dividing the total grade sum by ten
Example 3 flowchart
There are a number of shapes or symbols used with flowcharts to denote the type of
instruction or function you are using for each step of the algorithm. The most common
symbols used for flowcharts are shown in the table below:
Symbol Use
Well, this way of thinking combines some of the best features of mathematics,
engineering, and natural science. Like mathematicians, computer scientists use formal
languages to denote ideas (specifically computations). Like engineers, they design
things, assemble components into systems, and evaluate tradeoffs among alternatives.
Like scientists, they observe the behaviour of complex systems, form hypotheses, and
test predictions.
On one level, you will be learning to program, a useful skill by itself. On another level,
you will use programming as a means to an end. As we go along, that end will become
clearer.
Code hack
Pseudocode is one of the most underrated tools a programmer has. It’s worth getting
into the habit of writing your thought process in pseudocode in a book or a separate file
before you actually begin coding. This will help you make sure your logic is sound and
your program is more likely to work!
● Use a plain text editor like Notepad++. Create a new text file called
pseudo.txt inside the folder for this task.
○ An algorithm that reads a grocery list and prints out the products
(in alphabetical order) that are still left to buy.
10
HyperionDev strives to provide internationally excellent course content that helps you
achieve your learning outcomes.
Do you think we’ve done a good job or do you think the content of this task, or this
course as a whole, can be improved?
11