22
CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1

CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1

Embed Size (px)

Citation preview

Page 1: CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1

CS223 AlgorithmsD-Term 2013

Instructor: Mohamed Eltabakh

WPI, CS

Introduction

Slide 1

Page 2: CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1

Lecture Outline

• Introduction and Definitions

• Example Problems

• Course Logistics

Slide 2

Page 3: CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1

Definition

• An algorithm is a finite sequence of step by step, discrete, unambiguous instructions for solving a particular problem

– Receives input data– Produces output data– Each instruction can be carried out in a finite

amount of time in a deterministic way

Slide 3

Page 4: CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1

Definition

• In simple terms, an algorithm is a series of instructions to solve a problem (complete a task)

• We focus on Deterministic Algorithms– Under the same input it must produce the

same output

Algorithminput output

Well defined sequence of computer instructions

Slide 4

Page 5: CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1

Two Key Properties

• Correctness– An algorithm is correct if under all valid inputs, it produces

the correct output

• Efficiency– Same problem can have many ways (algorithms) to solve it– Which one is more efficient?– Efficiency means:

• How long will it take?

• How much storage will it need?

Time CPU # of instructions

StorageSpace Memory

Slide 5

Page 6: CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1

CS223 AlgorithmsD-Term 2013

Representative Problems

Slide 6

Page 7: CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1

Problem Family I: Sorting

– Input• A list of unsorted values

– Output• The corresponding sorted list

B R U T E F O R C E

B C E E F O R R T U

The algorithm must know how to compare values (<, =, or >)

Slide 7

Page 8: CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1

Problem Family II: Searching– Input

• A list of values L, and a key (single value) K

– Output• The position in L that contain K (if exists)

B R U T E F O R C E

Search for 33?

Search for C?

Will it make a difference if the list is sorted ???

Slide 8

Page 9: CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1

Problem Family III: Trees– Input

• A tree of values

– Different problems• Traverse the tree and list the values

• Search for a value in the tree

• Deletion from or insertion into the tree

Can you notice a certain order in this tree?

Binary Tree Binary Search Tree

Left smaller thanRight greater than

Slide 9

Page 10: CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1

Problem Family IV: Graphs– Input

• A graph of values G

– Different problems• Traverse the graph• Searching for a value in the graph• Shortest path from one node to another

What is the shortest path from F to B?

What is the shortest path from F to all other nodes?

Find a minimum spanning tree?

Slide 10

Page 11: CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1

Problem Family V: String Processing

– Input• One or multiple strings

– Different problems• Search for one string in another

• Edit distance between strings

• String alignment

Search for sentence “algorithms are fun”

Find the smallest difference between this document and another document

Slide 11

Page 12: CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1

Too Many Others

Protein networks

DNA sequence alignment

Matrix multiplication

Scheduling problem

Greatest Common Divisor (GCD)

Nearest neighbor (closest gas station to me)

Slide 12

Page 13: CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1

Algorithm Design Phases

-- What are the inputs?-- What are the outputs?-- What is the functionality?

-- Correctness?

-- Efficiency?

Must give the correct answer under all valid inputs

Analyze your algorithm * How fast is it? * Does it consume much resources (CPU, memory, disk, etc…)

-- Choose a language to implement your algorithm (E.g., C, Java, Perl, etc…)

-- Correct implementation !!!

-- Test you algorithm -- Try different inputs-- Check special and corner cases

Slide 13

Page 14: CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1

Course Outline (What You Will Learn)

• Algorithmic Strategies and Methodologies – Tree and graph traversal, Greedy Algorithms, Dynamic

Programming, Divide and Conquer

• Problem Types/Families– Sorting, Searching, Graph and Tree Algorithms, Scheduling and

Optimization, String Processing

• Algorithms on Different Data Structures– Arrays, Trees, Queues, Graphs, Strings, Hash Tables, Linked Lists

• Analysis and Evaluation– Coding and running algorithms, – Analytical analysis using big-O notation

Slide 14

Page 15: CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1

CS223 AlgorithmsD-Term 2013

Course Logistics

Slide 15

Page 16: CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1

Textbook

• Required Introduction to Algorithms

T.H. Cormen, C.E. Leiserson, R.L. Rivest, and C. Stein.

Third Edition, MIT Press, 2009. ISBN 978-0-262-03384-8.

URL: Book Website

Slide 16

Available in bookstore Several copies on reserve in library

Page 17: CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1

Course Logistics

• Website: http://web.cs.wpi.edu/~cs2223/d13

• Electronic WPI system: blackboard.wpi.edu

• Lectures– MTRF (2:00pm - 2:50pm)

• Grading– All assignments are

done individually

Slide 17

Page 18: CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1

Tentative Scheduling

• Tentative scheduling for assignments, exams, and quizzes– Visit the website: http://web.cs.wpi.edu/~cs2223/d13

• Late Submission Policy– One-day late 10% off the max grade – Two-day late 20% off the max grade– Three-day late 30% off the max grade– Beyond that no late submission is accepted

Slide 18

Page 19: CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1

Course Management

• Two systems will be maintained

– Web Page: http://web.cs.wpi.edu/~cs2223/d13

– Electronic WPI system: blackboard.wpi.edu

• Homework/Project submissions

– Either at the beginning of class on the due date

– Or electronically on blackboard.wpi.edu (Recommended)

• Viewing Grades

– On blackboard.wpi.edu

Slide 19

Page 20: CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1

Office Hours

• Posted on the course web page

• Covers most days of the week

• Make use of them– they are there for YOU !

• Feel free to send me email or stop by my office

Slide 20

Page 21: CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1

Programming Language

• In assignments, use a language of your choice– Most students use either Java, C, or Python

• In lectures, I will use pseudocode closer to Java or C

Slide 21

Page 22: CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1

Slide 22