26
Introduction to Algorithms Engineering 1D04, Teaching Session 1

Introduction to Algorithms Engineering 1D04, Teaching Session 1

Embed Size (px)

Citation preview

Page 1: Introduction to Algorithms Engineering 1D04, Teaching Session 1

Introduction to Algorithms

Engineering 1D04, Teaching Session 1

Page 2: Introduction to Algorithms Engineering 1D04, Teaching Session 1

© Copyright 2006 David Das, Ryan Lortie, Alan Wassyng 2

Introductions

Page 3: Introduction to Algorithms Engineering 1D04, Teaching Session 1

© Copyright 2006 David Das, Ryan Lortie, Alan Wassyng 3

Course Webpage:

http://elm.mcmaster.ca/

Page 4: Introduction to Algorithms Engineering 1D04, Teaching Session 1

© Copyright 2006 David Das, Ryan Lortie, Alan Wassyng 4

Introduction to Algorithms

Problems require solutions.

The solution to a problem must be stated clearly.

A clear sequence of steps for solving a specific problem is called an algorithm.

Page 5: Introduction to Algorithms Engineering 1D04, Teaching Session 1

© Copyright 2006 David Das, Ryan Lortie, Alan Wassyng 5

Introduction to Algorithms

Task 1 Get into groups of 4 and create an algorithm

to safely cross a road. Try to be as precise as possible. Some groups will get to share their algorithms.

Page 6: Introduction to Algorithms Engineering 1D04, Teaching Session 1

© Copyright 2006 David Das, Ryan Lortie, Alan Wassyng 6

Task 1 Problems

The order in which tasks are performed is often not obvious.

The individual steps themselves are often ambiguous.

Often, the chicken never gets across the road.

It would be nice to have a more formal way of describing the actions involved in performing a task.

Page 7: Introduction to Algorithms Engineering 1D04, Teaching Session 1

© Copyright 2006 David Das, Ryan Lortie, Alan Wassyng 7

Waking up!!

Get Out of Bed Brush Teeth Eat Breakfast Brush Teeth Again Wash Get Dressed Put on Shoes Run to Catch Bus

Page 8: Introduction to Algorithms Engineering 1D04, Teaching Session 1

© Copyright 2006 David Das, Ryan Lortie, Alan Wassyng 8

Get Out of Bed

Start

Brush Teeth

Wash Get Dressed

Eat BreakfastBrush Teeth Run to Catch Bus

Put on Shoes

Finish

Start / Stop Box Statement Box

Waking in the Morning

Page 9: Introduction to Algorithms Engineering 1D04, Teaching Session 1

© Copyright 2006 David Das, Ryan Lortie, Alan Wassyng 9

Start / Stop Box Statement Box

Flowchart Elements

Page 10: Introduction to Algorithms Engineering 1D04, Teaching Session 1

© Copyright 2006 David Das, Ryan Lortie, Alan Wassyng 10

Waking up!!

Unfortunately, we are not all that organized. We can’t all have such a structured morning experience.

Page 11: Introduction to Algorithms Engineering 1D04, Teaching Session 1

© Copyright 2006 David Das, Ryan Lortie, Alan Wassyng 11

Waking up!!

Unfortunately, we are not all that organized. We can’t all have such a structured morning experience.

What if we’re short on time? Does this change our decision making process?

Page 12: Introduction to Algorithms Engineering 1D04, Teaching Session 1

© Copyright 2006 David Das, Ryan Lortie, Alan Wassyng 12

Start / Stop Box

Decision Box

Statement Box

Flowchart Elements

Page 13: Introduction to Algorithms Engineering 1D04, Teaching Session 1

© Copyright 2006 David Das, Ryan Lortie, Alan Wassyng 13

Decision Box

Are youhungry?

Yes

No

Eat breakfast

Catch bus

Decision Box

Page 14: Introduction to Algorithms Engineering 1D04, Teaching Session 1

© Copyright 2006 David Das, Ryan Lortie, Alan Wassyng 14

Get Out of Bed

Start

Brush Teeth

Wash Get Dressed

Eat BreakfastBrush Teeth Run to Catch Bus

Put on Shoes

