CS 201 - Spring 2019

Data Structures

Announcements

Final projects

Office hours during exam week: Mon 10:30-noon, 2-4pm; Tue 11am-1pm; Wed 2-4pm; Thu 1-3pm

Final Exam: Thu 5/16 7-10pm or Fri 5/17 9am-noon, MBH 104 (you may attend either slot)
The exam is 3 hours, open book / notes. You may not use a computer or access material online during the exam.

Homework and Exams

  1. Homework 0, due Wednesday 2/13.
  2. Homework 1, due Wednesday 2/20. Solutions.
  3. Homework 2, due Wednesday 2/27. Solutions.
  4. Homework 3, due Wednesday 3/6. Solutions.
  5. Homework 4, due Wednesday 3/13. Solutions.
  6. Homework 5, due Friday 3/22. Solutions.
  7. Homework 5.5 (optional), due Wednesday 4/3. Solutions.
  8. Homework 6, due Wednesday 4/10. Solutions.
  9. Homework 7, due Wednesday 4/17. Solutions.
  10. Homework 8, due Wednesday 4/24. Solutions.
  11. Exam 2, due Wednesday 5/1. Solutions.
  12. Final project, due Monday 5/13.

Lectures and Readings

  1. 2/11 - Course info, overview    (Ch 0, App B.1)
  2. 2/13 - Intro to Java, examples    (App B.2.1, B.4, B.5, TIJ 304, Java language basics)
    2/15 - [Winter Carnival]
  3. 2/18 - More Java, examples    (App B.2.2, B.3.3, printf, arrays)
  4. 2/20 - Object-oriented progamming, examples    (Ch 1, objects and classes, Steve Jobs on OOP)
  5. 2/22 - More OO, Buggles, algorithmic complexity, recurrence relations    (Ch 1, Ch 5.1, Handout on recurrence equations)
  6. 2/25 - Interfaces, Vectors, ReadWords.java    (Ch 1.8, 3-3.3)
  7. 2/27 - Vector implementation    (Ch 3.4-5, code developed in class)
  8. 3/1   - Sorting: bubble, selection, insertion sort, Obama on sorting (2008)    (Ch 6.1-3, code developed in class)
  9. 3/4   - Merge sort, quick sort, SortArrays.java, complexity of sorting, xSortLab    (Ch 6.4-5)
  10. 3/6   - Sorting objects, generics, HW 4 code, examples    (Ch 4, Ch 6.7-10)
  11. 3/8   - Spaghetti, counting, bucket, and radix sort; sorting summary    (Ch 6.6, 6.10, JSTOR)
  12. 3/11 - Lists, IntLists, IntListOps
  13. 3/13 - More IntListOps, HW 5
  14. 3/15 - List Interface, SinglyLinkedList, exam info    (Ch 9-9.4)
  15. 3/18 - CircularList, DoublyLinkedList, complexity of list ops, exam review (Ch 9.6, 9.5)
    3/19 - Exam 1, MBH 216, 7-9pm, Study Guide
  16. 3/20 - Stacks, stack applications, postfix notation / RPN    (Ch 10.1, Wikipedia, xkcd)
  17. 3/22 - Queues, depth-first vs. breadth-first search, MazeRunner.java    (Ch 10.2, 10.3)
    3/25 - [Spring Break]
  18. 4/1   - Iterators (example) Comparable objects, Ordered structures    (Ch 8, 11)
  19. 4/3   - Trees, IntTrees, IntTreeOps (Ch 12.1)
  20. 4/5   - IntTreeOps, tree traversals    (Ch 12.1, 12.6)
  21. 4/8   - Priority queues, heaps, complete heaps, heap applet    (Ch 13.1, 13.4.1)
  22. 4/10 - Skew heaps, HW 7 heap applet    (Ch 13.4.1, 13.4.3)
    4/12 - [Spring Symposium]
  23. 4/15 - Applets, examples, HW 7 heap applet source
  24. 4/17 - Binary Search trees, Bst.java, BST applet    (Ch 14)
  25. 4/19 - Balanced trees: tree rotations, AVL trees, 2-3 trees, tree applets    (Ch 14.5, Wikipedia)
  26. 4/22 - 2-3-4 trees, red-black trees, tree applets, maps, hashtables    (Ch 14.7, 15.2, 15.4, Wikipedia)
  27. 4/24 - Exam 2 info, Quadtrees, hashtables cont'd
  28. 4/26 - Hashtable implementations    (Ch 15.4)
  29. 4/29 - Graphs, graph representations    (Ch 16.1-3, graph examples)
  30. 5/1   - Final project, graph implementation    (Ch 16.3)
  31. 5/3   - Mouse and key events, double-buffering, MouseTest, BoxGame, KeyTest, Click
  32. 5/6   - Animation, Threads, TwoThreads, SimpleThread, Anim, Squash, Squash2, AnimDemo, BoxTimer
  33. 5/8   - Final project presentations #1; Graph algorithms    (Ch 16.4)
  34. 5/10 - Final project presentations #2
  35. 5/13 - Course summary, final exam review, Study Guide

    Thu 5/16, 7-10pm or Fri 5/17, 9-noon - Final exam, MBH 104

Links