CMPSCI 187: Programming with Data Structures

Marc Liberatore and John Ridgway
Spring 2015 (archived)

Assignments

  1. HamSpam — an introductory programming project, due 1/29/2015, 8:30 a.m.
    Project description (PDF)
    Starting point, an Eclipse project to start off with, wrapped up as a zip file.
  2. Tic-Tac-Toe — showing your competence in 121 topics, due 2/05/2015, 8:30 a.m.
    Project description (PDF)
    The Eclipse project, wrapped up as a zip file.
  3. Hangman — using arrays and linked lists to simulate a game; due 2/12/2015, 8:30 a.m.
    Project description (PDF)
    The Eclipse project, wrapped up as a zip file.
    Minor update on 2015-02-06 16:57 to clarify JUnit test output.
    Minor update on 2015-02-08 14:00 to clarify comments in GameModel.java.
  4. Sets — using linked lists to implement generic, immutable sets; due 2/24/2015, 8:30 a.m.
    Project description (PDF)
    The Eclipse project, wrapped up as a zip file.
    An additional set of tests that the original set missed. This is a Java file, so right-click on it and choose to save it. Put it right in your project folder in test/sets/.
  5. Balanced Brackets — building a stack with a dynamic array, and using it to check for balanced brackets; due 3/05/2015, 8:30 a.m. (Note: concurrent with the next assignment!)
    Project description (PDF)
    The Eclipse project, wrapped up as a zip file.
  6. Postfix Expression Evaluator — building a stack with a linked list, and using it to evaluate postfix integer arithmetic; due 3/05/2015, 8:30 a.m. (Note: concurrent with the previous assignment!)
    Project description (PDF)
    The Eclipse project, wrapped up as a zip file.
  7. Hanoi — recursion, list implementation, and the Tower of Hanoi; due 3/12/2015, 8:30 a.m.
    Project description (PDF)
    The Eclipse project, wrapped up as a zip file.
  8. Queues — Queues, file system traversal and Merge-Sort; due Friday 3/27/2015, 8:30 a.m.
    Project description (PDF)
    The Eclipse project, wrapped up as a zip file.
  9. Lists — Recursive implementation of a linked list; due Thursday 4/2/2015, 8:30 a.m.
    Project description (PDF)
    Minor update on 2015-03-28 05:00 to note the required Iterator's remove method can just throw an UnsupportedOperationException
    The Eclipse project, wrapped up as a zip file.
    This file had a minor error in the test class: It mistakenly referred to a class "List". A corrected version referencing only "RecursiveList" was posted early Friday morning.
  10. Binary Search and Scapegoat Trees — the classic tree, and a self-balancing variant; due Thursday 4/9/2015, 8:30 a.m.
    Project description (PDF)
    The Eclipse project, wrapped up as a zip file.
    Minor update to both on 2015-04-02 to move BSTNode to src/, and give advice about parent pointers in the assignment description.
  11. Heaps and Priority Queues — WITH TESTING; due Thursday 4/16/2015, 8:30 a.m.
    Project description (PDF) — updated 2015-04-12 to remove some inconsistencies between the document and the distributed project. The project zip file has not changed.
    The Eclipse project, wrapped up as a zip file.
  12. Search — finding paths to goals; due Thursday 4/23/2015, 8:30 a.m.
    Project description (PDF)
    The Eclipse project, wrapped up as a zip file.
  13. Sorting Kata — practice implementing sort algorithms; due Thursday 4/30/2015, 8:30 a.m.
    Project description (PDF)
    The Eclipse project, wrapped up as a zip file.
  14. URL Table — hashing and hash tables; due never!
    Project description (PDF)
    The Eclipse project, wrapped up as a zip file.