CS 231: Data Structures and Algorithms

Title image Fall 2016

Course Information for Fall 2016

Time: MWF 8am, 9am, 10am
Place:Lovejoy 205

Instructor Information

Prof. Bruce A. Maxwell
Office: Davis 112
Phone: 859-5854

Office hours: Knock
M 10pm-late, R 7:30pm-late
Any time my door is open

Course Description

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.

Course Goals

  1. Students understand the advantages and disadvantages of fundamental data structures and can implement them using object-oriented design principles.
  2. Students understand, can implement, and can calculate the time and space efficiency of classic search, sort, and traversal algorithms, including the use of big-Oh notation.
  3. Students understand the tradeoffs between different implementation of data structures and algorithms and can make appro- priate design decisions based on application data requirements.
  4. Students can use fundamental data structures and algorithms appropriately to solve a variety of computational problems.
  5. Students can communicate the result of their work and describe an algorithm.

Class links


Textbooks

You may choose from any number of Data Structures with Java textbooks that are available, however, we do not require any specific text. There are also lots of on-line resources available, as listed below.

Online Resources

Algorithm Visualization:

Links to web sites comparing Python to Java:
Links to free online data structures textbooks:
Links to Java online documentation, tutorial, and sample code: Note: The Java tutorial and the JDK API documentation (the first two links below) can be downloaded to your computer so that you don't need web access to view them. They also load a little faster if you use a local copy.
Links to free online Java help:
Links to free Java development environments: