CSE 303X DATA STRUCTURE & ALGORITHMS CAMP Term B 2016

Course
Calendar
Homework
Projects
Practice More
Java 8 JDK
Eclipse Mars IDE
IntelliJ IDE
Monday
Tuesday
Wednesday
Thursday
Friday
8/1
Non-cyclic 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, Pre-order, In-order, Post-order
lecture notes
TreeNode.java
MyTreeExamples.java
NthMinFromBinaryTree.java
8/3
Pre-order, In-order, Post-order, 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.

TECHNOLOGY WE USE

Java is a professional object-oriented programming language used in high school AP® Computer Science that is the most relevant, in-demand programming languages in the job market today. Also, Java is a general-purpose computer programming language that is concurrent, class-based, object-oriented, 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.