(http://www.cs.wisc.edu/~cs367-3/cs367.html, Revised 9/4/96)
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
CS367 has two objectives:
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
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.)
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.
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.
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.
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.
There is also a web page that describes the gdb program debugger.
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 storage | lecture #5 |
Lists | lecture #6 |
Binary Search and O notation | |
Advanced Lists | lecture #7 |
Stacks | lecture #8 |
Queues | lecture #9 |
Hashing | lecture #10 |
(Evening Exam) | lecture #11 |
Recursion | lecture #12 |
Trees | |
Binary Trees - Sort & Search | lecture #13 |
AVL Trees | |
Graphs | lecture #16 |
(Evening Exam) | |
Sorting | lecture #17 |
TBA |
This is an absolute requirement to get a grade other than F! Turn in an index card with the following information:
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.
The second programming assignment is to write a program to produce a concordance using hash tables. The text of the assignment is on-line.