




8/1 Noncyclic LinkedList, Cyclic Linkedlist, Floyd's cycle detection algorithm, Stack, Queue lecture notes Node.java MyStack.java MyStackImpl.java MyQueue.java MyQueueImpl.java Node.java MyLinkedList.java Cyclic.java 
8/2 Tree Node, Binary Tree, Binary Search Tree, Preorder, Inorder, Postorder lecture notes TreeNode.java MyTreeExamples.java NthMinFromBinaryTree.java 
8/3 Preorder, Inorder, Postorder, Depth First Search, Breath First Search, LinkedList Review lecture notes TreeNode.java MyTreeExamples.java DFSAndBFS.java LevelLinking.java 
8/4 Heap, Min Heap, Max Heap, Heap Implementation lecture notes MyIntHeap.java MyIntMaxHeap.java MyIntMinHeap.java HeapTest.java 
8/5 No Class 
8/8 Priority queue, Generics, Static inner class, Comparator MyPriorityQueue.java Heap.java MyPriorityQueueTest.java 
8/9 TreeSet, TreeMap, Comparator, Comparable Node.java TreeSetExample.java 
8/10 HashSet, HashMap, Hash Code, Hashing Function Node.java HashSetExample.java 
8/11 Graph Thoery: Intro to Graphs, Graph BFS, Graph DFS Project: Tower of Hanoi (verify your solution with the game) Vertex.java Hanoi.java 
8/12 Heap and Priority Queue Review, Metrix(2D Array), BFS and DFS Variation and Application MatrixNthSmallest.java 
8/15 Junit Test, Expected Exception Test, Assert Equals, Constants (Test Data) MatrixNthSmallest.java TestData.java MatrixNthSmallestTest.java 
8/16 Graph Thoery: Dijkstra's algorithm lecture notes Edge.java Vertex.java Graph.java PathSearcher.java PathSearcherTest.java GraphTestData.java 
8/17 Graph Thoery: A* search algorithm, heuristic function, admissible heuristic f(n) = g(n) + h(n) 
8/18 Dynamic Programming: Fibonacci sequence, 0/1 Knapsack Problem I FibonacciSeq.java Knapsack.java 
8/19 Dynamic Programming: 0/1 Knapsack Problem II, Dragon & Canyon Problem More array lecture notes DragonAndCanyon.java Knapsack.java 
8/22 Dynamic Programming: Sequence Alignment SequenceAlginment.java 
8/23 Greedy Algorithm: Interval Scheduling (as many as possible), Interval Scheduling (as long as possible), Merge Time Interval 
8/24 Interval Chopping Algorithm: Max Value over Merged Time Intervals 
8/25 Model View Controller I 
8/26 Model View Controller II 
8/29 Sorting Algorithms: Radix Sort, Merge Sort 
8/30 Sorting Algorithms: Quick Sort Bit Manipulation 
8/31 Certificated Java Programming Level 3 Test (Optional) The certificate will be rewarded with at least 80% correctness of the test. Test and its solution will be released after test. 
Java is a professional objectoriented programming language used in high school AP® Computer Science that is the most relevant, indemand programming languages in the job market today. Also, Java is a generalpurpose computer programming language that is concurrent, classbased, objectoriented, and specifically designed to have as few implementation dependencies as possible. It is intended to let application developers "write once, run anywhere" (WORA), meaning that compiled Java code can run on all platforms that support Java without the need for recompilation.  
Eclipse is an open source community that benefits millions of developers around the world each and every day. Eclipse's Java IDE is widely used in universities and work environments. 