EE 220 (Data Structures and Analysis of Algorithms)


EE 220 (Data Structures and

Analysis of Algorithms)

Instructor: Saswati Sarkar (

T.A. Dhanant Subhdrabandhu



Programming Assistant (P. A): Marcus De Young

( mrd


Course Web Page:


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,


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


Recitation: Day?? Room??

Text Books

Data Structures and Algorithm Analysis in C

Mark Allen Weiss


EE 110 (Knowledge of C)

CSE 260


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


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,


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


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



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