3460:501 Fundamentals of Data Structures Fall, 2012

Prerequisites: Programming experience in C

Instructor: Chien-Chung Chan

Office: CAS 227 Tel: 972-8014

e-mail: chan@uakron.edu

home page: www.cs.uakron.edu/~chan

Office Hours: M, W: 5:10 6:00 p.m.; T, TH: 4:00 5:00 p.m. or by appointment


T.A.: Srikanth Kadari, email: sk138@zips.uakron.edu office hours: T: 4:00 5:00 p.m. (lab CAS 254)



C.A. Shaffer, A Practical Introduction to Data Structures and Algorithms Analysis, ISBN: 0-13-190752-2, Prentice-Hall, Inc., 1997.

N. Karumanchi, Data Structures and Algorithms Made Easy, CareerMonk Publications. ISBN: 978-146-8108-86-6.

P. Deitel and H. Deitel, How to Program in C++, 8th edition, Prentice Hall, 2012. ISBN: 978-0-13-266236-9.


Course Objectives:

Basic data structures and algorithms: stacks, queues, linked lists, trees, hash tables, and graphs; sorting and search algorithms. Introducion to data abstraction and algorithm analysis.


Project Assignments:

There will be four programming projects in C/C++. Penalty for late project submissions is 10% per day contingency on the availability of the systems. Grading policy will be announced in each assignment.


Tests: there will be two closed book 50 minutes tests. Scopes and dates of tests will be announced one week in advanced.


Final Exam: One comprehensive closed book final exam.


Grades: the following is the weights for computing final grades.

Tests: 30% Final Exam: 30% Programs: 40%

A >= 90% , B>= 80%, C >= 70%, D >= 60%, F < 60%

Plus and minus grades may be assigned at my discretion based on class participation and/or performance.


Course Topics

1. Review of C/C++.

2. Lists, stacks, and queues

3. Trees

4. Hashing

5. Priority Queues

6. Sorting

7. Sets

8. Graphs

9. Advanced data structures



Program Grading Policy


1. Program Correctness (70%)

No run-time errors and producing correct outputs.

2. Style (20%)

Indentation, descriptive variable names, well-formatted outputs, readability of code, and limited use of global variables

3. Documentation (10%)

(1) Overall documentation

Programmer's name, user ID, date of creation, objectives of the program, input and output formats

Note: A program without programmer's name and user ID will receive no credit.

(2) Function documentation

Explain what a function does

Indicate global variables used in a function

Proper in-statement explanations