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.