4325 Instructional Unit Algorithm Design Techniques -divide-and-conquer The students will be -Decide whether an algorithm -classroom discussion -backtracking able to classify uses divide-and-conquer, -worksheets -greedy algorithms into the backtracking, greedy methods, -homework -dynamic programming categories listed. dynamic programming, or none -quizzes of these. -tests -divide-and-conquer The students will be -Design divide-and-conquer, -classroom discussion 2.4.11E, -backtracking able to create backtracking, greedy, and -worksheets 2.5.11A, -greedy algorithms using the dynamic programming -homework 3.2.12D -dynamic programming listed design algorithms. -quizzes techniques to solve -tests new problems. Thursday, September 01, 2005 Page 1 of 16
AP Marine Biology Simulation Case Study -interaction of multiple classes and The students will be -Modify or add to the AP Marine -classroom discussion 3.1.12A, interfaces able to make Biology Simulation program -worksheets 3.1.12B -reading and modifying an existing appropriate code as appropriate in given -homework Java program modifications and situations. -programming additions to data assignments structures and -quizzes algorithms in a large -tests program. Thursday, September 01, 2005 Page 2 of 16
Graph Theory -directed graph The students will be -Show the results of various -classroom discussion -undirected graph able to illustrate typical algorithms on sample directed, -worksheets -weighted graph graph theory undirected, and weighted -homework -depth-first search algorithms. graphs. -quizzes -breadth-first search -tests -topological sort -minimum spanning tree -shortest path problem -directed graph The students will be -Design algorithms that are -classroom discussion 2.5.11A, -undirected graph able to solve problems based on previously learned -worksheets 2.5.11C, -weighted graph involving graphs by algorithms to solve problems -homework 3.2.12D -depth-first search applying typical and involving graphs. -quizzes -breadth-first search newly-created -Design algorithms that include -tests -topological sort algorithms. newly created techniques to -minimum spanning tree solve problems involving -shortest path problem graphs. Thursday, September 01, 2005 Page 3 of 16
Hash Table Implementation of the Dictionary ADT -hash table The students will be -Implement a hash table using -classroom discussion 2.5.11A, -hash function able to compare the chaining. -worksheets 3.2.12D -chaining relative benefits and -Implement a hash table using -homework -linear probing drawbacks of linear probing. -quizzes -quadratic probing implementing a -Implement a hash table using -tests -double hashing Dictionary as a hash quadratic probing. -searching, inserting, deleting in a table. -Implement a hash table using hash table double harshing. -primary clustering -Implement a hash table using -secondary clustering rehashing. -load factor -rehashing -Discuss the time and space requirements of the different implementations compared to each other and compared to tree implementations of Dictionary. Thursday, September 01, 2005 Page 4 of 16
Intractability and What to Do About It -P vs. NP The students will be -Discuss, using appropriate -classroom discussion 2.8.11S, -NP-hard able to communicate vocabulary, issues surrounding -worksheets 2.8.11T, -NP-complete using the basic intractable problems and -homework 2.11.11C -approximation algorithms vocabulary associated algorithms that attempt to find -quizzes -probabilistic algorithms with intractable reasonable solutions for them. -tests -heuristics problems. Thursday, September 01, 2005 Page 5 of 16
Java's Set and Map Interfaces -Set interface The students will be -Write Java programs using the -classroom discussion -Map interface able to write programs TreeSet, HashSet, TreeMap, -worksheets -TreeSet class using Java's tree and and HashMap classes -homework -HashSet class hash table individually. -programming -TreeMap class implementations of the -Write Java programs that use assignments -HashMap class Set and Map combinations of these classes. -quizzes interfaces. -tests -Set interface The students will be -Discuss the differences -classroom discussion 2.5.11A -Map interface able to choose the between a set and a map. -worksheets -TreeSet class appropriate class for a -Discuss the running time -homework -HashSet class given situation. differences between Java's -quizzes -TreeMap class tree and hash table -tests -HashMap class implementations of set and map. -Discuss the ordering implications of Java's tree and hash table implementations of set and map. Thursday, September 01, 2005 Page 6 of 16
Mathematical Measures of Efficiency -space efficiency The students will be -Categorize mathematical -classroom discussion 2.1.11A, -time efficiency able to categorize functions using informal rules -worksheets 2.2.11B, -asymptotic notations--big-o, algorithms of the asymptotic notations. -homework 2.2.11C, big-omega, big-theta, little-o appropriately based on -Prove given categorizations of -quizzes 2.2.11D, -worst-case, average-case, and their running time and functions using the formal -tests 2.3.11A, amortized running times space efficiency. definitions of the asympotic 2.3.11C, notations. 2.4.11A, -Evaluate the running time of 2.5.11A, code fragments using the rules 2.5.11B, of the Random Access Machine mathematical model. 2.8.11C, 2.8.11Q, 2.8.11S, 2.11.11C, 3.1.12B -space efficiency The students will be -Compare data structures and -classroom discussion 2.5.11D, -time efficiency able to choose algorithms based on their -worksheets 2.11.11C, -asymptotic notations--big-o, appropriate data running times, including -homework 3.2.12D big-omega, big-theta, little-o structures and worst-case, average-case, -quizzes -worst-case, average-case, and algorithms based on and amortized. -tests amortized running times their time and space -Compare data structures and efficiency. algorithms based on their space requirements. -Compare data structures and algorithms based on their ease of implementation. Thursday, September 01, 2005 Page 7 of 16
Object-Oriented Programming -abstraction The students will be -Identify class and interface -classroom discussion 3.1.12A, -encapsulation able to read and write hierarchies in existing code. -worksheets 3.2.12D -inheritance computer programs -Identify is-a and has-a -homework -polymorphism that solve complex relationships in existing code. -programming -classes problems using -Decompose complex problems assignments -interfaces object-oriented design appropriately into objects, -quizzes -is-a relationships techniques. identifying is-a and has-a -tests -has-a relationships relationships and determining appropriate operations for and interactions between the objects. -Implement an object-oriented design in Java by writing code for abstract and concrete classes and interfaces, including appropriate abstraction, inheritance, and polymorphism. Thursday, September 01, 2005 Page 8 of 16
Recursion -recursion for divide-and-conquer The students will be -Determine an appropriate base -classroom discussion 2.5.11C, able to design and case for a divide-and-conquer -worksheets 2.8.11C, -recursion for inductive implement recursive solution. -homework 2.8.11C, mathematical definitions algorithms to solve -Determine an appropriate -programming 2.11.11C, -advantages and disadvantages of problems. division of a problem into assignments 3.2.12D recursion subproblems. -quizzes -running time analysis of recursive -Determine how an algorithm -tests should combine solutions to subproblems to produce a final result. -Identify the advantages and disadvantages of recursive solutions. -Calculate the running time of a recursive algorithm. Thursday, September 01, 2005 Page 9 of 16
Sorting and Searching -linear search The students will be -Illustrate each of the -classroom discussion 2.4.11E -binary search able to implement each algorithms using sample input -worksheets -selection sort of the listed sorting and data. -homework -insertion sort searching algorithms -Translate an English -programming -bubble sort in Java. description of an algorithm into assignments -mergesort pseudocode. -quizzes -quicksort -Implement pseudocode using -tests -bucket sort Java. -radix sort -Write a complete Java program -stable vs. unstable sorts to verify correctness of algorithm implementation. -linear search The students will be -Evaluate the worst-case and -classroom discussion 2.5.11A, -binary search able to choose average-case efficiency of -worksheets 3.2.12D -selection sort appropriate sorting or sorting and searching -homework -insertion sort searching algorithms algorithms. -quizzes -bubble sort for given situations. -Determine the appropriateness -tests -mergesort of a sorting or searching -quicksort algorithm based on the -bucket sort organization and size of the -radix sort input. -stable vs. unstable sorts Thursday, September 01, 2005 Page 10 of 16
The List, Stack, and Queue ADTs -List interface The students will be -Write Java code that includes -classroom discussion 2.8.11I -one- and two-dimensional array able to write efficient typical operations on one- and -worksheets -ArrayList class computer programs two-dimensional arrays. -homework -singly linked list that process data -Write Java code that includes -programming -doubly linked list using the List ADT. typical operations on assignments -circular linked list ArrayLists. -quizzes -ListNode class -Design and implement classes -tests -LinkedList class for singly, doubly, and circular -Iterator interface linked lists in Java. -ListIterator interface -Write Java code that uses the -Stack interface ListNode class provided in the -stack implementation using an Course array Description. -stack implementation using a -Write Java code that uses the linked list java.util.linkedlist class. -Queue interface -Write Java code that uses all -queue implementation using an the methods of the Iterator and array ListIterator interfaces. -queue implementation using a linked list -Choose the most appropriate implementation of List for a given situation based on the strengths and weaknesses of each implementation. Thursday, September 01, 2005 Page 11 of 16
The List, Stack, and Queue ADTs -List interface The students will be -Design and implement a class -classroom discussion 2.5.11A, -one- and two-dimensional array able to write efficient that implements the Stack -worksheets 3.2.12D -ArrayList class computer programs interface using an array. -homework -singly linked list that process data -Design and implement a class -programming -doubly linked list using the Stack ADT. that implements the Stack assignments -circular linked list interface using a singly linked -quizzes -ListNode class list. -tests -LinkedList class -Choose the more appropriate -Iterator interface implementation of Stack for a -ListIterator interface given situation. -Stack interface -stack implementation using an array -stack implementation using a linked list -Queue interface -queue implementation using an array -queue implementation using a linked list Thursday, September 01, 2005 Page 12 of 16
The List, Stack, and Queue ADTs -List interface The students will be -Design and implement a class -classroom discussion 2.5.11A, -one- and two-dimensional array able to write efficient that implements the Queue -worksheets 3.2.12D -ArrayList class computer programs interface using an array. -homework -singly linked list that process data -Design and implement a class -programming -doubly linked list using the Queue ADT. that implements the Queue assignments -circular linked list interface using a singly linked -quizzes -ListNode class list. -tests -LinkedList class -Choose the more appropriate -Iterator interface implementation of Queue for a -ListIterator interface given situation. -Stack interface -stack implementation using an array -stack implementation using a linked list -Queue interface -queue implementation using an array -queue implementation using a linked list Thursday, September 01, 2005 Page 13 of 16
The Priority Queue ADT and Heap -priority queue property The students will be -Perform insert operations on a -classroom discussion -priority queue operations able to perform the priority queue implemented as a -worksheets -heap implementation of priority priority queue tree. -homework queue operations on a sample -Perform deletemin operations -quizzes -PriorityQueue interface priority queue on a priority queue implemented -tests -heapsort implemented as a tree. as a tree. -Perform min operations on a priority queue implemented as a tree. -priority queue property The students will be -Represent a complete binary -classroom discussion -priority queue operations able to implement a tree as an array. -worksheets -heap implementation of priority priority queue as a -Write Java code for the three -homework queue heap in Java. priority queue operations -programming -PriorityQueue interface implemented as an array. assignments -heapsort -quizzes -tests -priority queue property The students will be -Write a complete Java program -classroom discussion 2.5.11A -priority queue operations able to implement that implements heapsort using -worksheets -heap implementation of priority heapsort in Java. only constant extra space. -homework queue -programming -PriorityQueue interface -heapsort assignments -quizzes -tests Thursday, September 01, 2005 Page 14 of 16
Tree Implementations of the Dictionary ADT -search, insert, and delete The students will be -Write a Java class to -classroom discussion operations able to implement the implement a binary search tree. -worksheets -binary search tree three primitive -homework -splay tree operations of the -Write a Java method for the -programming -2-3 tree Dictionary ADT in Java search operation. assignments using a binary search -Write a Java method for the -quizzes tree. insert operation. -tests -Write a Java method for the delete operation. -search, insert, and delete The students will be -Illustrate a splay tree rotation. -classroom discussion operations able to illustrate the -worksheets -binary search tree three primitive -Illustrate a splay operation. -homework -splay tree operations of the -Illustrate searching, insertion, -quizzes -2-3 tree Dictionary ADT as -tests implemented by a splay tree and a 2-3 tree. -search, insert, and delete The students will be -Discuss operation running -classroom discussion 2.5.11A, operations able to compare the times of the different -worksheets 3.2.12D -binary search tree relative benefits and implementations. -homework -splay tree drawbacks of -Discuss space requirements -quizzes -2-3 tree implementing a of the different -tests Dictionary as a binary implementations. search tree, a splay -Discuss ease of coding the tree, or a 2-3 tree, different implementations. choosing the most appropriate for a given situation. Thursday, September 01, 2005 Page 15 of 16
Trees -binary trees The students will be -Discuss questions relating to -classroom discussion 2.5.11C -ordered trees able to communicate node height and depth, leaves, -worksheets -tree traversal using the basic parents, children, siblings, -homework -TreeNode class vocabulary associated ancestors, descendents, full, -quizzes with binary and perfect, and complete binary -tests ordered trees. trees. -binary trees The students will be -Write pseudocode and English -classroom discussion 2.5.11A, -ordered trees able to design descriptions of algorithms -worksheets 3.2.12D -tree traversal algorithms to implement involving tree traversals. -homework -TreeNode class the four basic tree -quizzes traversals and use -tests these algorithms to solve problems. -binary trees The students will be -Write Java code that -classroom discussion 2.5.11A -ordered trees able to write computer implements the four basic tree -worksheets -tree traversal programs using binary traversals for binary trees. -homework -TreeNode class trees to store and -Write Java code that uses tree -programming process data. traversals to solve typical assignments problems, such as finding node -quizzes height or the number of leaves -tests in a subtree rooted at a given node. Thursday, September 01, 2005 Page 16 of 16