CS 201 - Midterm 1 Study Guide

To prepare for Midterm 1, you should review the following topics:
  1. Java, OO programming:
    Review code examples, understand concepts: class, object, instance variable, constructor, instance method, static method, interface, variable, parameter, return type

  2. Writing new classes:
    Review HW 2 problems 4-5; HW 3; HW 4, problem 2, and solutions

  3. Algorithmic complexity, Big-O notation, recurrence relations:
    Review concepts, deriving recurrence relations from recursive code; do HW 2 problems 1-3 again, compare w/ solutions

  4. Vectors:
    Review implementation, know complexity of operations

  5. Sorting (bubble, selection, insertion, merge, quick, bucket, radix):
    Be able to describe sorting algorithms in your own words, know average-case and worst-case run times;
    For first 5 algs, understand visual ordering of data during sorting (see "Visual Sort" of xSortLab; see also these Sorting Algorithm Animations)

  6. Generic types, comparators:
    Review HW 4 code, lecture 11 examples, HW 4 solutions

  7. SinglyLinkedList, CircularList, DoublyLinkedList:
    Review implementation, know complexity of operations

  8. IntLists:
    Understand IntListOps.java, do HW 5 problem 1 (sorry, no solutions!), understand recursion

  9. Optional: review the sorting algorithms as folk dances, e.g., Quick Sort or Insertion Sort

  10. Optional: review these Ineffective Sorts