Computer Science 232
Algorithms and Data Structures
Spring 2006


MWF 8:30-9:20   De La Roche 004

 

Instructor: David Levine

Office: De La Roche 103

Phone: 375-2598

Email: dlevine@cs.sbu.edu

Office Hours: M 1:30-2:30, T 10-11, W 9:30-10:30, Th 1:30-2:30, F 9:30-10:30 and by appointment

Course Web Page: In general, announcements, readings, assignments, and laboratory exercises for CS 232 will be given in class AND published on the course web page.  Students are expected to check that page regularly for news, and are nonetheless responsible for any assignment announced in either manner.  The course web page can be found at http://web.sbu.edu/cs/dlevine/CS232/.

Text

Catalog Description

A study of abstract data types including trees, hash tables, and graphs.  A study of the analysis of algorithms, algorithm design techniques, and the study of computational complexity and levels of intractability.  Prerequisite: CS 132 AND Math 208.  3 credits.

Course Overview

Computer Science 232 studies the mathematical structures (both algorithms and data structures) that contribute to software efficiency.  The course focuses on various well known problems and their various solutions.  From these examples, general techniques are drawn out as exemplars of more general problem solving.  Students will be expected to master both the mathematical analysis of these solution techniques and to gain experience with their implementations in programs.  A mixture of applied and theoretical homework will be assigned.

CS 232 has several goals.  At the end of this course, you should be able to:

Course Goals

Program objectives:  The learning objectives for this course are to work toward the Computer Science Department SLAP objectives as listed at the Middle States web site (http://assessment.sbu.edu) via the "SLAP Info" button at the right end of the second line, then selecting "Program Learning Goals."

In addition to these general goals, this course has the goal of ensuring that students are capable of writing programs entirely on their own, as opposed to as part of a paired environment.  The two multi-stage programming assignments aid in the achievement of this goal.
 

Attendance

As mature college students, it is expected that all class members can make reasonable decisions about attending class and what constitutes a legitimate excuse for missing class.  Roll will not be taken in class (after the roster has stabilized), but students are cautioned that there will be some material covered in class that is not in the textbook and that missing a class may result in their being inadequately prepared for the homework.

In ALL cases, if a student misses class, it is the student's responsibility (and not the instructor's) to learn about pending work and to make arrangements for the timely submission of any assignments. 
 

Services for Students with Disabilities

Students with disabilities who believe that they may need accommodations in this class are encouraged to contact the Disability Support Services Office, Doyle Room 26, at 375-2066 as soon as possible to ensure better that such accommodations are implemented in a timely fashion.  Documentation from this office is required before accommodations can be made.

Grading

The final grade will be determined by a combination of  items as determined by performance on examinations and on written assignments.  The final grade will be determined approximately as follows: 
 

Best five (of eight) quizzes25%
Final examination25%
Homework exercises25%
Programming projects25%

 

Quizzes

The date of the quizzes are listed on the course web page.  While there are no current plans to change these dates, it is possible that they will change.  Any changes will be announced in class and on the web page at least one week in advance.  As all students may drop three quizzes, no make-up quizzes will be given, even for "excused" absences.  Should university commitments require any student to miss more than three quizzes, accommodations will be made provided that the instructor is notified in advance.

Final Examination

The final exam is Monday May 8, at 10:35 a.m. and will be comprehensive.  

Collaboration

Students are expected to read and abide by the department’s Academic Practices and Policies, a copy of which will be distributed with the course syllabus.  Please review it:  Ignorance of the policies and procedures is not an excuse for violating them.   Unless other instructions are explicitly stated all graded work will be subject to the policy Individual Project Without Collaboration. 

Academic dishonesty in any form will not be tolerated.  Typically the first offense will, at a minimum, result in a zero on the assignment in question.  Repeated offenses will likely result in a failing grade for the course.  Any offense deemed punishable will also be referred to the Dean of Arts and Sciences. 

Academic Honesty

Academic dishonesty is inconsistent with the moral character expected of students in a university committed to the spiritual and intellectual growth of the whole person.  It also subverts the academic process by distorting all measurements.  It is a serious matter and will be dealt with accordingly.  A list of unacceptable practices, penalties to be assigned, and procedures to be followed in prosecuting cases of alleged academic dishonesty may be found in the Student Handbook.  Further details, including specific information about computer science courses, may be found in the department’s Academic Practices and Policies booklet.

Lateness

Late work will be accepted without penalty only under very unusual circumstances.  In general, if work is received the day that it was due, but after the deadline, the penalty will be 10%.  Work received on subsequent days will be penalized at a rate of 25% per day, subject to a maximum penalty of 75%.  Work over two weeks late will not be graded at all, however.

Tentative Schedule

Basically, we will be jumping around in the text, including mixing some sections with others.  Below is an approximation of the time that will be spent on various topics.  The specific reading assignments will be indicated on the course web page.

Chapters 5, 7 - Analysis of Algorithms

2 weeks

Chapter 8 – Sorting

1 week

Chapters 6, 16, 17 - Data Structures

2 weeks

Chapters 18, 19 - Trees

2 weeks

Chapters 6, 21 - Sets and Priority Queues

2 weeks

Chapter 20 – Hash Tables

1 week

Chapter 14 – Graphs

2 weeks

Chapters 22-24 - Advanced Data Structures2 weeks
other materials - NP Completeness1 week