CSC 321: Data Structures & Algorithms
Spring, 2001

Tue/Thu, 8:30-9:45 am
Chambers 301


Course Description


Instructor:
Stephen L. Davis; click here for my weekly schedule.

Texts:
Timothy Budd, Classic Data Structures in Java, Addison Wesley Longman, 2001

Overview:

Our goal is to learn about fundamental data structures for representing objects such as vectors, lists, stacks, queues, trees, sets, and graphs in the context of a language which supports object-oriented programming, Java. We will be using Metrowerks, accessible on Macintosh and Windows computers via the campus network. A plan for our progress through the text is shown in the Schedule Guesstimate below.

Evaluation:

We will have daily homework, two reviews, seven programming assignments, and a final examination, as indicated below. Your efforts on the reviews and final examination will contribute about half of the basis for my evaluation of your efforts in this course. The rest of this evaluation will be drawn from your accomplishment on programming assignments and on homework. Other factors, such as alertness and participation in class, may provide additional color to this evaluation. A rough recipe for the proportions in which these events combine to produce your evaluation is

Class Policies:

Programming assignments are due at the end of the day on the indicated Fridays; late submissions will be penalized one-half grade per day (with Saturday-Sunday treated as a single day).

The programming assignments, reviews, and final examination are pledged events; you are expected to be vigilant in upholding the Honor Code. In some cases, programming assignments may be the result of a collaborative effort of teams of two (or three?) students. In these cases the pledge is a "group pledge," though specific attribution of work on the various components of the assignment is expected.

The Code of Responsibility prohibits "unauthorized review, transfer, or alteration of information on the computer." Plagiarism is an Honor Code violation.

Collaboration on homework is encouraged. However, you are responsible for work which bears your name; that is, it is presumed that you understand and can defend any work which you submit. If you have any questions regarding ground rules for individual events, do not hesitate to ask for clarification.

Each member of the class is a valuable resource for others in the class. Absences and tardiness diminish the quality of the course; come to class and come on time. Attendance at all class meetings is expected; you are responsible for all material discussed in class, whether you are present or absent. Absences in excess of five (5) TuTh classes will qualify you for a failing grade in this course. (Note: This class will meet on April 19 and on May 8.)

Schedule Guesstimate:

(volatile!)
Date Chapter Topic/Event Prgrmng Asgmt
Jan 16, 18 1 2 abstract data types PA #1 due Jan 19
Jan 23, 25 3 .. algorithms
Jan 30, Feb 1 4 .. execution time PA #2 due Feb 2
Feb 6, 8 5 6 correctness; vectors
Feb 13, 15 7 .. sorting vectors PA #3 due Feb 16
Feb 20, 22 8 Review #1 linked lists; Review--Feb 22
Feb 27, Mar 1 10 11 stacks; deques PA #4 due Mar 2
Mar 6, 8 no class no class Spring Break
Mar 13, 15 12 13 queues, trees
Mar 20, 22 .. 14 binary search trees
Mar 27, 29 .. 15 priority queues PA #5 due Mar 30
Apr 3, 5 16 17 hash tables; maps
Apr 10, 12 .. Review #2 Review--Apr 12 PA #6 due Apr 13
Apr 17, 19 no class 18 Easter break; sets
Apr 24, 26 .. 19 matrices
May 1, 3 20 .. graphs PA #7 due May 4
May 8 .. wrap-up
May 11-16 Final Examination