
Key Links
Course Description
This course focuses on the common structures used to store data and the standard algorithms for manipulating
them. Standard data structures include lists, stacks, queues, trees, heaps, hash tables, and graphs. Standard
algorithms include searching, sorting, and traversals. Along with implementation details, students will learn to
analyze the time and space efficiency of algorithms and how to select appropriate data structures and algorithms
for a specific application. In homework, labs, and programming projects, students will implement their own data
structures and make use of existing libraries to solve a variety of computational problems.
Desired Course Outcomes
The learning goals for the lecture and lab are the same -- both are meant to work together to accomplish the goals
for the course as a whole. They are:
- Students understand the advantages and disadvantages of fundamental data structures and can implement them
using object-oriented design principles.
- Students understand, can implement, and can calculate the time and space efficiency of classic search, sort,
and traversal algorithms, including the use of big-O notation.
- Students understand the tradeoffs between different implementations of data structures and algorithms and can
make appropriate design decisions based on application data requirements.
- Students can use fundamental data structures and algorithms appropriately to solve a variety of computational
problems.
- Students can communicate the results of their work and describe an algorithm.