CS362 Data Structure and Algorithm

Fall 2007

(this syllabus is subject to change)

Introductory information:

Course Description and/or Course Objectives

(3 cr.) P: CSCI 240 and CSCI 340 strictly enforced.

A study of the design and analysis of data structures and algorithms. Abstract data types: arrays, stacks, queues, lists, trees, graphs. Algorithms: sorting, searching, hashing. File structures, organization and access methods.

This is a fundamental subject for computer science and engineering. It will tell you how to store data in your computer (data structure) and how to efficiently manipulate these data (algorithm analysis). Students will learn basic concepts and principles of various abstract data types, file structures, and algorithm analysis techniques, and will gain practical experience and programming skills through the course projects.

Tentative Schedule of Assignments and Activities

Date Class Schedule Assignment Due
week 1: 8/23 Introduction,  
week 2: 8/28, 8/30 Review recursion (ch.1), C++ review (ch.1) ,  
week 3: 9/4, 9/6 Algorithm analysis, (ch.2), running time calculations (ch.2). Lists (ch3), Homework-1
week 4: 9/11, 9/13 Stacks and queues (ch.3), Trees and binary trees Homework-2
week 5: 9/18, 9/20 Binary search trees (ch.4), AVL trees (ch.4)  
week 6: 9/25, 9/27 Hashing (ch.5).   TA Homework-3
week 7:10/2, 10/4 Priority queues, binary heap (ch.6), D-heaps, Leftist heaps (ch.6), Project-1
week 8: 10/9, 10/11 Sorting, insertion sort (Ch. 7) Review.  Homework-4
week 9: 10/16, 10/18  Midterm exam Midterm Exam, 
week 10: 10/23, 10/25 Heap sort (ch.7), Merge sort,  Project-2
week 11: 10/30, 11/1 Quick sort (ch.7), External sort.   
week 12: 11/6, 11/8 Graph, topological sort (ch.9),  Shortest path Homework-5
week 13: 11/13, 11/15 FILE STRUCTURES preliminaries. FILE RECORDS, Homework-6
week 14: 11/20,  Multilevel Indexing,  B-tree  
week 15: 11/27, 11/29 Network flow, Minimum spanning tree, Depth-first search (ch.9). Homework-7
week 16: 12/4, 12/6 Review.
week 17: 12/14 Friday Final Exam 3:30--5:30pm

Testing, Grading, and Evaluation Policies and Procedures

Grading scale: 
<60 >=60 >=63 >=67 >=70 >=73 >=77 >=80 >=83 >=87 >=90 >=93 >=97
F D- D D+ C- C C+ B- B B+ A- A A+

Exams and quizzes (for attendance check): 60%. Assignments and projects: 40%. The final scores will be curved to generate a good distribution of grades.

Homework should be handed in on papers without delay. We will not accept homework one week after due when the solution is posted. Projects should be submitted to Assignment folder with a text file explaining how to compile and run programs, a source program file, and the associated data. They can also be zipped to a single file in submission. C or C++ source code can be accepted and they should be compiled on windows system or UNIX (Linux) system.

Midterm and final exams will cover the first and second halves of the textbook without overlap. Notice: No late exam will be given under any condition. Early exam is acceptable during the week before the scheduled exam if students provide sound reasons.

Miscellaneous Information

This class will use Oncourse. You can login Oncourse using your IUPUI account. Slides are put at Resource folder and homework are assign in the Assignment folder.

TA Responsibilities

a. Work 10 hours per week, on average, assisting one professor in the conduct of one course.
b. Offer office hours twice per week to assist students with the course and homework material.
c. Assist in creating instructional material such as, slides, lecture assignments, tests and solutions as requested by the instructor.
d. Grade all lecture and homework assignments in a timely manner.
e. Cover lectures, if needed, in the instructor's absence.
f. Maintain the course website in a timely manner.
g. Maintain the Oncourse site with up-to-date student grades in a timely manner.
h. Monitor the class mailing list for any questions/ discussions and provide answers when appropriate.
i.  Substitute classes in case instructor can not make it due to business trip.