Dr. Melissa Danforth

Computer and Electrical Engineering and Computer Science Department
California State University, Bakersfield

CSUB Logo
Skip navigation links

Download file viewer

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 - Spring 2008
Dr. Melissa Danforth

Office: Sci 403, 654-3180 
Office Hours: MWF 11:00am - 12:25pm and W 2:00pm - 3:00pm (or by appointment)
Email: melissa@cs.csub.edu
Course web site: http://www.cs.csub.edu/~mdanfor/ under Teaching menu

Course meets MWF 9:30am - 11:00am in Sci 414
             T  10:30am - 12:55pm in Sci 407 (Note: Room is different from lecture)


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 of Nyhoff 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. Attendance is strongly
recommended, but is not required. 

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: 
Tuesday April 22, 2008 during the lab time in Sci 407.

Final: 
Thursday June 5, 2008 at 8:00am in Sci 414.