Compare commits

..

2 Commits

Author SHA1 Message Date
6bae66461d updating with latest task lists. 2017-07-16 03:44:20 -07:00
561d6cda41 updating with study guides and video links. 2017-07-09 22:10:53 -07:00

View File

@@ -10,8 +10,9 @@ Table of Contents:
* [Dictionaries and Maps and Hash Tables](#dict)
* [Sets, Skip Lists](#sets)
* [Search Trees](#searchtrees)
* [Graphs](#graphs)
* [Advanced Data Structures (Skiena)](#adv)
* [Graphs](#graphs)
* [Study Guides](#studyguides)
* [Data Structures and Libraries](#lib)
* Guava
* Apache Commons
@@ -260,6 +261,8 @@ Table of Contents:
- 06/23
- Books:
- Goodrich Python/Java books covering priority queue theory/concepts
- Online videos:
- [Heaps and heap sort (MIT 6.006)](https://www.youtube.com/watch?v=B7hVxCmfPtM)
- Wiki notes:
- Binary search trees
- Heap sort
@@ -278,26 +281,26 @@ Table of Contents:
[ ] Dictionaries/Maps/Hash Tables
- 06/02 - 06/03 - Skiena advanced data structures
- 06/19 - 06/21 - Goodrich book
- 06/23 - 06/25 - Videos
- Books:
- Skiena Chapter 3
- Goodrich Chapter 10 - FIRST HALF
- Online Videos:
- MIT 6.006 Intro to Algorithms: Erik Demaine
- [Lecture 8: Hashing with chaining](https://www.youtube.com/watch?v=0M_kIqhwbFo)
- [Lecture 9: Table doubling](https://www.youtube.com/watch?v=BRO7mVIFt08)
- [Hashing with chaining (MIT 6.006)](https://www.youtube.com/watch?v=0M_kIqhwbFo)
- [Table doubling (MIT 6.006)](https://www.youtube.com/watch?v=BRO7mVIFt08)
- [Open addressing, crypto hashing (MIT 6.006)](https://www.youtube.com/watch?v=rvdJDijO2Ro&index=10&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [Randomization: universal hashing, perfect hashing (MIT 6.046)](https://www.youtube.com/watch?v=z0lJ2k0sl1g)
- Wiki notes:
- End of chapter questions:
- [https://charlesreid1.com/wiki/Hash_Functions](https://charlesreid1.com/wiki/Hash_Functions)
- [https://charlesreid1.com/wiki/Maps](https://charlesreid1.com/wiki/Maps)
- [https://charlesreid1.com/wiki/Maps_in_Java](https://charlesreid1.com/wiki/Maps_in_Java)
- Git code:
---
<a name="hash"></a>
## Hash Tables
[ ] Hash tables: (Detail topic?)
- [https://charlesreid1.com:3000/cs/java/src/master/hash](https://charlesreid1.com:3000/cs/java/src/master/hash)
- Map interface: [https://charlesreid1.com:3000/cs/java/src/master/hash/Map.java](https://charlesreid1.com:3000/cs/java/src/master/hash/Map.java)
- AbstractMap class: [https://charlesreid1.com:3000/cs/java/src/master/hash/AbstractMap.java](https://charlesreid1.com:3000/cs/java/src/master/hash/AbstractMap.java)
- Unsorted array map: [https://charlesreid1.com:3000/cs/java/src/master/hash/UnsortedArrayMap.java](https://charlesreid1.com:3000/cs/java/src/master/hash/UnsortedArrayMap.java)
- Exploring hash functions: [https://charlesreid1.com:3000/cs/java/src/master/hash/HashFunctions.java](https://charlesreid1.com:3000/cs/java/src/master/hash/HashFunctions.java)
- Exploring hashCode() function: [https://charlesreid1.com:3000/cs/java/src/master/hash/ObjectHashCode.java](https://charlesreid1.com:3000/cs/java/src/master/hash/ObjectHashCode.java)
---
@@ -309,6 +312,21 @@ Table of Contents:
[ ] Sets and Skip Lists
- 06/26 - 06/30
- Books:
- Goodrich Chapter 10 - SECOND HALF
- Online videos:
- [Randomization: skip lists (MIT 6.046)](https://www.youtube.com/watch?v=2g9OSRKJuzM)
- Other code:
- phishman data structures code
- Wiki notes:
- [https://charlesreid1.com/wiki/Skip_Lists](https://charlesreid1.com/wiki/Skip_Lists)
- [https://charlesreid1.com/wiki/Java/ConcurrentSkipList](https://charlesreid1.com/wiki/Java/ConcurrentSkipList)
- [https://charlesreid1.com/wiki/SkipList](https://charlesreid1.com/wiki/SkipList)
- TODO - need to finish the implementation notese at the last link
- Git code:
- SkipList class: [https://charlesreid1.com:3000/cs/java/src/master/hash/SkipList.java](https://charlesreid1.com:3000/cs/java/src/master/hash/SkipList.java)
- TODO - need to implement a timing class for SkipList
---
@@ -317,17 +335,27 @@ Table of Contents:
<a name="searchtrees"></a>
### Search Trees
[ ] Trees: binary search trees
[ ] Trees: search trees (binary, AVL, splay, 2-4, heap)
- 07/01 - 07/03
- Books:
- Goodrich Chapter 11
- Online Videos:
- [Binary search trees (MIT 6.006)](https://www.youtube.com/watch?v=9Jry5-82I68)
- [AVL trees (MIT 6.006)](https://www.youtube.com/watch?v=FNeL18KsWPc&index=6&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
- [B-Trees insertion and sort](https://www.youtube.com/watch?v=k5J9M5_IMzg)
- Wiki notes:
- Binary search trees [https://charlesreid1.com/wiki/Binary_Search_Trees](https://charlesreid1.com/wiki/Binary_Search_Trees)
- Binary search tree navigation [
- Binary search tree insertion and deletion
- OOP: Hooks, virtual method alternatives, positions vs nodes, key-value pairs
- AVL search tree
[ ] Trees: balanced search trees
[ ] Trees: red black trees
---
<a name="graphs"></a>
### Graphs
@@ -339,6 +367,36 @@ Table of Contents:
---
<a name="studyguides"></a>
### Study Guides
[ ] Data structures study guides
- Arrays study guide - finished 7/5
- [https://charlesreid1.com/wiki/Arrays_Study_Guide](https://charlesreid1.com/wiki/Arrays_Study_Guide)
- Lists study guide - finished 7/5
- [https://charlesreid1.com/wiki/Lists_Study_Guide](https://charlesreid1.com/wiki/Lists_Study_Guide)
- Stacks and queues study guide - finished 7/55
- [https://charlesreid1.com/wiki/Stacks_Queues_Study_Guide](https://charlesreid1.com/wiki/Stacks_Queues_Study_Guide)
- Priority queues/heaps study guide - finished 7/6
- [https://charlesreid1.com/wiki/Priority_Queues_Study_Guide](https://charlesreid1.com/wiki/Priority_Queues_Study_Guide)
- Hash tables study guide - finished 7/6
- [https://charlesreid1.com/wiki/Hash_Tables_Study_Guide](https://charlesreid1.com/wiki/Hash_Tables_Study_Guide)
- Trees study guide - finished 7/7
- [https://charlesreid1.com/wiki/Trees_Study_Guide](https://charlesreid1.com/wiki/Trees_Study_Guide)
- Maps and sets study guide - finished 7/9
- [https://charlesreid1.com/wiki/Maps_and_Sets_Study_Guide](https://charlesreid1.com/wiki/Maps_and_Sets_Study_Guide)
- Search trees study guide - finished 7/9
- [https://charlesreid1.com/wiki/Search_Trees_Study_Guide](https://charlesreid1.com/wiki/Search_Trees_Study_Guide)
[ ] Data structures flashcards
---
@@ -355,7 +413,6 @@ Table of Contents:
- [https://charlesreid1.com/wiki/Priority_Queues](https://charlesreid1.com/wiki/Priority_Queues)
- End of chapter questions:
- Skiena chapter 3 question solutions on wiki
Git code:
(This ended up being quite a jump in a different direction.
Much more practical focus on algorithms, only the most useful data structures,
@@ -390,6 +447,7 @@ Some libraries that provide data structures in Java.
[X] Algorithm complexity and big-oh notation
- 05/26, 05/27
- Revisiting 7/15
- Books:
- Goodrich et al: Data Structures and Algorithms in Python
- Skiena: Algorithm Design Manual
@@ -435,21 +493,60 @@ Some libraries that provide data structures in Java.
[ ] Algorithms: Backtracking
<a name="search"></a>
### Search
[ ] Sequential search
[ ] Binary search
- 07/16
- Books:
- Skiena Chapter 4
- Useful variations on binary search
- Basic principle of search: sorting is easy and is something algorithm designers should always try
- Binary search is possible once you have a sorted array
- End of chapter questions:
- Skiena chapter 4 question solutions on wiki
<a name="sort"></a>
### Sort
[ ] Sort Algorithms
[ ] Algorithms: Selection sort
- 07/13-07/15 - Skiena
- Books:
- Skiena Chapter 4
- Merge sort, selection sort, heap sort, insertion sort, and quick sort covered
- Focus is on utility of sorting for enabling algorithm design
- Wiki notes:
- [https://charlesreid1.com/wiki/Algorithms/Sort](https://charlesreid1.com/wiki/Algorithms/Sort)
- [https://charlesreid1.com/wiki/Algorithmic_Analysis_of_Sort_Functions](https://charlesreid1.com/wiki/Algorithmic_Analysis_of_Sort_Functions)
Fast:
[ ] Algorithms: Merge sort
[ ] Algorithms: Quick sort
[ ] Algorithms: Heap sort
[ ] Algorithms: Quick sort
Slower:
[ ] Algorithms: Selection sort
[ ] Algorithms: Insertion sort
### Divide and Conquer
[ ] Divide and Conquer algorithm approach
- Several MIT lectures from 07/01-07/15
- 07/13-07/15 - Skiena
- Books:
- Skiena Chapter 4
- Divide and conquer algorithms
- Master theorem
- (Light on explanation of the Master Theorem)
- Wiki notes:
- [https://charlesreid1.com/wiki/Divide_and_Conquer](https://charlesreid1.com/wiki/Divide_and_Conquer)
- [https://charlesreid1.com/wiki/Divide_and_Conquer/Master_Theorem](https://charlesreid1.com/wiki/Divide_and_Conquer/Master_Theorem)
<a name="strings"></a>
### Strings
@@ -576,27 +673,31 @@ Notes:
- Part 2 - Solution
- Part 3 - Code
- blog post: [http://charlesreid1.github.io/cse-143-final-project-hilbert-sort-1-the-problem.html](http://charlesreid1.github.io/cse-143-final-project-hilbert-sort-1-the-problem.html)
- git code:
- git code: [https://charlesreid1.com:3000/cs/finalproject-143/src/master/hilbert/HilbertSort.java](https://charlesreid1.com:3000/cs/finalproject-143/src/master/hilbert/HilbertSort.java)
[ ] Project Euler Blogging
* Even Fibonacci numbers - performance, comparisons of methods to get Fib numbers, some maths
- 07/14 - continued fractions
- Even Fibonacci numbers - performance, comparisons of methods to get Fib numbers, some maths
- Continued fractions
- Published 07/14
- blog post: part 1: newton's method [http://charlesreid1.github.io/computing-square-roots-part-1-using-newtons-method.html](http://charlesreid1.github.io/computing-square-roots-part-1-using-newtons-method.html)
- blog post: part 2: continued fractions: [http://charlesreid1.github.io/computing-square-roots-part-2-using-continued-fractions.html](http://charlesreid1.github.io/computing-square-roots-part-2-using-continued-fractions.html)
Timing and performance:
* Results of big-O computations and verifications
- Results of big-O computations and verifications
OOP:
* Data structures, checklists, and cheat sheets
- Data structures, checklists, and cheat sheets
Other ideas:
* Mind maps of concepts and relations, plus links and code
* Helpful YouTube videos and projects they lead to
* Particularly insightful mathematical questions,
* Post-chapter questions and answers
- Mind maps of concepts and relations, plus links and code
- Helpful YouTube videos and projects they lead to
- Particularly insightful mathematical questions,
- Post-chapter questions and answers
@@ -611,6 +712,10 @@ Notes:
[ ] Project Euler
- 06/14 - 06/17
- 06/23 - Decathlete (first 10 solved)
- 07/01-07/02 - up to 15, 51, 100, 500
- 07/04 - 16, 17, 52, 53, 100
- 07/08 - 501 (sink)
- 07/10-07/13 - 500 thru 502 (more sinks)
- Wiki notes:
- [https://charlesreid1.com/wiki/Project_Euler](https://charlesreid1.com/wiki/Project_Euler)
- Git code: