CS 367-2: Introduction to Data Structures

Fall 2003


News


Contents


Instructor

Nicholas Coleman

Office:         3379 Computer Sciences
Phone:          263-2150
E-mail:         ncoleman@cs.wisc.edu
Office Hours:   Monday 3:00 - 4:00pm
                Wednesday 3:30 - 4:30pm
                or by appointment (send e-mail)

Teaching Assistant

Eric Skaug

Office:         3360 Computer Sciences
Phone:          262-9275
E-mail:         eskaug@cs.wisc.edu
Office Hours:   Monday      11am-noon
                Wednesday   12:30-1:30pm
                Thursday    10-11am

Lecture Information

2:30 - 3:45 Tuesdays and Thursdays
room 1240 Computer Sciences (1210 W Dayton St)

Programming Language and Computers

All programs must be written in Java. The machines available for your use are the Unix Solaris workstations. They are in rooms 1358, 1366, and 1368 of the Computer Sciences and Statistics building. The machines are named nova1 - nova60. You may work on other machines, but you must be able to copy your code to the class directory for grading, and it must run on the nova machines.

Exams

FinalExam

On-line Grades

Grades are available here.

Important Dates

There will be five programming assignments, and ten short written homework assignments. There will be two midterm exams and a final exam.
Tentative program due dates:
program 1       September 16
program 2       October 2
program 3       October 23
program 4	November 13
program 5	December 9

Tentative exam dates (midterms will be given in the evening, and there will be no class on exam days):
midterm 1        October 9         7:15 - 9:15pm in 145 Birge
midterm 2        November 11
final            December 14

Working in pairs, Final grades

The first programming assignment will be done individually The other programming assignments may be done either individually or in pairs (your choice).

All written assignments and exams will be done individually.

Your final grade will be computed approximately as follows:

	each program:	 8%		(total 40%)
	each exam:	10%		(total 30%)
	each homework:	 3%		(total 30%)

Late Policy

Written homeworks will be due in class, and will not be accepted late. If you need to miss a class when a written assignment is due, it is your responsibility to make sure that your homework is handed in on time.

Programs will be handed in by copying files to a specified directory. If a program is due on October 3, it is on time if it is copied by the end of the day on the third (i.e., by midnight). If it is copied any time on October 4, then it is 1 day late; if it is copied any time on October 5, then it is 2 days late, etc. The last programming assignment will NOT be accepted late. Other programs will be accepted up to 3 days late. Each student has six "free" late days per semester. Once your free late days are used up, each day that a program is late will result in a 5 point penalty. Free late days are provided so that you can deal with unexpected circumstances (illness, family problems, etc). Please use your free late days wisely!

Textbook

Data Structures and Abstractions with Java
Frank M. Carrano and Walter Savitch

Prerequisites

Students should have taken CS 302 in the last year or so. The programming assignments are all in Java. Appendix A and chapter 1 of the text cover basic Java and using Java Classes. You should already be familiar with this material.

Tentative Syllabus

Week  Topics                    Reading
----  ------                    -------
1     Intro, ADTs, Efficiency   skim chapters 1-3, read chapter 9 up to p213
2     Exceptions, Lists         Appendix B, 4-5, 9.29, 9.30
3     Linked Lists              6 9.31-9.34
4     Stacks, Queues            20-23 (don't worry about pp471-474)
5     Recursion                 10
6     Trees, Midterm 1          24
7     Searching, Trees          16,25
8     More Trees		26
9     2-3 Trees			28 pp653-657
10    Heaps, Priority Queues	27 
11    Midterm 2, Hashing        19
12&13 Graphs                    29
14    Sorting                   11-12
15    Review

On-Line Notes

Assignments

Programming Assignments:

Homework Assignments:

Solutions

Programming Assignments:

Homework Assignments:

Guides to Grading

Programming Assignments:

Homework Assignments:

Class E-mail List

Archives

Java Links