1. Underlying Data Storage Representations
    1. We've covered 2:
      1. Array
      2. Linked List (using the Node ADT)
    2. You should be able to
      1. Draw a diagram of the representation
      2. Identify the representation based on
        1. Java implementation features
        2. Abstract Data Type (ADT) features
        3. Java classes (that we've covered) that use it.
        4. A diagram of an object using the representation.
      3. Describe the basic implementation details of other data structures using either Data Storage Representation
        1. List
        2. Queue
        3. Stack
      4. Describe the time complexity differences of each method call to a List, Queue, or Stack given either Data Storage Representation.
  2. Java API Classes
    1. We've covered the following in detail
      1. ArrayList
      2. LinkedList
      3. Stack
    2. You should be able to
      1. Write correct code to use any one of these classes
        1. to store a number of items of any one type of data (using generics)
        2. to access data from any of these classes
        3. as a parameter and/or return value of a method
      2. Draw a representation of data put into any of these Classes resulting from a Java code snippet.
      3. Use an iterator from an instance of the class
      4. Use an extended for loop on an instance of the class
  3. Java API Interfaces
    1. We've covered the following in detail
      1. Collection
      2. List
      3. Queue
    2. You should be able to
      1. identify which methods are available for each interface
      2. distinguish what is different about the interfaces
      3. understand the relationship between the interfaces
      4. understand which java api classes implement each of these interfaces
  4. In class implementations
    1. We've covered the following in detail
      1. ArrayListFixed.java
      2. ArrayListFixed2.java
      3. ArrayListFlexible.java
      4. LinkedList.java
      5. Node.java
    2. You should be able to
      1. implement add, get, and contains methods for any of the lists.
      2. Use the Node class as a field in a class representing a Linked Data Structure.
  5. Stack Applications
    1. palindrome
    2. parentheses
    3. postfix notation
  6. Recursion
    1. Write a recursive function from a recursively defined math formula
    2. Write a math formula for a recursive function
    3. identify a base case
    4. identify the recursive call

Last modified: Wed Oct 28 00:16:48 EDT 2015