advertisement

Instructor: Saswati Sarkar ([email protected])

T.A. Dhanant Subhdrabandhu

)

Programming Assistant (P. A): Marcus De Young

( mrd @seas.upenn.edu

)

Course Web Page: http://www.seas.upenn.edu/~swati/

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

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)

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

28

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

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

Sequence of actions a ``dumb’’ machine can follow

For j=1 to N print j

Efficient versus Inefficient algorithm

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

Design of Algorithms

Proving Correctness of Algorithms

Formal study of efficiency of algorithms

Run time

Storage required