Course Number: CS352
Course Title: Data Structures
Instructor: Mary Heidt
phone: (915) 757-0258
Term Dates: Oct11 – Dec4, 200
Class Time: Friday, 5:00 p.m. – 10:00 p.m.
1. COURSE DESCRIPTION
This course introduces the student to various data structures and advanced algorithmic concepts. These concepts will be put into practice using C++ for programming projects. These data structures will be covered: stacks, queues, trees, graphs, linked lists. These concepts will be covered: recursion, sorting, searching, hashing. Space and time complexities of algorithms will be analyzed. Prerequisites: CS 208, a grade of 'C' or better in CS 225. 3:0:3.
2. GOALS OF THE COURSE
This course seeks to introduce students to certain data structures and connect these structures to their algorithms and an analysis of the complexity of these algorithms. Using C++, these data structures are presented in the object-oriented setting and will be implemented in programming assignments.
3. LEARNING OBECTIVES
• Students will be able to implement C++ classes in programming assignments
• Students will be able to write programs using the following data structures: lists, stacks, queues, trees, and graphs.
• Students will be able to implement algorithms, including recursive, searching, sorting and hashing algorithms, with the above data structures.
• Students will be able to analyze the complexity of algorithms.
4. COURSE ARRANGEMENT
This course will consist of lectures, reading assignments, homework assignments, programming assignments, and tests.
5. COURSE REQUIREMENTS
Students are responsible for all reading, homework, and programming assignments. All assignments are due at the beginning of class. Programming assignments are graded on the correctness, analysis of time and space efficiency, and style of the code. Students are expected to backup all programs and will submit both a hard copy and disk for programming assignments.
Students may discuss programming assignments in a general way with other students, but solutions must be done independently. Graded work must be unmistakably your own and may not be copied from another source.
Drozdek, Adam, Data Structures and Algorithms in C++, Brooks/Cole, 2001.
7. CLASS MEETING AND EXAMINATION SCHEDULE
Oct 15: Object –Oriented Programming(Chapter 1); Complexity Analysis (Chapter 2)
Oct 22: Linked Lists (Chapter 3)
Oct 29: Exam1; Stacks & Queues (Chapter 4)
Nov 5 : Recursion (Chapter 5); Binary Trees (Chapter 6)
Nov 12: Binary Trees (continued); Hashing (Chapter 10)
Nov 19: Exam; Sorting (Chapter 9)
Nov 26: Graphs (Chapter 8)
Dec 3: Review and Final Exam
This schedule provides a general outline of topics to be covered in class. The actual pace of the class may be adjusted depending on student mastery of topics.
8. CLASS POLICIES
Late homework assignments will not be accepted. Late programming assignments will receive a 10-point deduction for each day the assignment is late.
Students are cautioned regarding Park College and U.S.A.S.M.A. policies regarding class attendance and academic honesty. This policy will be strictly adhered to. Three unexcused absences are defined as excessive and result in an involuntary withdrawal and a grade of F for the course. Instructor must be contacted via email in order for an absence to be excused. Additionally, policies regarding smoking and eating established by the college will be observed.
The final grade for the course will be assigned using the following grading scale.
Programming Assignments: 30%
Final Exam: 25%
The letter grade awarded corresponds to the following percent averages.