### EE 220 (Data Structures and

### Analysis of Algorithms)

Instructor: Saswati Sarkar (swati@ee.upenn.edu)

T.A. Dhanant Subhdrabandhu

( dhanant@seas.upenn.edu

)

Programming Assistant (P. A): Marcus De Young

( mrd @seas.upenn.edu

)

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

12-1 Thursday 360 Moore

(can schedule meetings other times by appointment)

T.A. Office Hours: Wednesday 11:30-12:30(??), Friday 2-3,

Room??

P.A. Office Hours: Monday 12-1, Wednesday 10:30-11:30,

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 today, 8 th Jan, Due 15 th

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 (April 18)

### Instructors Travel Schedule

No class, no office hours on Januray 29, February 26,

28

### 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