December 11, 2013

CS 234: Data Types and Structures


General description

This course introduces widely used and effective methods of data organization, focusing on data structures, their algorithms, and the performance of these algorithms.

Students learn how the choice of a data structure affects the performance and usability of applications, e.g., in web browsing and searching, computer databases, data analysis, text processing, etc. Specific topics include lists, stacks, queues, sets, maps, priority queues, trees, and graphs, together with general algorithmic techniques, such as sorting, searching, and other transformations on data. Students who successfully complete the course can use these tools to design and develop efficient programs for a wide variety of applications.

Logistics

Audience

Normally available

Related courses

For official details, see the UW calendar.

Software/hardware used

Typical reference(s)

Required preparation

At the start of the course, students should be able to

Note: The course uses Python for its programming examples and assignments. The necessary syntax and idiom will be presented at the start of the course as a review for those who know Python and an explanation for those who don't. Experience in other common imperative languages, such as C or Java, will suffice.

Learning objectives

At the end of the course, students should be able to

Typical syllabus

Basic concepts (12 hours)

Note: Each student should find some parts of this material as new and some as review depending on their background.

Sorting algorithms (3 hours)

Stacks, queues, and priority queues (4 hours)

Map (or Dictionary) ADT (9 hours)

Graphs (5 hours)

Minimum spanning trees as a case study of algorithms and data structures (3 hours)