CS 231: Data Structures and Algorithms

Weekly Lab Exercises

Main course Moodle page

The lab exercises will be posted here weekly. The usual deadline is Tuesday night at midnight (note that there are some exceptions). The work in lab will lead into and be part of the week's project. Labs will also count significantly towards participation.

Lab Instructor Information

Prof. Stephanie R. Taylor
Office: Davis 114
Email: s r taylor _at_ colby _dot_ edu

Office hours: T 10:30-12:00 and 4-5, R 2:30-4, F 1-3
M 4-5 is a bonus, non-guaranteed, office hour offered many weeks
By appointment (email me), and whenever my door is open


Learning Goals

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
  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 appropriate 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.

Lab Exercise 1: Java API
Project Due 11:59 pm, Monday, 15 September 2014
Lab Exercise 2: 2D Arrays
Project Due 11:59 pm, Monday, 22 September 2014
Lab Exercise 3: Linked Lists
Project Due 11:59 pm, Monday, 29 September 2014
Lab Exercise 4: Abstract Classes
Project Due 11:59 pm, Monday, 6 October 2014
Lab Exercise 5: Doubly-Linked Lists
Project Due 11:59 pm, Monday, 20 October 2014
Lab Exercise 6: Queues
Project Due 11:59 pm, Monday, 27 October 2014
Lab Exercise 7: Priority Queues
Project Part I should be done by Monday, 3 November 2014
Project Part II Due 11:59 pm, Monday, 10 November 2014
Lab Exercise 8: User Interaction
Project Due 11:59 pm, Wednesday, 19 November 2014
Lab Exercise 9: Graphs
Project Due 11:59 pm, Friday, 5 December 2014