CS 367-3: Introduction to Data Structures

(http://www.cs.wisc.edu/~cs367-3/cs367.html, Revised 9/4/96)

Fall 1996

James R. Larus

 

Instructor:

James Larus
larus@cs.wisc.edu
5393 Computer Sciences
262-9519
http://www.cs.wisc.edu/~larus/larus.html

Office hours: Tuesday 3-4 pm , Friday 11-12 am


Contents


Course Objectives

CS367 has two objectives:

Teaching Assistants

Wei Zhang and Chin Tang Chin are the teaching assistants (TAs) for this course (sections 2 and 3). They will grade your homework assignments and will be happy to answer questions about the assignments, or any other aspect of the course that is giving you trouble.

Wei Zhang
Office: 1343 Compuer Sciences
Office hours: Wednesday 10-11, Thursday 9-10, Sunday 3-4
Office phone: 262-5596
Email address: weiz@cs.wisc.edu

Chin Tang Chin
Office: 3310 Computer Sciences
Office hours: Monday 9:30-10:30am, Tuesday 2:30-3:30pm, Friday 9:30-10:30am
Office phone: 262-1721
Email address: cchin@cs.wisc.edu
Home page: http://www.cs.wisc.edu/~cchin/cchin.html

Text

The text book for this course is Data Abstraction and Problem Solving with C++: Walls and Mirrors by Frank M. Carrano (ISBN # 0-8053-1226-9). This is a well-written, if a little long-winded, text that covers most (but not all) of the material in this course. It also includes background about C++, so a separate text for the language is not necessary.

The lectures will often (but not always) follow David Dewitt's CS 367 Lecture Notes - Fall 1995. These notes are far more complete that simple lecture notes, but they fall short of a true text book (they contain very little narrative text, no exercises, etc.). I am using these notes as a basis for my lectures; as such, I feel free to skip portions and cover additional material. You may want to purchase these notes, which are available from the DoIT documentation desk at the Dayton Street entrance of the Computer Sciences building (1210 W. Dayton St).

If this course is your first experience with Unix, you will need information about activating your account, logging in, creating, editing, and manipulating files, and compiling, running, and debugging programs. The handout CS 1000, also available from the DoIT information desk, contains this crucial information. (Also, see also the help section below.)

Lecture Information

Tuesday and Thursday: 11:00 - 12:30 in 107 Psychology.

As mentioned above, lectures will often follow DeWitt's notes. Lecture attendence is strongly recommended as I will regularly present material that does not appear in the textbook or lecture notes, but will be useful for the programming assignments and exams. Needless to say, You are responsible for all material covered in lecture! The exams will be based on the lecture material, reading assignments in the notes, and the course assignments.

Electronic Mail

I often use electronic mail to notify students of changes in assignments, hints for programs, etc. I assume that you regularly read your electronic mail.

Grading

There will be one or two evening exams during the semester, a final exam and five programming assignments. The exams will determine 50% of the final grade (with approximately equal weight for each one), and the programming assignments will count for 10% each.

The C++ Language

CS 367 will be taught using the C++ programming language, and programming assignments must be written in C++. If you do not know C++, you should not be in this section of CS367. Jim Skrentny is teaching two sections of CS367 that cover C++ in addition to data structures. C++ is a large and complex language; unless you are an experience programming (and even then), it is a difficult language to learn from a book.

There is also another WWW page with more information on the programming assignments.

Gdb

There is also a web page that describes the gdb program debugger.

Exams

Exam 1
Tuesday, Oct 22, 7:15-9:15pm, 1351 Chemistry.
Exam 2
TBA
Final Exam
Wednesday, December 18th, 5:05pm-7:05pm, place TBA

Course Schedule

The following is a rough outline of topics that will be covered in this course. A more detailed scheduled will be provided later.

Topic

Dewitt's Notes

Introduction & Administration
Basic stuff of C++ lecture #2
Functions lecture #3
Pointers lecture #4
Records & dynamic storagelecture #5
Lists lecture #6
Binary Search and O notation
Advanced Listslecture #7
Stackslecture #8
Queueslecture #9
Hashinglecture #10
(Evening Exam)lecture #11
Recursionlecture #12
Trees
Binary Trees - Sort & Searchlecture #13
AVL Trees
Graphslecture #16
(Evening Exam)
Sortinglecture #17
TBA

Assignment 0

This is an absolute requirement to get a grade other than F! Turn in an index card with the following information:

Assignment 1

The first programming assignment is to write a simple abstract data byte for a bounded integer sequence. The text of the assignment is on-line.

Assignment 2

The second programming assignment is to write a program to maintain a database of scores for a tennis tournament. The text of the assignment is on-line.

Assignment 3

The second programming assignment is to write a program to produce a concordance using hash tables. The text of the assignment is on-line.