Lecture: 3 hours
Discussion: 1 hour
Prerequisites: Courses ECS 20, ECS 40 (C++ and UNIX); and a grade of C- or better in each course
Grading: Letter; based on the programs (4 @ 10% each), one midterm (20%), final (40%)
Catalog Description:
Design and analysis of data structures for a variety of applications. Trees,
heaps, searching, sorting, hashing, graphs. Extensive programming.
Expanded Course Description:
Analysis of algorithms. Strings. Stacks. Queues. Trees. Tree traversals.
Binary trees. Expression trees. Binary search trees. Amortized analysis.
Hashing. Universal hashing. Heaps. Sorting algorithms. Graphs. Depth-first
Search. Minimum spanning trees. Shortest paths. Union/Find data structure.
Splay trees. Digital search trees. Tries. Huffman codes. Branch-and-Bound.
If time permits, any of the following: Skip lists, B-trees, Fibonacci
heaps.
Textbook:
M. Weiss, Data Structures and Algorithms in C++, Addison Wesley,
2006
Computer Usage:
Students will utilize the computer systems in the Computer Science Instructional
facility (or their home computers) to develop 4 large programs.
Engineering Design Statement:
Programming assignments involve design of the proper data-structure, design
of the associated program, coding, and testing of open-ended problems
requiring independent solution by the students. The function of the programs
are specified, but design details of possible solutions are not specified.
Engineering design skills are further developed by increasing the complexity
and open-ended nature of the assignments throughout the term.
ABET Category Content:
Engineering Science: 2 units
Engineering Design: 2 units
Goals:
Students will:
Program Outcomes:
Instructor: P. Rogaway
Prepared By: P. Rogaway (May 2006)
Overlap Statement:
ECS 110 is the gateway to almost all upper-division computer science courses,
and as such does not overlap with them except for brief review. There
is no overlap with other courses.
5/06