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

Office: Sci III 338, 654-3180 
Office Hours: MWF 12:45-1:40pm and 4:30-5:15pm (or by appointment)
Email: melissa@cs.csub.edu
Course web site: http://www.cs.csub.edu/~mdanfor/ under Teaching menu

Course meets MWF 1:45 - 2:55pm
         and T  12:20 - 2:50pm in Sci III 311

Course Description
Builds on the foundation provided by the CMPS 221-222 sequence to introduce 
the fundamental concepts of data structures and the algorithms that proceed 
from them within the framework of object-oriented programming methodology. 
Topics include: recursion, fundamental data structures (including stacks, 
queues, linked lists, hash tables, 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. 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 walk-in computer lab in Sci III 324 is available for use by students in
this course outside of class time on a first come, first serve basis. 

Grading:  Labs/Homework 40%
          Midterm       30%
          Final         30%

Labs:
Lab assignments will be posted on the course website. Labs are worth 10
points and usually involving writing a short programs. The labs are due 
on the day after 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 and consist of implementing and using certain
data structures. Plan to spend 10 - 15 hours per homework assignment.
Programs which do not compile may be given partial credit depending on
the severity of the error. 

Late Policy for Homework:
If there is no late policy posted on the homework assignment, then the
homework may be turned in up to three days late. Saturday and Sunday 
combined count as only one day late (e.g. if the assignment is due Friday
and you turn it in Sunday, it will be marked as one day late). If there 
is a late policy posted on the assignment, then that policy will apply 
for that particular assignment. Late homework will be marked down 10% 
for each day it is late.

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 27, 2010 during the lab timeblock.

Final: Friday June 11, 2010 at 2:00 - 4:30pm