Data Structures

CS 234 Waterloo, Fall '01


  Instructor:           David Toman (david@uwaterloo.ca)
  Office:               DC 3128 Tue 4:30-6
  Lectures:             Tue-Thu 11:30-1:00 in MC2038
  Class Info:		http://db.uwaterloo.ca/~david/cs234

  Tutors Office/Help:
       TBA
       e-mail: cs234@undergrad.math


Synopsis and Overview

The lectures try to give an answer the following questions:
  • what are data structures and data types?
  • how do we use them?
  • how do we build them?
  • how do we design better data structures better algorithms? (and what do we really mean by better algorithm?)

  • Prerequisites

    The lectures assume that:
  • simple programming skills in JAVA or PASCAL (i.e., you know how to write, compile, and run small programs; see note on using other programming languages below).
  • elementary math (i.e, you understand what are sets, relations, functions, etc. and what can you do with them).

  • Book(s)

    Required: Data Structures and Algorithm Analysis. 2nd ed. Mark Allen Weiss. Benjamin Cummings, 1995.
    References: The Art of Computer Programming (vol. 1,3), Donald E. Knuth, Addison-Welsley 1997.

    The lectures do not follow the textbook to the letter. Additional lecture notes will be made available for some of the advanced topics.


    Assignments

    Programming assignments in CS234 class are individual assignments. All assignments will be collected both electronically (using submit) and as hard copies. The assignments must be submitted by the due date, as the solutions will commonly be discussed in the next class.

    The class official programming language is JAVA. You may also use PASCAL if you don't know JAVA (however, geting up to speed with JAVA is encouraged). Also, if you chose to use Pascal you will be completely responsible for making your programs work; in particular you may NOT expect help from me or the TA's (though we try to help).


    Assessment

  • 30% Assignments (3 programming assignments)
  • 30% Midterm (08/30 as scheduled by Math faculty)
  • 40% Final (TBA as scheduled by Math faculty)
  • To pass the course, a student must pass both the midterm and the final examination (i.e., 50% weighted average on the exams).


    Fine print: the usual university policies on academic honesty, fair use of computing facilities, etc., apply by default.