CS 140 Data Structures Spring, 2002

instructor: david straight

............................................................................ 
background expected:
Students are expected to be comfortable with the C language--typically having had a semester of programming in C. I make no particular assumptions about recursion, files, dynamic programming with malloc, etc.
basic course content:
This is a programming-intensive course, and students should exit the course with good skills in terms of being able to implement all kinds of linked-lists, trees, and other data structures. We'll be working with a variety of algorithms for height-balanced and weight-balanced trees, for retrieval trees, for minimaxed game trees, etc. We cover hashing, sorting, searching, efficiency, graph algorithms, etc. Applications in various fields of computer science will be stressed. For the first 2/3 of the course (roughly) students work alone on programs, and for the final third, in small groups. I expect to spend perhaps 3 weeks or so toward the end on the course covering the basics of C++, and there will be an assignment (or two) in C++. Along with C++, I'd like to teach some basic parallel processing--i.e. what kinds of data structures are amenable to being done in parallel.
a few details:
Labs are required. I do not teach out of the textbook, and the text therefore serves as an alternative presentation of data structures. Program assignments will all (or almost all) be self-contained--i.e. you will write the whole thing. I will often provide some test data. A few assignments may be very vague: e.g. "do something interesting in data structures using C++". If you like everything carefully specified, that's tough.
helpful examples??
in my "student" account (dws112) in the subdirectory cs112 you'll find program assignments, data sets, sample C programs (e.g. perhaps a short program such as grabdata.c showing how one can grab the test data).