EE 220 (Data Structures and Analysis of Algorithms) Instructor: Saswati Sarkar (swati@ee.upenn.edu) T.A. Prasanna Chaporkar, prasanna@seas.upenn.edu Programming Assistant (P. A): To Be Announced Course Web Page: http://www.seas.upenn.edu/~swati/ Timings Class Tuesday Thursday: 9-10:30, 212 Moore Instructor Office Hours: 10:30-11:30, Tuesday, 360 Moore 2-3 Thursday 360 Moore (can schedule meetings other times by appointment) T.A. Office Hours: Day: Monday 10:30-11:30, Wednesday 3:304:30 Room 306 Moore P.A. Office Hours: Day?? Room?? Recitation: Day?? Room?? Text Books Data Structures and Algorithm Analysis in C Mark Allen Weiss Prerequisites EE 110 (Knowledge of C) CSE 260 Grading Homeworks once in two weeks (15% of grade) Posted every alternate Thursday Due 14 days after posting (solution posted after class) Exceptions will be notified First Homework posted , 16th Jan, Due 23rd Jan before 9 AM Consultation allowed but no copying Late submission not accepted Programming Every homework will have one program Program can be done in C or Java C programs will be tested in eniac machine Programs can be done in groups of two students Contact P.A. for any assistance in programming Submit all homework programs to P.A. 2 Midterms: 25% each Dates? Comprehensive Final: 35% 3 Review Lectures: Lecture 1? Lecture 2? Lecture 3 ? Instructors Travel Schedule No class, no office hours on Januray 23, April 1, 3 Course Content Course Motivation Mathematical Foundation: Complexity Analysis: Data Structures: List, Stacks, Queues Algorithm: Searching and Trees Sorting and Heaps Graph Algorithms (Depth first Search, Breadth First Search, Topological sort, Shortest path algorithm, Spanning Tree Algorithm) Computability and Complexity Course Motivation Need to run computer programs efficiently! Computer program: Accepts Input (Data) Performs a Sequence of action with the input Generates Output (Data) Efficient Management of Data (Data Structures) Efficient Sequence of Actions Algorithms Algorithms Sequence of actions a ``dumb’’ machine can follow For j=1 to N print j Efficient versus Inefficient algorithm Design of Algorithms You have a problem to solve Design an efficient algorithm Use good data structures Show that your algorithm works! Prove its correctness Study the efficiency of your algorithm Formal Study of Algorithms Design of Algorithms Proving Correctness of Algorithms Formal study of efficiency of algorithms Run time Storage required