Chapter 1

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 41

OVERVIEW OF

PROGRAMMING
LANGUAGES
ASSOC. PROF. TS. DR. ZAID BIN OMAR
SECTION : 05 & 06
2023/2024-1
What is Programming? (1/2)
• Let’s define a computer
• One that computes: a programmable electronic device that
can store, retrieve and process data.

• What is programming?
• Much of our behaviour is characterized by logical sequences.
• E.g. Turning a page by hand
1. Lift Hand
2. Move hand to the right side of book
3. Grasp top-right corner of page
4. Move Hand from right to left until page is positioned
5. Let go of page.
What is Programming? (2/2)
• What is programming? (cont.)
• Many things are done is a certain order of sequence. E.g. walking,
baking a cake, manufacture a pen etc.
• Solving math problems are done in a sequence.
• Describing the order and sequence of operations in a process is
called programming.
• In this course, we are going to learn about computer
programming.

• What is a computer program?


• It is a list of sequences or steps the computer performs to solve a
problem.
• The process of describing (or writing) these steps is called
programming.
• The list itself is called a computer program, or just program.
Program Development (1/3)
• A computer is not intelligent – it cannot analyse a
problem and come up with a solution.
• Human must analyse the problem, develop the
sequence of instructions to solve the problem and
describe it to the computer – We as programmers.

• Advantages of using a computer?


• Computer can repeat the solution very quickly
• Can perform consistently again and again
• Frees people from repetitive, boring tasks.
Program Development (2/3)
• Program development is a three-phase process
A. Problem Solving Phase
1. Analysis and specification
• Understand (define) the problem, and what the solution must do
2. General solution (algorithm)
• Develop a logical sequence of steps that solves the problem
3. Verify
• Follow the steps exactly to see if the solution really does solve the
problem.
B. Implementation Phase
1. Concrete solution (program)
1. Transfer the algorithm into a programming language
3. Test
1. Run the program, manually check the results. If there are errors,
analyse the program, algorithm and determine the source of errors
and make corrections.
Program Development (3/3)
• Program development is a three-phase process (cont.)
C. Maintenance Phase
1. Use
• Use the program
2. Maintain
• Modify the program to meet changing requirements, or the correct
errors that may show up.
What is an Algorithm? – informal review
• Programming process is begun by first analysing the
problem and developing the general solution.
• The general solution is called algorithm.
• A computer program and an algorithm look similar -
because all programs are algorithms!
• Recap:
• A program is simply an algorithm that has been written for a
computer!

• An algorithm is a verbal or written description of a


logical sequence of actions.
• E.g. recipes, instructions, directions
Examples of algorithms? (1/3)
• Algorithm to start your car
1. Insert the key
2. Depress the brake pedal
3. Make sure the transmission in in Park (or neutral)
4. Turn the key to start position
5. If the engine starts within six seconds, release the key to
ignition position
6. If the engine doesn’t start, release the key and gas pedal,
wait for ten seconds and repeat steps 3 to 6 again but not
more than five times.
7. If the car doesn’t start, call the garage.
Fun Fact!
• Algorithm derived its name from Persian Muslim
mathematician Al-Khawarizmi.
Examples of algorithms? (2/3)
• Write the algorithm to make a peanut butter and jelly
sandwich
1. Put the bread, peanut butter, jelly, knife and plate onto the
workspace.
2. Place two slices of bread on the plate
3. Using the knife, spread peanut butter on one slice.
4. If you want jelly, using the knife, spread jelly on the other
slice.
5. Slap the two slices together, sticky side in.
6. Repeat steps 2 through 5 for each sandwich needed.
7. Eat the sandwiches.
Examples of algorithms? (3/3)
• Algorithm for a simple ATM machine
1. Insert bank card and get the password from the user
2. If the password is invalid, display error message and skip to
step 6
3. Get the inputs
1. Get the transaction type (deposit or withdrawal) and the amount from
the user
2. Get the current balance from the bank
4. If the transaction is withdrawal, check the current balance.
1. If amount is greater than the current balance, show error message
and skip to step 6
2. If amount is equal or less, subtract the amount from the current
balance
5. Output error message, or the cash, and the current balance.
6. As the user whether to repeat steps 3 through 6 for another
transaction?
What is an Algorithm? – Formal definition
• Can you figure it out from previous examples?

An algorithm is an ordered set of unambiguous,


executable steps that defines a terminating process.
Characteristics of an Algorithm
1. Each and every instruction should be precise and
unambiguous.

2. An algorithm should have finite number of steps.

3. An algorithm should produce correct result.

4. An algorithm should not use particular programming


language.
How algorithms are described? (1/4)

Through step-by-step
diagrams. E.g. origami
How algorithms are described? (2/4)

Flowcharts
How algorithms are described? (3/4)

List of instructions or 1. Insert the key


2. Depress the brake pedal
steps. 3. Make sure the transmission
in in Park (or neutral)
4. Turn the key to start position
5. If the engine starts within six
seconds, release the key to
ignition position
6. If the engine doesn’t start,
release the key and gas
pedal, wait for ten seconds
and repeat steps 3 to 6 again
but not more than five times.
7. If the car doesn’t start, call
the garage.
How algorithms are described? (4/4)