FinishIs There Extra

Time?Yes

No

Waking in the Morning with Decision

Page 15: Introduction to Algorithms Engineering 1D04, Teaching Session 1

© Copyright 2006 David Das, Ryan Lortie, Alan Wassyng 15

Waking in the Morning with Decision Get Out of Bed Brush Teeth If There is Extra Time

Eat Breakfast Brush Teeth (Again) Wash

Get Dressed Put on Shoes Run to Catch Bus

Page 16: Introduction to Algorithms Engineering 1D04, Teaching Session 1

© Copyright 2006 David Das, Ryan Lortie, Alan Wassyng 16

Crossing the Road

Some tasks need to be repeated until a condition is satisfied.

Walking can be described as move left foot forward, move right foot forward, left foot, right foot … .

This can be visualized by a loop in the flowchart.

Page 17: Introduction to Algorithms Engineering 1D04, Teaching Session 1

© Copyright 2006 David Das, Ryan Lortie, Alan Wassyng 17

Move Left Foot Forward

Move Right Foot Forward

Are you on the other side? Yes

No

Finish

Crossing the Road

Page 18: Introduction to Algorithms Engineering 1D04, Teaching Session 1

© Copyright 2006 David Das, Ryan Lortie, Alan Wassyng 18

Crossing the Road

… While you’re not on the other side

Move Left Foot Forward Move Right Foot Forward

Page 19: Introduction to Algorithms Engineering 1D04, Teaching Session 1

© Copyright 2006 David Das, Ryan Lortie, Alan Wassyng 19

Introduction to Algorithms

Task 2 Return to your groups. Make a flowchart for

safely crossing a road and derive a natural language description from it. Be as detailed as possible. Compare it to your previous natural language description.

Page 20: Introduction to Algorithms Engineering 1D04, Teaching Session 1

© Copyright 2006 David Das, Ryan Lortie, Alan Wassyng 20

Algorithms

What are the most important characteristics of an algorithm?

Page 21: Introduction to Algorithms Engineering 1D04, Teaching Session 1

© Copyright 2006 David Das, Ryan Lortie, Alan Wassyng 21

Algorithms

What are the most important characteristics of an algorithm? A step-by-step procedure for solving a

problem Finite number of steps Depends only on input

Page 22: Introduction to Algorithms Engineering 1D04, Teaching Session 1

© Copyright 2006 David Das, Ryan Lortie, Alan Wassyng 22

Algorithms

Need only: sequential actions decisions “while” loops (iteration)

Anything that is computable can be computed using just these control structures

Page 23: Introduction to Algorithms Engineering 1D04, Teaching Session 1

© Copyright 2006 David Das, Ryan Lortie, Alan Wassyng 23

A More Mathematical Example

Let’s try an algorithm that is more mathematical

Do these two lines intersect? Line 1: (x1, y1) (x2, y2)

Line 2: (u1, v1) (u2, v2)

(same groups - work it out)

Page 24: Introduction to Algorithms Engineering 1D04, Teaching Session 1

© Copyright 2006 David Das, Ryan Lortie, Alan Wassyng 24

Intersecting Lines

Y mX c

Line1:m1 y2 y1x2 x1

Line2 :m2 v2 v1u2 u1

Line1: y1 m1x1 c1so c1 y1 m1x1Line2 : v1 m2u1 c2so c2 v1 m2u1Then solve

sm1r c1sm2r c2

Page 25: Introduction to Algorithms Engineering 1D04, Teaching Session 1

© Copyright 2006 David Das, Ryan Lortie, Alan Wassyng 25

Intersecting Lines

Y mX c

Line1:m1 y2 y1x2 x1

Line2 :m2 v2 v1u2 u1

Line1: y1 m1x1 c1so c1 y1 m1x1Line2 : v1 m2u1 c2so c2 v1 m2u1Then solve

sm1r c1sm2r c2

What problems will you face?What problems will you face?

Page 26: Introduction to Algorithms Engineering 1D04, Teaching Session 1

© Copyright 2006 David Das, Ryan Lortie, Alan Wassyng 26

Intersecting Lines

Work on the problem between now and Lab 2 - you will need to solve this in that lab session.