Syllabus
Click on this link to open the Printable Syllabus in a new browser window/tab (Note: The printable syllabus is in plain text format)
Data Structures and Algorithms CMPS 223 - Fall 2007 Dr. Melissa Danforth Office: Sci 403, 654-3180 Office Hours: MWRF 2:00pm - 3:30pm or by appointment Email: melissa@cs.csub.edu or mdanforth@csub.edu Course web site: http://www.cs.csub.edu/~mdanfor/ under Teaching menu Course meets MWF 11:00am - 12:25pm in Sci 407 and R 10:30am - 12:55pm in Sci 407 (Note: Room has changed) Course Description Introduce the fundamental concepts of data structures and the algorithms on the foundation provided by the CMPS221-222 sequence within the framework of object-oriented programming methodology. Topics include fundamental data structures (including stacks, queues, linked lists, hash tables, Binary trees, and graphs), and the basics of algorithmic analysis. Prerequisite: CS222 Textbook: ADTs, Data Structures and Problem Solving with C++, 2nd edition. Larry Nyhoff. Publisher: Prentice Hall, 2005. ISBN: 0-13-140909-3. Review Material from 221/222: Chapter 2 Introduction to Abstract Data Types Chapter 3 Data Structures and Abstract Data Types Chapter 4 More about OOP and ADTs -- Classes Chapter 5 Standard C++ Input/Output and String Class Chapter 9 ADT Implementations: Templates and Standard Containers Chapter 10 ADT Implementation: Recursion, Algorithm Analysis... Chapter 14 OOP and ADTs Some of the chapters have a mixture of review and new material. Material Covered: Chapter 1 Software Development Chapter 2.1 A First Look at ADTs and Implementations Chapter 3.1 Data Structures, Abstract Data Types and Implementations Chapter 3.6 Procedural Programming Chapter 4.1 Procedural vs Object-Oriented Programming Chapter 9.1 The Evolution of Reusability and Genericity Chapter 14.1 A Brief History and Overview of OOP and ADTs Chapter 10.4 Algorithm Efficiency Chapter 6 Lists Chapter 7 Stacks Chapter 8 Queues Chapter 9.7 Other Standard Containers -- deque, stack and queue Chapter 9.8 Bitsets and Valarrays Chapter 10.5 Standard Algorithms in C++ Chapter 11 More Linking Up with Linked Lists Chapter 12 Searching: Binary Trees and Hash Tables Chapter 13 Sorting Chapter 15 Trees Chapter 16 Graphs and Digraphs Attendance: Students are responsible for their own attendance. The topics covered in lecture will be listed on the course website. Lab attendance is not required but is strongly encouraged. Academic Integrity Policy: Homeworks and labs may be worked on and discussed in groups. If the assignment is a group assignment, the group can turn in one assignment for the entire group. If the assignment is an individual assignment, each student must turn in their own code; no direct copying is allowed. Refer to the Academic Integrity policy printed in the campus catalog and class schedule. Computer Lab: The computer lab in Sci 409 is available for use by students in this course outside of class time on a first come, first serve basis. Computer Science department tutors will be available to assist with assignments in 409. Refer to the tutoring schedule posted on the door for times. Grading: Labs/Homework 40% Midterm (1) 30% Final 30% Labs: Lab assignments will be posted on the course website. Labs are worth 10 points and usually involve writing a short program or showing progress on the current homework assignment. The labs are due at 5pm on the day of the lab. Partial credit will be given for incomplete labs. Late labs will not be accepted. The lowest lab grade will not be counted towards the overall lab grade. Homework: Homework assignments and due dates will be posted on the course website. Homeworks are worth 20 points. Programs which do not compile may be given partial credit depending on the severity of the error. Late homework will be marked down 10% for every weekday it is late. Weekends (Sat. and Sun.) count as only one day late. Assignments more than three days late will not be accepted. Labs/Homework Submission: Assignments are submitted by emailing the instructor all assignment code files from the Computer Science department server. Do not use RunnerMail or any other email method. If you believe you submitted the assignment on time but the instructor has not received the email, contact the instructor. Midterm: The midterm will be in week 5, Monday October 8, 2007 during the lecture time block in Sci 407. Final: Monday November 26, 2007 from 11:00am to 1:30pm in Sci 407.