cse 330 : Data Structures : Spring 2011
Professor Ernesto Gomez
phone: (909) 537-5429
Class: M W - 2 PM, JB-140
Lab: M W - 3:30 PM, JB-358 (2 sections)
office hours: TBA
(or by appointment)
Watch this space
Text: Timothy Budd, "Data Structures in C++ Using the Standard Template Library", Addison-Wesley
Data structures organize and represent a collection of items.
Examples of data structures are arrays, vectors,
stacks, linked lists, trees, and heaps to
name a few. Data structures are one of two parts of any program;
the other part is the algorithm.
Data structures and algorithms are closely related; the choice of algorithm
generally dictates the data structure that should be used, and vice-versa.
A program can be thought of as a transformation on the data structure
instances used to solve a problem.
The objective of the course is to learn why and how a data structure is chosen
to solve a problem. This learning process is done repeatedly through the
exercise of introducing and analyzing a class of problems, and then converging
toward the best data structure(s) and algorithm(s) to solve such problems.
Along the way, one must take into account: correctness, time and space complexity,
brevity, and elegance. We will also study how to prove our statements about
correctness and complexity.
The C++ Standard template library includes implementations of most of the data structures
covered in this course, and we will make extensive use of it, and also look inside
at it implementation. A knowledge of C++ equivalent to the material covered in cse
201/202 is assumed.
Students in this class should expect to spend 6 to 12 hours per week reading, doing
laboratory programming assignments, and reviewing material from the class. This time
is in addition to time spent in class and laboratory.