Course Description for CSC 162: The Art of Data Structures
Spring 2010
Modern programming revolves around the creation of abstractions
or, more specifically abstract data types (ADTs).
An ADT describes a collection of information in terms of the operations
that one can perform upon it, and how those operations behave.
A data structure is a concrete way of organizing the information
inside a computer.
An algorithm is a series of steps that the computer performs on
the data structure (or set of data structures) to accomplish a desired
operation.
In a nutshell, that’s what CSC 162 is about: abstract data
types, data structures, and algorithms.
Abstractions we’ll consider include
- lists, stacks, queues, and deques
- sets and dictionaries (mappings)
- priority queues
- trees and graphs
Data structures will include
- arrays
- linked lists
- hash tables
- balanced and unbalanced trees
- skip lists
- heaps
- adjacency lists and matrices
Algorithms will include
- searching and traversal
- sorting
- insertion and removal
- dynamic programming
- depth- and breadth-first search
- topological sort
- connected components
- shortest paths
To illustrate all of these, we’ll draw inspiration from such varied
application domains as graphics and games, biology, web design, and social
networking.