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

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

Course meets MWF 12:20-1:30pm and Tu 12:20-2:50pm in Sci III 315

Course Description
Builds upon the foundation provided by CMPS 221 to introduce the fundamental
concepts of data structures, algorithms, and algorithm analysis. The course
focuses on the concepts and implementation of fundamental data structures
(linked lists, stacks, queues, trees, hash tables, and graphs). Other topics
include: pointers, recursion, searching and sorting algorithms, and the basics
of algorithm analysis.

Prerequisite:
CMPS 221

Topics that were covered in CMPS 221 that you should know for this course:
(Chapter numbers are from the CMPS 221 textbook)

Chapter 1     Introduction to Computers and Programming
Chapter 2     Introduction to C++
Chapter 3     Expressions and Interactivity
Chapter 4     Making Decisions
Chapter 5     Looping
Chapter 6     Functions
Chapter 7     Arrays
Chapter 9     Pointers
Chapter 10    Characters, Strings and the string Class
Chapter 11    Structured Data
Chapter 13    Introduction to Classes

Textbook: 
Data Abstraction & Problem Solving with C++, 5th edition. Frank Carrano.
Publisher: Prentice Hall / Pearson. ISBN: 0-321-43332-7.

(Note: This is a new textbook for this quarter)

Material Covered:

Chapter 1     Principles of Programming and Software Engineering (brief)
Chapter 3     Data Abstraction: The Walls (brief)
Chapter 4     Linked Lists
Chapter 6     Stacks
Chapter 7     Queues
Chapter 2     Recursion: The Mirrors
Chapter 5     Recursion as a Problem-Solving Technique (prefix and postfix)
Chapter 9     Algorithm Efficiency and Sorting
Chapter 10    Trees
Chapter 11    Tables and Priority Queues (heaps and heapsort)
Chapter 12    Advanced Implementation of Tables
Chapter 13    Graphs

View the calendar on the course website to see the order in which these
topics will be presented.

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. 
Priority in the lab is given to students who are completing assignments
for Computer Science courses. The lab typically closes around 5:00pm on
weekdays and is closed on weekends.

Tutoring is also provided on a limited basis in the walk-in lab. A tutoring 
schedule will be posted on the department website by the end of the first 
week of classes. Students in this course may ask the tutors for assistance 
on assignments. The tutors are not allowed to solve the assignment for you, 
but they can assist with problems like cryptic compiler errors.

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

Grades will be posted on the Moodle website for the course. This is a 
new way for the instructor to distribute grades, so please contact the 
instructor if your overall course grade seems abnormal (too high or too 
low). It might be an issue with Moodle's grade calculation, which is 
still being ironed out. 

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 as 
these assignments will be more complex than the assignments in CMPS 221
or CMPS 222. Programs which do not compile may be given partial credit 
depending on the severity of the error. No homework grades are dropped, 
however an extra credit assignment will be given at the end of the quarter.

Late Policy for Homework:
Late homework will be accepted. Late labs will NOT be accepted. Late 
homework will be marked down 10% for each day it is 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. Otherwise, homework assignments that
are 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 any other 
email method as your email might be discarded by the Computer Science
department spam filter. If you believe you submitted the assignment on
time but the instructor has not received the email, contact the instructor.

Allow at least one week after the assignment due date for the grade to be
posted to Moodle. All coding assignments will have the Comment section of
Moodle updated to say "assignment received" within a day or two of the
instructor receiving the email, even if the assignment has not yet been
graded. If the comment section is blank after a few days, the instructor
has likely not received your email.  

It is your responsibility to check Moodle to see if your assignment has 
been received and to contact the instructor if it has not been received. 
If you believe you emailed the assignment on time but the instructor has 
not received it, contact the instructor.

Midterm: Friday April 29, 2011 during the lecture time slot

A make-up midterm will only be given if you have to miss this midterm for 
serious and compelling reasons or if you schedule an alternative time for
the midterm at least ONE WEEK in advance. 

Final: Wednesday June 8, 2011 from 2:00-4:30pm in Sci III 315

If you cannot make the scheduled final time because it conflicts with another
final or you have more than two finals scheduled that day, you MUST contact
the instructor ONE WEEK in advance of the final to schedule an alternate time.