1 / 22

CS223 Algorithms D-Term 2013

CS223 Algorithms D-Term 2013. Introduction. Instructor: Mohamed Eltabakh WPI, CS. Lecture Outline. Introduction and Definitions Example Problems Course Logistics. Definition.

kobe
Télécharger la présentation

CS223 Algorithms D-Term 2013

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS223 AlgorithmsD-Term 2013 Introduction Instructor: Mohamed Eltabakh WPI, CS

  2. Lecture Outline • Introduction and Definitions • Example Problems • Course Logistics

  3. 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

  4. 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 Algorithm input output Well defined sequence of computer instructions

  5. 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 Space Memory Storage

  6. CS223 AlgorithmsD-Term 2013 Representative Problems

  7. Problem Family I: Sorting • Input • A list of unsorted values • Output • The corresponding sorted list The algorithm must know how to compare values (<, =, or >)

  8. 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) Search for 33? Search for C? Will it make a difference if the list is sorted ???

  9. Problem Family III: Trees Can you notice a certain order in this tree? • 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 Left  smaller than Right  greater than Binary Tree Binary Search Tree

  10. 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?

  11. 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

  12. Too Many Others Protein networks Scheduling problem Greatest Common Divisor (GCD) DNA sequence alignment Nearest neighbor (closest gas station to me) Matrix multiplication

  13. Algorithm Design Phases -- What are the inputs? -- What are the outputs? -- What is the functionality? Must give the correct answer under all valid inputs -- Test you algorithm -- Try different inputs -- Check special and corner cases -- Correctness? -- Efficiency? 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 !!!

  14. 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

  15. CS223 AlgorithmsD-Term 2013 Course Logistics

  16. 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 Available in bookstore Several copies on reserve in library

  17. 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

  18. 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

  19. 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

  20. 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

  21. Programming Language • In assignments, use a language of your choice • Most students use either Java, C, or Python • In lectures, I will use pseudocodecloser to Java or C

More Related