Spring 2009
At the time of the Midterm Exam, a student should be able to:
- Understand the meaning of asymptotic time complexity analysis. In
particular:
- Describe the value of big-oh notation.
- Describe the limitations of big-oh notation.
- Provide a definition for big-oh notation.
- Be able to analyze the time complexity of simple algorithms with loops
and conditionals.
- Be able to analyze the time complexity of simple recursive
methods.
- Be able to compare the time complexity of two alternate algorithms.
- Be able to analyze the time complexity of a program with multiple simple
method calls with known time complexity.
- Interpret and write Java code using the ArrayList and LinkedList classes.
- Understand the underlying organization of the following data structures:
array-based-list, double/singly-linked-list, stack, and queue. In
particular:
- Implement the basic methods of an array-based data structure.
- Implement the basic methods of a singly-linked-list data structure.
- Explain how the stack and queue data structures are typically implemented.
- Describe and explain the time complexity for inserting, finding, and
deleting items to/from the following data structures: ArrayList,
LinkedList, stack, and queue.
- Enumerate and explain the methods available in the pure stack and
pure queue interfaces.
- Define the term adaptor class and be able to implement a simple adaptor
class, e.g., stack, queue.
At the time of the Final Exam, a student should, in addition to the above,
be able to:
- Understand and apply recursion in algorithm development.
- Demonstrate the use of binary tree traversals.
- Define a collision as it relates to hash tables and describe ways of
coping with collisions.
- Interpret and develop simple hashing functions.
- Interpret and write Java code using the TreeMap, TreeSet, HashMap and HashSet classes.
- Understand the underlying organization of the following data structures:
binary trees, binary search trees, balanced binary search trees and hash
tables. In particular:
- Implement the basic methods of a binary search tree data structure
(add, contains).
- Implement the basic methods used for balancing a binary search tree
data structure (leftRotate, rightRotate).
- Explain how the TreeMap and TreeSet data structures are typically implemented.
- Describe and explain the time complexity for inserting, finding, and
deleting items to/from the following data structures: TreeMap,
TreeSet, HashMap, and HashSet.
|