1 introduction to computing lecture 02: introduction to algorithms dr. bekir karlik yasar university...
TRANSCRIPT
![Page 1: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/1.jpg)
1
Introduction to Computing Lecture 02:
Introduction to Algorithms
Dr. Bekir KARLIKYasar University
Department of Computer [email protected]
![Page 2: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/2.jpg)
2
Topics
• Solving problems
• Algorithms
• Values and variables
![Page 3: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/3.jpg)
3
How do we solve problems?
• We "just do"
• Guesswork-and-luck
• Trial-and-error
• Experience (possibly someone else's)
• "Scientifically"
![Page 4: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/4.jpg)
4
sterilize(saw,alcohol);raise_hammer();lower hammer(fast);start(saw);/* etc. etc. */
The Problem-solving Process
Problem specification
Algorithm
Program
Executable (solution)
Analysis
Design
Implementation
Compilation
"Doctor, my head hurts"
Patient has elevated pressure in anterior parietal lobe.
1. Sterilize cranial saw2. Anaesthetize patient3. Remove top of skull4. Get the big spoon...5. etc., etc.
010011101011001010101010100101010101010011001010101010100101101001110101010101001001011101001111010101011111010101000110100001101...
![Page 5: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/5.jpg)
5
• A sequence of instructions specifying the steps required to accomplish some task
• Named after: Muhammad ibn Musa al-Khwarizmi
of Khowarezm (now Khiva in Uzbekistan)
Algorithm
![Page 6: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/6.jpg)
6
Algorithm– HistoryMuhammad ibn Musa Al-Khwarizmi• Circa 160-230 A.H. (anno Hegirae)
in the year of the Hegira; of the Muslim era
• Circa 780-850 C.E. (Common Era)
![Page 7: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/7.jpg)
7
• A sequence of instructions describing how to do a task
Algorithm – Working Definition
[As opposed to actually executing
the instructions]
![Page 8: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/8.jpg)
8
Algorithm -- Examples• A cooking recipe• Assembly instructions for a model• The rules of how to play a game• VCR instructions• Description of a martial arts technique• Directions for driving from A to B• A knitting pattern• A car repair manual
![Page 9: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/9.jpg)
9
From Algorithms to Programs
Problem
C ProgramC Program
AlgorithmAlgorithm: A sequence of instructions describing how to do a task (or process)
![Page 10: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/10.jpg)
10
Components of an Algorithm
• Variables and values
• Instructions
• Sequences
• Procedures
• Selections
• Repetitions
• Documentation
![Page 11: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/11.jpg)
11
Values
• Represent quantities, amounts or measurements
• May be numerical or alphabetical (or other things)
• Often have a unit related to their purpose
• Example:– Recipe ingredients
![Page 12: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/12.jpg)
12
Variables
This jarcan contain
10 cookies
50 grams of sugar
3 slices of cake
etc.
ValuesVariable
• Are containers for values – places to store values
• Example:
![Page 13: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/13.jpg)
13
Restrictions on Variables
• Variables may be restricted to contain a specific type of value
![Page 14: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/14.jpg)
14
Instructions – Examples
• Take off your shoes
• Count to 10
• Cut along dotted line
Directions to perform specific actions on values and variables.
![Page 15: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/15.jpg)
15
Sequence -- Example
1. Open freezer door 2. Take out Gourmet Meal™ 3. Close freezer door 4. Open microwave door 5. Put Gourmet Meal™ on carousel 6. Shut microwave door 7. Set microwave on high for 5 minutes 8. Start microwave 9. Wait 5 minutes 10. Open microwave door 11. Remove Gourmet Meal™ 12. Close microwave door
![Page 16: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/16.jpg)
16
Components of an Algorithm
Values and VariablesInstruction (a.k.a. primitives)Sequence (of instructions)
• Procedure (involving instructions)
• Selection (between instructions)
• Repetition (of instructions)
• Documentation (beside instructions)
![Page 17: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/17.jpg)
17
Procedure
• A named sequence of instructions
• So that you can– Refer to it collectively (by name)– ...instead of individually (by each instruction in
the sequence)
• Example:
– Drive_To_Uni
![Page 18: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/18.jpg)
18
Procedure -- Example procedure Drive_To_Uni { 1. find car keys 2. disable car alarm 3. open car door 4. get in car 5. shut car door 6. put keys in ignition 7. start car 8. back car out of
driveway 9. drive to end of street 10. turn right 11. drive to end of street 12. turn left ...etc...etc...etc
...etc...etc...etc...
52. find parking space
53. pull into parking space
54. turn off engine
55. remove keys from ignition
56. open car door
57. get out
58. shut car door
59. lock car door
60. enable alarm
}
![Page 19: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/19.jpg)
19
Procedure – Example (cont)
procedure Do_Wednesday{ Wake_up Have_Shower Eat_Breakfast Drive_To_Uni Sit_ITCS102_Lecture ...etc...etc...etc... Drive_From_Uni ...etc...etc...etc...}
procedure Do_Week
{
Do_Monday
Do_Tuesday
Do_Wednesday
Do_Thursday
...etc...etc...etc...
}
![Page 20: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/20.jpg)
20
Procedure• A procedure may have a set of parameters
procedure customerService ( myName ,timeOfDay ){ say “Good timeOfDay” say “My name is myName” say “How can I help you?”}
customerService ( “Bekir”, “Morning” )
customerService (“Meryem”, “Afternoon” )
customerService ( “Yusuf”, “Afternoon” )
![Page 21: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/21.jpg)
21
Procedure – Example (cont)
procedure Do_Wednesday{ Wake_up Have_Shower Eat_Breakfast Drive_To_Uni Sit_1301_Lecture ...etc...etc...etc... Drive_From_Uni ...etc...etc...etc...}
An instruction invoking a procedure is known as a “procedure call”
![Page 22: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/22.jpg)
22
Procedure – Example (cont)
procedure Do_Wednesday{ Wake_up Have_Shower Eat_Breakfast Drive_To_Uni Sit_1301_Lecture ...etc...etc...etc... Drive_From_Uni ...etc...etc...etc...}
We use brackets to mark the beginning and end of a sequence.
![Page 23: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/23.jpg)
23
Procedure – Example (cont)
procedure Do_Wednesday{ Wake_up Have_Shower Eat_Breakfast Drive_To_Uni Sit_1301_Lecture ...etc...etc...etc... Drive_From_Uni ...etc...etc...etc...}
In this subject, we also use the following words to refer to a “Procedure” :
• Sub-routine• Module• Function
![Page 24: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/24.jpg)
24
Components of an Algorithm
Values and VariablesInstruction (a.k.a. primitives)Sequence (of instructions)Procedure (involving instructions)
• Selection (between instructions)
• Repetition (of instructions)
• Documentation (beside instructions)
![Page 25: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/25.jpg)
25
Selection
• An instruction that decides which of two possible sequences is executed
• The decision is based on a single true/false condition
• Examples:
– Car repair
![Page 26: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/26.jpg)
26
Selection Example -- Car Repairif (motor turns) then {
CheckFuelCheckSparkPlugsCheckCarburettor
}else {
CheckDistributorCheckIgnitionCoil
}
![Page 27: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/27.jpg)
27
Selection Example –Car Repair (cont)
if (motor turns) then {
CheckFuelCheckSparkPlugsCheckCarburettor
}else {
CheckDistributorCheckIgnitionCoil
}
Should be a true or false condition.
![Page 28: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/28.jpg)
28
Selection Example --Car Repair (cont)
if (motor turns) then {
CheckFuelCheckSparkPlugsCheckCarburettor
}else {
CheckDistributorCheckIgnitionCoil
}
Sequence if the condition is true.
![Page 29: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/29.jpg)
29
Selection Example --Car Repair (cont)
if (motor turns) then {
CheckFuelCheckSparkPlugsCheckCarburettor
}else {
CheckDistributorCheckIgnitionCoil
}
Sequence if the condition is false.
![Page 30: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/30.jpg)
30
Selection – Several Conditions
• What if several conditions need to be satisfied?if ( today is Wednesday and the time is 10.00am )
then
{
Go to CSE1301 Lecture
}
else
{
Go to Library
} Solution 1
![Page 31: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/31.jpg)
31
Selection – Several Conditions (cont)
Solution 2
Often called a “nested selection”
if ( today is Wednesday ) then {
if ( the time is 11.00am ) then { Go to CP1 Lecture } } else ...etc...etc...etc...
![Page 32: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/32.jpg)
32
Selection – At Least One of Several Conditions
• What if at least one of several conditions needs to be satisfied?if ( I feel hungry or the time is 1.00pm or my
mate has his eye on my lunch )
then
{
Eat my lunch now
}
![Page 33: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/33.jpg)
33
Selection – Several Courses of Action• What if there are several courses of action?
if ( button pressed is 1 )then{ CheckAccountBalance}else{ if ( button pressed is 2 ) then { TransferFunds } else { if ( button pressed is 3 ) then
{ PayBills } else { if ( button pressed is 4 ) then { ExitPhoneBanking } else { say “Invalid option” } } }} Form 1
![Page 34: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/34.jpg)
34
Selection – Several Courses of Action (cont)
if ( button pressed is 1 )then{ CheckAccountBalance}else if ( button pressed is 2 )then{ TransferFunds}else if ( button pressed is 3 )then{ PayBills}
else if ( button pressed is 4 )then{ ExitPhoneBanking}else{ say “Invalid option”}
Form 2“Cascaded” selection.
![Page 35: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/35.jpg)
35
Components of an AlgorithmValues and VariablesInstruction (a.k.a. primitives)Sequence (of instructions)Procedure (involving instructions) Selection (between instructions)
• Repetition (of instructions)
• Documentation (beside instructions)
![Page 36: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/36.jpg)
36
Repetition
• Repeat an instruction...– ...while (or maybe until) some true or
false condition occurs– Test the condition each time before
repeating the instruction• Also known as iteration or loop• Example:
– Algorithm for getting a date
![Page 37: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/37.jpg)
37
Repetition -- Exampleprocedure AskOnDate ( name, time, location )
{
Phone(name)
Say("Hey", name, "it's your lucky day!")
Say("Wanna come to", location, "at", time, "?")
ListenToReply ( )start begging count at zerowhile (reply is "No" and begging count < 100){ Say("Oh please!")
add 1 to begging count
ListenToReply ( )}
}
![Page 38: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/38.jpg)
38
Repetition – Example (cont)procedure AskOnDate ( name, time, location ){
Phone(name)Say("Hey", name, "it's your lucky day!")Say("Wanna come to", location, "at", time, "?")ListenToReply ( )start begging count at zerowhile ( reply is "No" and begging count < 100 ){ Say("Oh please!") add 1 to begging count ListenToReply ( )}
}
Condition is tested before sequence
![Page 39: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/39.jpg)
39
Repetition – Example (cont)
procedure AskOnDate ( name, time, location ){
Phone(name)Say("Hey", name, "it's your lucky day!")Say("Wanna come to", location, "at", time, "?")ListenToReply ( )start begging count at zerowhile (reply is "No" and begging count < 100){ Say("Oh please!") add 1 to begging count ListenToReply ( )}
}
Sequence may not get executed at all
![Page 40: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/40.jpg)
40
Repetition – Example (cont)procedure AskOnDate ( name, time, location ){
Phone(name)Say("Hey", name, "it's your lucky day!")Say("Wanna come to", location, "at", time, "?")ListenToReply ( )start begging count at zerowhile (reply is "No" and begging count < 100){ Say("Oh please!") add 1 to begging count ListenToReply ( )}
}
Ensure initial values of variables used in the conditions are set correctly
![Page 41: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/41.jpg)
41
Repetition – Example (cont)
procedure AskOnDate ( name, time, location ){
Phone(name)Say("Hey", name, "it's your lucky day!")Say("Wanna come to", location, "at", time, "?")ListenToReply ( )start begging count at zerowhile (reply is "No" and begging count < 100){ Say("Oh please!") add 1 to begging count ListenToReply ( )}
}
Ensure the variables used in the conditions are updated in each iteration
![Page 42: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/42.jpg)
42
Repetition – Example (cont)
procedure AskOnDate ( name, time, location )
{
Phone(name)
Say("Hey", name, "it's your lucky day!")
Say("Wanna come to", location, "at", time, "?")
ListenToReply ( )start begging count at zerowhile (reply is "No" and begging count < 100){ Say("Oh please!")
}
}Infinite loop
• What if we don’t increment the begging count?
![Page 43: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/43.jpg)
43
Repetition – Variation
decide on Time and Location
initialise booking to “unsuccessful”
while ( not successfully booked )
{
get next Name in little black book
AskOnDate(Name, Time, Location)
DetermineBookingSuccess
}
SighWithRelief
![Page 44: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/44.jpg)
44
Repetition– Pre-tested Loop
decide on Time and Location
initialise booking to “unsuccessful”
while ( not successfully booked )
{
get next Name in little black book
AskOnDate(Name, Time, Location)
DetermineBookingSuccess
}
SighWithReliefpre-tested loop
![Page 45: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/45.jpg)
45
Repetition – Pre-tested Loop
decide on Time and Location
initialise booking to “unsuccessful”
until ( successfully booked )
{
get next Name in little black book
AskOnDate(Name, Time, Location)
DetermineBookingSuccess
}
SighWithRelief
pre-tested loop
![Page 46: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/46.jpg)
46
Repetition – Post-tested Loop
decide on Time and Location
initialise booking to “unsuccessful”
do
{
get next Name in little black book
AskOnDate(Name, Time, Location)
DetermineBookingSuccess
} while ( not successfully booked )
SighWithReliefpost-tested loop
Sequence is executed at least once
![Page 47: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/47.jpg)
47
Repetition – Post-tested Loop
decide on Time and Location
initialise booking to “unsuccessful”
repeat
{
get next Name in little black book
AskOnDate(Name, Time, Location)
DetermineBookingSuccess
} until ( successfully booked )
SighWithRelief
![Page 48: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/48.jpg)
48
Repetition -- Variations
decide on Time and Locationinitialise booking to “unsuccessful”loop { get next Name in little black book AskOnDate(Name, Time, Location)
DetermineBookingSuccessif ( successfully booked )then{ break loop}
}SighWithRelief
![Page 49: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/49.jpg)
49
Components of an AlgorithmValues and VariablesInstruction (a.k.a. primitives)Sequence (of instructions)Procedure (involving instructions) Selection (between instructions)Repetition (of instructions)
• Documentation (beside instructions)
![Page 50: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/50.jpg)
50
Documentation
• Records what the algorithm does
• Describes how it does it
• Explains the purpose of each component of the algorithm
• Notes restrictions or expectations
• Example:– Getting a date (again)
![Page 51: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/51.jpg)
51
Documentation -- ExampleThink of something romantic to dodecide on time and location
Work through address book to look for a personinitialise booking to “unsuccessful”until (successfully booked){ get next Name in little black book AskOnDate(Name, Time, Location) DetermineBookingSuccess}
Assumes that I will find someone in the book before it runs outSighWithRelief
![Page 52: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/52.jpg)
52
The Software Development Process
• Define the problem clearly
• Analyse the problem thoroughly
• Design an algorithm carefully
• Code the algorithm efficiently
• Test the code thoroughly
• Document the system lucidly
![Page 53: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/53.jpg)
53
Top-down Algorithm Design
• Write down what you have to do• Break that into 3-7 smaller steps• Break each step into 3-7 smaller steps• Keeping subdividing until each individual
step is easy enough to do – i.e., until it is a single instruction
• Example:– Learning
![Page 54: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/54.jpg)
54
Top-down Design -- Example
Learn
Prepare
Study
Reinforce
ReadMake notesPrepare questions
Attend lectureListen and thinkComplete pracAttend tute
Record answers to questions
Revise notes
Read lecture notesRead textbook
Read exerciseDesign algorithmCode solutionTest and document
Record insights
![Page 55: 1 Introduction to Computing Lecture 02: Introduction to Algorithms Dr. Bekir KARLIK Yasar University Department of Computer Engineering bekir.karlik@yasar.edu.tr](https://reader036.vdocument.in/reader036/viewer/2022062314/56649dd95503460f94ace0ab/html5/thumbnails/55.jpg)
55
Summary
• Problem Solving Process
• Algorithms
• Components of Algorithms