Page type: course

CS 367; ;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;Teaching Assistants;Text;Lecture Information;Electronic Mail;The C++ Language;Grading;Exams;Course Schedule;Assignment 0;Assignment 1;Assignment 2;Assignment 3;Programming Assignments;Course Objectives;CS367 has two objectives:;Present the concepts of data structures in general and some of the most widely used structures in detail. Data structures are the fundamental building;blocks of computer programs. By the end of the course, you should be able to identify situations in which a data structure is necessary, determine the;requirements for the data structure, and select the appropriate data structure from those covered in this course.;Reiterate the concepts of structure programming, abstract data types, and modularity. These principles, which were introduced in CS302, are essential;to writing clear, correct, and maintainable software. As there is a close connection between abstract data types and data structures, this course places;a strong emphasis on applying these principles in all programming exercises.;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:;Name and login name;Year in school (freshman, sophomore, ...);Previous CS courses;Previous programming experience;Recent photograph of you. It should not be your picture from your 1st birthday, nor from that boy/girl scout trip in the summer of 1984. It can be;color or black-and-white, any size, etc. No CS367 grades will be given without a photo!;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.;