Study of the basic data structures and their implementations: Arrays, matrices, stacks, queues, hash tables, trees, lists, and graphs. Programming techniques using recursion. Various searching and sorting methods such as insertion sort, merge sort, and quick sort. Basic analysis of algorithms.
To get accustomed to and be able to use common algorithms used in programming. External memory algorithms and data structures for sorting and searching, advanced algorithms for graphs.
| Week | Topic |
|---|---|
| 1 | Intro. to Course and Asymptotic Notations |
| 2 | Abstract data types, Recursion |
| 3 | Linked Lists |
| 4 | Stacks and Queues |
| 5 | Stacks and Queues |
| 6 | Trees, Binary Trees, Perfect and Complete binary trees |
| 7 | Binary Search Trees and AVL trees |
| 8 | MIDTERM EXAM |
| 9 | Tree Traversals, Red Black Trees |
| 10 | Sorting: Merge Sort, Heap Sort |
| 11 | Sorting: Quick Sort, Bucket Sort |
| 12 | Mapping, Hashing |
| 13 | Graph Data Structure |
| 14 | Prim`s Algorithm, Kruskal`s Algorithm, Dijkstra Algorithm |
| Method | % Each | Quantity |
|---|---|---|
| Midterm Exam(s) | 35 | 1 |
| Project | 10 | 1 |
| Laboratory | 10 | 1 |
| Final Exam | 45 | 1 |
Data Structures and Algorithms in Java, 6th Edition, 2014