Pseudocode procedure IntegerDivision


input : n, d
output: result
begin
result ← 0
while n ≥ d
n←n-d
result ← result + 1
end
return result
end
Aspects of Computers and Their Operation
• A computer typically has memory, processing unit, and
input and output.

Memory – Store information and program (RAM, Hard


drive, flash drive etc.)

Processing unit – Execute (run) the program and produce


results (CPU, GPU)

Input/Output – Obtain input from user and produce


output (keyboard, mouse, printer, screen)
Programming Languages

A programming language
is a simplified form of
English with math
symbols that adheres to
strict set of grammatical
rules.
e.g. C, C++, Python,
Javascript, Java
Scientific Programming Language
• Is a programming language optimized for the use of
mathematical formulas and matrices.
• Thus it is more suitable for performing
scientific/numerical computing.
• Math operations can be performed with any
programming language, however it is easier to be done
in a scientific programming language.
• E.g. MATLAB, Mathematica, FORTRAN
MATLAB
• Originally a simple language for matrix arithmetic
• Can now do most numerical scientific calculations
• Very heavily used for scientific/numerical computing
• Matlab has lots of specialist toolboxes
• Cost is high
• Free version available – Octave, Scilab

• Benefit : Easier than other languages, easy to prototype


Python
• A very simple, high-level interpreted language
• Much easier and better engineered than most It traps
most user errors, including numeric ones
• Best for scripting, system interfaces
• Scientific programming needs numpy
• Unclear whether numerically robust or how reliable

• Benefit: As easy as MATLAB. If you’re not doing numeric


computing, then Python is better
C++
• Originally for C programmers to a higher level
• Designed for functionality more than error prevention
• Not really very good for scientific programming
• Language is very complicated, and hard to learn well
• Needs a lot of third-party libraries to do scientific
computing, e.g. Boost, CGAL etc.

• Benefit: Fast, high efficiency, can create own data


structures
FORTRAN = Formula Translation
• Simpler than C++
• Comparable power to C++
• One of the oldest language.

• Benefit : Easy to code in parallel, portable, high


efficiency, support for matrices
Advantages/Disadvantages-How to Choose?
• Look at
• Ease of use : Python > MATLAB >Fortran
• Prototyping: MATLAB > Python
• Debuggability: Python > MATLAB > Fortran
• Performance : Fortran > C++ > Python > MATLAB
• Parallelism : Fortran
• Array Handling : Fortran > MATLAB > Python
• Text handling : Python >> C++ > Fortran
• Computer Science : C++ > Python > Fortran
• System interfaces : Python > C++ > Fortran

• In this course, we will be using MATLAB.


Basics of programming : Sequence
Basics of programming : Branch/Decision
Basics of programming : Loop
Basics of programming : Subprogram
Flowchart (1/3)
• Flowchart is a graphical representation of program solving steps so
that it makes clear about the program.
• Types of flowchart are:
a) System Flowchart
System flowchart gives complete processing mechanism and
cannot be converted into program
Example: Organizational structure of a college.
b) Program Flowchart
Program flowchart gives the problem solving method and
can be converted into program.
Example: Problem to calculate area of triangle.

• History: Concepts of flowchart was given by John Von Neuman in 1945!


Flowchart (2/3)

Rectangles show Circles as


processing steps connectors

Arrows for
connectors

Diamonds indicate Parallelograms show


points of input and output
branch/decision steps Oval for start/finish
Flowchart (3/3)
Some properties of a good flowchart
1. The flowchart should have only one start and ending
points.
2. Flow lines should not intersect each other.
3. Flowchart should not contain the programming
language.
4. The flowchart should be neat and clear for the user.

Disadvantages of flowchart
5. It takes long time to prepare to proper flowchart.
6. Translation of flowchart into program is sometimes
difficult. (that’s why pseudocode is preferred)
Example of flowchart : Sandwich
Start

End
Example of flowchart : ATM
Start

End
Pseudocode (1/6)
• Is a notational system in which ideas can be expressed
informally during algorithm development.
• Loose representation of formal language (e.g. C++ etc.)
• This is used when target programming language
unknown.
Pseudocode (2/6)
• We will use the following notations;

Start/End : begin, end


Procedure : procedure, end
If-else : if, else, end if
Input : input
Output : output
Loop : while, end, for .. to.. Next
Return : return
Pseudocode (3/6) : Example
Pseudocode (4/6) : Example
Pseudocode (5/6) : Example
Pseudocode (6/6) : Exercise
• Given the following pseudocode, can you draw the
flowchart?
procedure IntegerDivision
input : n, d
output: result
begin
result ← 0
while n ≥ d
n←n-d
result ← result + 1
end
return result
end
References
• Programming and Problem Solving with C++, 6th Edition,
Nell Dale and Chip Weems, 2014, Jones & Bartlett
Learning

You might also like