CSC2200 SYLLABUS

Course: CSC 2200 "Data Structures and Algorithm Analysis"

Days/Time: 6:00 - 7:20 pm Tuesday, Thursday

Location: Room 234, State Hall

 

Lecturer: Dr. Razvan Andonie

Office: Room 450, State Hall

Office Hrs: 7:20 - 8:20 pm Tuesday, Thursday or by appointment

Office Phone: (313) 577-0662

E-mail: andonie@cs.wayne.edu

 

Lab:

Sect. 10828: 5:30 - 7:20 pm Wednesday, Room 314, State Hall

Sect. 24891: 6:30 - 8:20 pm Friday, Room 314, State Hall

 

Lab Assistant: Xidong Jin

Office: Room 460, State Hall

Office Hrs: 4:30 - 6:30 pm Friday or by appointment

Office Phone: (313) 577-6783

E-mail: xij@cs.wayne.edu

Required Textbook:

*      Data Structures, Algorithms, and Applications in C++, by Sartaj Sahni, Mc Graw-Hill, 1998.

The URL for the Web site for this book is http://www.mhhe.com/engcs/compsci/sahni. From this web site you can obtain all the programs in the book together with sample data and generated output. The sample data is not intended to serve as a good test set for a given program; rather it is just something you can use to run the program and compare the output produced with the given output. The Web site also includes solutions to many of the exercises that appear in each chapter, sample tests and solutions to these tests, additional applications, and enhanced discussions of some of the material covered in the text.

Prerequisites:

CSC 2110 and MAT 2210.

Overview:

CSC 2200 is a continuation of CSC 2110 in the presentation of data structures and the various applications. The emphasis is on abstract data types, algorithmic analysis, efficiency considerations and the implementation of data structures using object-oriented programming in C++.

Grading:

Grading will be based on the weighted average scores as shown below:

*      Combined Lab Assignments 50%

*      Midterm Exam 20%

*      Final Exam 25%

*      Pop Quizzes, Attendance 5%

This score will be translated into a grade as shown in the following table:

Average Grade

95 - 100 A

90 - 95 A-

85 - 90 B+

80 - 85 B

75 - 80 B-

70 - 75 C+

65 - 70 C

60 - 65 C-

55 - 60 D+

50 - 55 D

45 - 50 D-

0 - 45 E Failure

 

 Class Schedule

Date

Lecture Topics

Reading

1/12

Introduction

 

1/14

Review of C++

Chapter 1

1/19

Review of C++

 

1/21

Program performance

Chapter 2

1/26

Program performance

 

1/28

Formula-based and linked representations

Sections 3.1 - 3.4

2/2

Indirect addressing, simulating pointers

Applications: equivalence classes

Sections 3.5 - 3.7, and 3.8.3

2/4

Arrays and matrices

Chapter 4

2/9

Arrays and matrices

 

2/11

Stacks

Sections 5.1 - 5.4

2/16

Stacks

Applications: towers of Hanoi, rat in a maze

Sections 5.5.2, and 5.5.6

2/18

Queues

Applications: wire routing, image-component labeling

Sections 6.1 - 6.3, 6.4.2, and 6.4.3

2/23

Hashing, text compression

Sections 7.1, 7.2, 7.4, and 7.5

2/25

Binary and other trees

Sections 8.1 - 8.9

3/2

Binary and other trees

 

3/4

The disjoint set union-find problem

 Sections 8.10.2

3/9

Priority queues: heaps, leftist trees

 Sections 9.1 - 9.4

3/11

Applications: heap sort, Huffman codes

 Sections 9.5.1, and 9.5.1

3/16

Spring Recess

 

3/18

Spring Recess

 

3/23

Midterm exam

 

3/25

Tournament trees

 Chapter 10

3/30

Tournament trees

 

4/1

Search trees: AVL trees, B-trees

Sections 11.1, 11.2, and 11.4

4/6

Applications: histogramming, best-bin packing

Sections 11.5.1, and 11.5.2

4/8

Graphs

Chapter 12

4/13

Graphs

 

4/15

Graphs

 

4/20

The greedy method

Chapter 13

4/22

Student-Directed Review

 

 

 

 

04/29

FINAL EXAM (covers only second part )