Design and Analysis of Algorithms This Class Website and Contact - - PowerPoint PPT Presentation

design and analysis of algorithms this class website and
SMART_READER_LITE
LIVE PREVIEW

Design and Analysis of Algorithms This Class Website and Contact - - PowerPoint PPT Presentation

Design and Analysis of Algorithms This Class Website and Contact Website www.cs.kent.edu/ aleitert/fall15/ Important information Slides Announcements Email aleitert@cs.kent.edu Feedback First time teaching this


slide-1
SLIDE 1

Design and Analysis of Algorithms

slide-2
SLIDE 2

This Class

slide-3
SLIDE 3

Website and Contact

Website

◮ www.cs.kent.edu/∼aleitert/fall15/ ◮ Important information ◮ Slides ◮ Announcements

Email

◮ aleitert@cs.kent.edu

Feedback

◮ First time teaching this class. ◮ Feedback is appreciated.

3 / 19

slide-4
SLIDE 4

Primary Textbook

A L G O R I T H M S

I N T R O D U C T I O N T O

T H I R D E D I T I O N T H O M A S H. C H A R L E S E. R O N A L D L. C L I F F O R D S T E I N R I V E S T L E I S E R S O N C O R M E N

Introduction to Algorithms, by Cormen et al. 3rd edition, MIT Press, 2009 Primary source for this class.

4 / 19

slide-5
SLIDE 5

Other Textbooks

The Algorithm Design Manual, by Steven S. Skiena 2nd edition, Springer, 2008 PDF-Version available for free at Springer Link

5 / 19

slide-6
SLIDE 6

Other Textbooks

Algorithms, 4th Edition, by Robert Sedgewick and Kevin Wayne 4th edition, Addison-Wesley Professional, 2011 Algorithm Design: Foundations, Analysis, and Internet Examples, by Michael T. Goodrich and Roberto Tamassia, 1st edition, Wiley, 2001

6 / 19

slide-7
SLIDE 7

Clarification

Clarification You do not need (to buy) a textbook. These are recommendations if you are looking for a textbook to study.

7 / 19

slide-8
SLIDE 8

Course Requirements

Exam 1 25 %

  • Oct. 8, during class

Exam 2 25 %

  • Oct. 29, during class

Exam 3 25 %

  • Nov. 24, during class

Final Exam 25 % Thursday, December 17, 7:45 – 10:00 a.m. HW (normal) 0 % HW (bonus) 10 % (Dates may change.) Exams

◮ closed book examination ◮ one handwritten sheet (one side) allowed

8 / 19

slide-9
SLIDE 9

Homework

Normal Homework

◮ Will not be graded. ◮ Good preparation for exams.

Bonus Homework

◮ Mostly implementation problems ◮ Helpful to understand details of algorithms ◮ Up to 10 % to your final grade.

9 / 19

slide-10
SLIDE 10

Office Hours

Tuesday and Thursday, 2.00 – 3.00 p.m. Room 352, Math and CS Building “I have class during office hours”

◮ Send me an email. We will find some time. ◮ Please tell me directly when you have time to meet.

10 / 19

slide-11
SLIDE 11

Algorithms

slide-12
SLIDE 12

Algorithm

Question What is an algorithm?

12 / 19

slide-13
SLIDE 13

Algorithm

Question What is an algorithm? Wikipedia An algorithm is a self-contained step-by-step set of operations to be performed. [...] An algorithm is an effective method that can be expressed within a finite amount of space and time [...] for calculating a function. Starting from an initial state and initial input, the instructions describe a computation that [...] proceeds through a finite number of well-defined successive states, eventually producing “output” and terminating at a final ending state.

12 / 19

slide-14
SLIDE 14

Algorithm

Algorithm An algorithm is a finite and well-defined set of operations which compute an output for a (possible empty) input. Algorithm Input Output

13 / 19

slide-15
SLIDE 15

Properties of Algorithms

Correctness

◮ Will it produce the desired output? ◮ We will prove that our algorithms are correct.

Efficiency

◮ How fast is the algorithm? ◮ How much resources does it need? ◮ Is there a faster algorithm?

Having one of both properties is (usually) easy. However, having both is the goal.

14 / 19

slide-16
SLIDE 16

Example

slide-17
SLIDE 17

Problem

Finding doubles You have given two integer arrays A and B. Is there an integer i which is in both arrays?

16 / 19

slide-18
SLIDE 18

Algorithm 1

1 For Each a ∈ A 2

For Each b ∈ B

3

If a = b Then

4

Return “Yes”

5 Return “No”

17 / 19

slide-19
SLIDE 19

Algorithm 2

1 Sort A and B. 2 Set i := 0 and j := 0. 3 While i < |A| and j < |B| 4

If A[i] = B[j] Then

5

Return “Yes”

6

Else If A[i] < B[j] Then

7

Set i := i + 1.

8

Else If A[i] > B[j] Then

9

Set j := j + 1.

10 Return “No”

18 / 19

slide-20
SLIDE 20

Question

Question Which algorithm is better and why?

19 / 19