Class repo for CSCI-UA 201 011, Spring 2024. I will update this page with updates of what we covered in class as well as notes.
Syllabus. Java review -- object oriented programming, inheritance.
Reading: Chapter 2.1, 2.2, 2.6.
Finish Java review -- casting, dynamic binding, abstract classes and interfaces. List ADT and started ArrayList implementation.
Reading: Chapter 2.3, 2.5, Chapter 7.1.
Java Review.
In textbook: code fragments 2.2, 2.3, 2.4. Qs 2.10, 11, 12, 13, 17, 21, 24, 25, 26, 29
Finish ArrayList implementation. Limitations of ArrayList. Start LinkedList.
Reading: First part of Chapter 7.2, Chapter 3.2.
Single and Doubly LinkedLists.
Reading: Chapter 3.2, 3.4.
LinkedList practice.
In textbook: code fragments 3.19. Qs 3.5, 6, 9, 12, 17, 18, 25, 26, 27, 28
Worst case complexity algorithmic analysis. Search algorithms. Started Stacks and Queues.
Reading: Chapter 4.1-4.3, 5.1.3
Examples of stack applications. Started recursion.
Reading: Chapter 6 up to and including 6.2.3, but not including 6.2.2. Chapter 5.1, 5.2
Algorithmic analysis, stacks, recursion.
In textbook: Uniqness problem, Qs 4.2, 3, 6, 8-19, 22-24, 29-32, 45, 54, 56; 6.1, 3-5, 7, 9, 17, 19, 21, 23, 24; and 5.1, 2, 7, 8, 11, 15-22, 24
Recursion, Trees definition, implementation, calculating height and depth,
Reading: Chapter 5, 8.1, 8.3
Searching, positions(), and intro to Binary trees.
Reading: Chapter 8.2 - 8.4
More on recursion, and tree methods.
In textbook: Qs from chapter 5 last week and (Ignore questions about traversals) 8.1, 2, 4, 5, 11, 12, 13, 18, 19, 20, 22, 23, 27, 28 (hint: use an auxiliary variable in a recursive method), 32, 37, 42, 45, 55, 58.
Arithmatic trees, Traversals, Map ADT
Reading: Chapter 8.2, 8.4, 10.1
Traversals and more on tree methods.
In textbook: All Qs from chapter 8 last week.
Map ADT, Unsorted list implementation, Hash functions, compression functions
Reading: Chapter 10.1, 10.2
Collision resolutions, start Binary search trees
Reading: 10.2, 11.1
Maps and hash maps.
In textbook: Qs 10.1, 3, 6, 7, 10, 11, 33, 41, 61.
Getting, adding and removing from BSTs. Balanced trees.
Reading: 11.1, 11.2
Adding and removing from AVL trees
Reading: 11.3.
Review for midterm
In textbook: Qs 11.1, 2, 3, 4, 5, 8, 9, 29, 33
Removing from AVL trees. Adding to (a, b) trees.
Reading: 11.5, 15.2, 15.3
Bit on AVL trees and (a, b) trees. Midterm recap
In textbook: 11.17, 19, 21, 22a, 47
Midterm review -- recursion with auxillary history variables. (a, b) tree recap.
Reading: 11.5, 15.2, 15.3
Recursion with auxillary varibles in trees. Removing from (a, b) trees. Bit on Splay trees.
Reading: 11.5, 15.2, 15.3
Recursion with auxillary varibles in trees. (Questions in Review 16)
Quadratic sorts, recap of PriorityQueues.
Reading: 9.1, 9.2, 9.4.1, bubble sort, bogo sort
O(nlog n) efficiecy proof. Mergesort.
Reading: 12.1, 12.3.1
Sorting
In textbook: 12.6, 7, 26 -- do these questions for all the sorting algorithms we have covered
Heaps and heapsort.
Reading: 9.3.1-3, 9.4.2
Quicksort, bucketsort, and comparison of sorting algorithms.
Reading: 12.2, 12.3.2, 12.4
Heap and Quick sort.
In Textbook: 9.3, 4, 10, 11, 12, 16, 17, 19, 20, 21, 23, 30, 34; 12.9, 10, 18, 20-23, 26, 35-37, 39, 42, 43, 46, 47
Graph ADT and implementations.
Reading: 14.1, 2
Graph implementations continued. Start searching in graphs.
Reading: 14.3
Graph implementations.
In Textbook: 14.1-11, 13, 38
Depth and breadth first search and variants.
Reading: 14.3
Dijkstra's algorithm ad adaptive priority queues
Reading: 14.6
Searching and other graph algorithms.
In Textbook: 14.14-17, 23, 24, 44, 51-56, 60, 63, 71
Implicits graph search, recursive backtracking, directed acyclic graphs.
Reading: 14.5
Finish directed acyclic graphs, implcit graph search, brief overview of minimum spanning trees.
Course review
Text compression and search