SYLLABUS CMPS 3013-201: Data Structures Catalog Description: In-depth study of complexity analysis and variety of advanced structures and related algorithms. Topics will be selected from trees, heaps, priority queues, graphs, hashing, sorting, pattern matching, recursion, and others as appropriate. Instructor: Dr. Catherine V. Stringfellow Office: Bolin Science Hall, Room 128C Office phone: 397- 4578 E-mail: catherine.stringfellow@mwsu.edu Web page: http://cs.mwsu.edu/~stringfe Office Hours: M, W, F 9-11am, M,F 1:30-3pm, T, R 10-11am and by appt Credits: 3 (3 hour lecture) Course Prerequisite: Minimum grades of C in CMPS 2433. Optional Textbook: C++ Early Objects 8th ed., by Gaddis, Walters, Muganda, Pearson. C++ How to Program by Deitel & Deitel General Objectives 1) to learn the concepts of data abstraction and modularization 2) to analyze and implement important data structures, such as trees and graphs, using an object-oriented approach 3) to introduce and analyze algorithms for internal and external sorting and searching Specific Objectives At the conclusion of this course, students should be able to: 1) create new data types, including dynamic data structures, and the operations to manipulate them using the object-oriented paradigm 2) write various sort and search routines 3) analyze algorithms to determine their time and/or space complexity 4) write programs containing object-oriented concepts and arrays Instructional Methods and Techniques 1) The class will meet twice for 1 1/2 hours of lecture each week. 2) Lectures will stress exploration, demonstrations, and hands-on activities 3) Assignments will provide an opportunity for the students to explore, develop and program solutions to problems in C++ Assignments for Course 1) Readings from the textbook 2) Homework assignments 3) Weekly Quizzes – lowest 2 will be dropped (no makeups) 3) Programming assignments 4) Exams Attendance: Students are expected to attend all lectures and the lab orientation. Exams and Assignments: There will be two exams and one comprehensive final exam. Exams cover material from the text as well as programming activities. The lectures may not cover all the material in the textbook. There will be 4-5 major programming projects, which will be expected to be complete and robust, including good user interfaces and the ability to handle improper input. Homework may involve small coding exercises, be assigned from the text, and may involve working with other students or participating in out-of-class activities. Missed/Late Programs Policy will be handed out separately and is the same for all my programming courses. Course Evaluation: Quizzes and Homeworks Programming Assignments Two Tests Final Exam = 150 pts. = 450 pts. = 200 pts. = 200 pts. Grades may be determined according to this scale (approximate): A 90% - 100% B 80% - 89% C 65% - 79% D 55% - 64% Program Grading Policy: Students will be required to turn in programs according to the policy that will be handed out. Honor Policy: Cheating will not be tolerated. Plagiarism will result in, at best, an "F" for the assignment. Any student caught cheating on an exam will be given a zero on the exam. Repeat offenders will be given an F for the course (that F will be computed in the grade point average even after the course has been repeated). All work must be your own. You may discuss the material in the course and help one another, however, I expect any work you hand in for a grade to be your own. A simple way to avoid inadvertent plagiarism is to talk about the assignments, but don’t read each other's work or write solutions together. Keep scratch paper and old versions of assignments until after the assignment has been graded and returned to you. If you have any questions about this, please see me immediately. TENTATIVE CMPS 3013 Schedule Spring 2016 Week 1 Jan 20 Jan 22 Topics/Materials Course Information; Specifications; Opening Files Recursion Review 2 Jan 25 Pointer Review Jan 27 Jan 29 3 Feb 1 Feb 3 Dynamic Linked List Structures Stack Review Queue Review Analysis Feb 5 4 Feb 8 Feb 10 Feb 12 5 Feb 15 Feb 17 Feb 19 More on Analysis Recurrence Relations Recurrence Relations Exam Review Exam 1 Trees (spec and basic operations) Trees (implementation) 6 Feb 22 Feb 24 Feb 26 7 Feb 29 Mar 2 Mar 4 8 Mar 7 Mar 9 Mar 11 9 Mar 14 Mar 16 Mar 18 Mar 20-26 10 Mar 28 Mar 30 Apr 1 11 Apr 4 Apr 6 Apr 8 12 Apr 11 Apr 13 Apr 15 13 Apr 18 Apr 20 Apr 22 14 Apr 25 Apr 27 Apr 29 15 May 2 May 4 May 6 16 May 9 Binary Search Tree AVL Trees AVL Trees Red-Black Trees Red Black Trees Red Black Trees B-Trees B-Trees Assignments (daily homework not listed) Email Assignment; Read 1.5 and 2.1, Homework: Writing Specs Due: Email Assignment; Read Chap. 14 Assign Program 1 Due: Specs Assignment Read Chap 10 Read Chap 17 Read Chap 18 Read 9.6 Due: Program 1 Assign Program 2 : Circular Linked List Assign: Analysis Homework Due: Analysis Homework Read 19.1 Due: Program 2; Assign Program 3: Binary Tree Read 19.2; Assign Homework: BST Due: BST Homework Due: Program 3; Assign Program 4: Balanced Trees Exam Review Exam 2 Review O(n2) Sorts Merge Sort Read 9.3-9.5 Spring Break Easter Break Quick Sort Radix and Counting Sort; Heaps Heaps Continued Video Heapsort Intro to Graphs Graphs (spec and basic operations) Graphs (complex operations); Graph implementation 1 Graph Implementation 2 DFS BFS A* Search Topological Sort Hash Tables Hash Tables Final Exam Review Final Comprehensive Exam 10:30am-12:30pm Homework: Timing Sorts Due: Sort Homework Due: Program 4 Assign Program 5 Assign Homework: Graph DUE: Program 5A (implementation/test driver) Due: Graph Homework Assign Hashing homework DUE: Program 5B (solved problem) Due: Hashing homework Academic Policies: Students should refer to the current MSU Student Handbook and Activities Calendar and the MSU Undergraduate Bulletin for university policies on academic dishonesty, class attendance, student rights and activities. Disability Policy: In accordance with the law, MSU provides academic accommodations to students with documented disabilities. Students with disabilities must be registered with Disability Support Services before classroom accommodations can be provided. The DSS office is located in Clark Student Center, Room 168, phone 397-4140. Counseling Center: MSU offers personal, group, career, and academic counseling. Students are encouraged to take advantage of these free services by contacting the Counseling Center: Corner of Hampstead and Louis J. Rodriguez Drive, 397-4618, counseling@mwsu.edu. Course Content: The material includes text reading assignments, lectures, programs, and homework. Students are responsible for all material regardless of attendance. Assistance: CS tutoring is available in Bolin 119. Specific dates and times will be announced. Tutors are advanced CS students and are there to assist only. You may also come by my office during regular office hours or send an e-mail to me or the graduate assistant. Open Labs: Students may complete program assignments on their personal computers or in one of the campus labs. Currently, C++ is available in Bolin labs 119 and 103. Bolin 103 is also used as a classroom. Open times are posted on the door. Bolin 119 is open from 8 a.m. to 5 p.m. M-F. The lab in Clark Student Center is open 24-7. The lab in Moffett Library is open during library hours. Electronic Devices: ALL electronic devices must be stored in a bag or pocket, etc. and may not be on the desk or out during class. This includes cell phones, laptop computers, iPods, and any other device that might be a distraction to you, your classmates, or the instructor. Failure to adhere to this policy may result in being removed from the class.