Browse Source

updating todo list for software engineering.

master
Charles Reid 5 years ago
parent
commit
992e0c2b17
  1. 205
      TODOSoftwareEngineering.md

205
TODOSoftwareEngineering.md

@ -1,27 +1,8 @@
## TODO Software Engineering
# TODO List - Software Engineering
### TODO List
### Data Structures
[X] Algorithm complexity and big-oh notation
- 05/26, 05/27
- Books:
- Goodrich et al: Data Structures and Algorithms in Python
- Skiena: Algorithm Design Manual
- Wiki notes:
- [https://charlesreid1.com/wiki/Algorithm_complexity](https://charlesreid1.com/wiki/Algorithm_complexity)
- End of chapter questions: both
- sorting functions: [https://charlesreid1.com/wiki/Algorithmic_Analysis_of_Sort_Functions](https://charlesreid1.com/wiki/Algorithmic_Analysis_of_Sort_Functions)
- substring patterns: [https://charlesreid1.com/wiki/Algorithmic_Analysis_of_Substring_Pattern_Matching](https://charlesreid1.com/wiki/Algorithmic_Analysis_of_Substring_Pattern_Matching)
- matrix multiplication: [https://charlesreid1.com/wiki/Algorithmic_Analysis_of_Matrix_Multiplication](https://charlesreid1.com/wiki/Algorithmic_Analysis_of_Matrix_Multiplication)
- Code:
- Java: [https://charlesreid1.com:3000/cs/java/src/master/algorithm_complexity](https://charlesreid1.com:3000/cs/java/src/master/algorithm_complexity)
- Python: [https://charlesreid1.com:3000/cs/python/src/master/algorithm_complexity](https://charlesreid1.com:3000/cs/python/src/master/algorithm_complexity)
---
## Data Structures
### Arrays/Array Lists
[X] Arrays and Array-Based Sequences: Python
- 05/28, 05/29
@ -41,30 +22,8 @@
- Code:
- [https://charlesreid1.com:3000/cs/python/src/master/arrays](https://charlesreid1.com:3000/cs/python/src/master/arrays)
---
[X] Stacks and Queues: Python
- 05/29
- Books:
- Goodrich et al: Data Structures and Algorithms in Python
- Goodrich Python focuses on array implementations of stacks and queues, doesn't cover linked structures until after
- Wiki notes:
- [https://charlesreid1.com/wiki/StacksQueues](https://charlesreid1.com/wiki/StacksQueues)
- [https://charlesreid1.com/wiki/StacksQueues/Python](https://charlesreid1.com/wiki/StacksQueues/Python)
- End of chapter questions:
- (none)
- Code:
- Python: [https://charlesreid1.com:3000/cs/python/src/master/stacks-queues-deques/](https://charlesreid1.com:3000/cs/python/src/master/stacks-queues-deques/)
- Array-based stack: [https://charlesreid1.com:3000/cs/python/src/master/stacks-queues-deques/stacks/ArrayStack.py](https://charlesreid1.com:3000/cs/python/src/master/stacks-queues-deques/stacks/ArrayStack.py)
- Array-based queue: [https://charlesreid1.com:3000/cs/python/src/master/stacks-queues-deques/queues/ArrayQueue.py](https://charlesreid1.com:3000/cs/python/src/master/stacks-queues-deques/queues/ArrayQueue.py)
- Array-based deque: [https://charlesreid1.com:3000/cs/python/src/master/stacks-queues-deques/deque/ArrayDeque.py](https://charlesreid1.com:3000/cs/python/src/master/stacks-queues-deques/deque/ArrayDeque.py)
---
[X] Arrays and Array-Based Sequences: Java
- 05/29, 05/30
- Books:
@ -88,10 +47,11 @@
- Python-style list in Java: [https://charlesreid1.com:3000/cs/java/src/master/arrays/python-list/PythonList.java](https://charlesreid1.com:3000/cs/java/src/master/arrays/python-list/PythonList.java)
- Usage of the Array data type: [https://charlesreid1.com:3000/cs/java/src/master/arrays](https://charlesreid1.com:3000/cs/java/src/master/arrays)
---
### Linked Lists
[X] Linked lists: Java
- Singly linked lists: 05/31
- Circular/doubly linked lists: 06/01
@ -109,17 +69,41 @@
- IntList singly linked list: [https://charlesreid1.com:3000/cs/java/src/master/lists/linked-lists/IntList.java](https://charlesreid1.com:3000/cs/java/src/master/lists/linked-lists/IntList.java)
- TList templated singly linked list: [https://charlesreid1.com:3000/cs/java/src/master/lists/linked-lists/TList.java](https://charlesreid1.com:3000/cs/java/src/master/lists/linked-lists/TList.java)
---
[ ] Linked lists: Python
- Singly liked lists: 06/04
- Books:
- Goodrich Python Chapter 7
- Goodrich Python neglects linked data structures until later. Linked lists are left for after stacks and queues.
- Wiki notes:
- [https://charlesreid1.com/wiki/Linked_Lists](https://charlesreid1.com/wiki/Linked_Lists)
- [https://charlesreid1.com/wiki/Linked_Lists/Python](https://charlesreid1.com/wiki/Linked_Lists/Python)
- [https://charlesreid1.com/wiki/Linked_Lists/Python/Single](https://charlesreid1.com/wiki/Linked_Lists/Python/Single)
- End of chapter questions:
- Code:
---
[X] Exceptions in Java
- 05/31
- Java API Docs
### Stacks Queues
[X] Stacks and Queues: Python
- 05/29
- Books:
- Java API Docs, Java Collections classes, StackOverflow
- Wiki note:
- [https://charlesreid1.com/wiki/Java/Exceptions](https://charlesreid1.com/wiki/Java/Exceptions)
- Goodrich et al: Data Structures and Algorithms in Python
- Goodrich Python focuses on array implementations of stacks and queues, doesn't cover linked structures until after
- Wiki notes:
- [https://charlesreid1.com/wiki/StacksQueues](https://charlesreid1.com/wiki/StacksQueues)
- [https://charlesreid1.com/wiki/StacksQueues/Python](https://charlesreid1.com/wiki/StacksQueues/Python)
- End of chapter questions:
- (none)
- Code:
- Python: [https://charlesreid1.com:3000/cs/python/src/master/stacks-queues-deques/](https://charlesreid1.com:3000/cs/python/src/master/stacks-queues-deques/)
- Array-based stack: [https://charlesreid1.com:3000/cs/python/src/master/stacks-queues-deques/stacks/ArrayStack.py](https://charlesreid1.com:3000/cs/python/src/master/stacks-queues-deques/stacks/ArrayStack.py)
- Array-based queue: [https://charlesreid1.com:3000/cs/python/src/master/stacks-queues-deques/queues/ArrayQueue.py](https://charlesreid1.com:3000/cs/python/src/master/stacks-queues-deques/queues/ArrayQueue.py)
- Array-based deque: [https://charlesreid1.com:3000/cs/python/src/master/stacks-queues-deques/deque/ArrayDeque.py](https://charlesreid1.com:3000/cs/python/src/master/stacks-queues-deques/deque/ArrayDeque.py)
---
@ -160,25 +144,7 @@
---
[ ] Linked lists: Python
- Singly liked lists: 06/04
- Books:
- Goodrich Python Chapter 7
- Goodrich Python neglects linked data structures until later. Linked lists are left for after stacks and queues.
- Wiki notes:
- [https://charlesreid1.com/wiki/Linked_Lists](https://charlesreid1.com/wiki/Linked_Lists)
- [https://charlesreid1.com/wiki/Linked_Lists/Python](https://charlesreid1.com/wiki/Linked_Lists/Python)
- [https://charlesreid1.com/wiki/Linked_Lists/Python/Single](https://charlesreid1.com/wiki/Linked_Lists/Python/Single)
- End of chapter questions:
- Code:
---
### Skiena: Algorithms, Advanced Data Structures, Programming Challenges
[ ] Advanced Data Structures: Dictionaries, Priority Queues, Binary Trees, Hash Tables
- 06/02, 06/03
@ -195,42 +161,90 @@ Git code:
Much more practical focus on algorithms, only the most useful data structures,
only the core of each data structure, basic operations and big-O analysis.)
---
[ ] Algorithms: Verifying Big-O Operations in Java
- First pass: linked list O(1): 06/04
- Wiki note:
- [https://charlesreid1.com/wiki/Linked_Lists/Java/Timing](https://charlesreid1.com/wiki/Linked_Lists/Java/Timing)
---
## Trees
o
[ ] Trees: Python
- 06/07
- Books:
- Goodrich Python Chapter 8
- Goodrich trees coverage includes interfaces/abstract classes/virtual methods
- Wiki notes:
- End of chapter questions:
---
[ ] Trees: binary search trees
[ ] Trees: heap trees
[ ] Trees: priority queues
[ ] Trees: balanced search trees
[ ] Trees: red black trees
[ ] Trees: tree traversal
## Dictionaries
[ ] Dictionaries/Maps
## Hash Tables
[ ] Hash tables
[ ] Trees: binary search trees
[ ] Trees: heap trees
[ ] Trees: priority queues
[ ] Trees: balanced search trees
[ ] Trees: red black trees
[ ] Trees: tree traversal
## Graphs
[ ] Graphs: directed and undirected
[ ] Graphs: graph <--> adjacency matrix/list
[ ] Graphs: BFS, DFS
## Guava
[ ] Google Guava Library
### Algorithms
---
## Algorithms
[X] Algorithm complexity and big-oh notation
- 05/26, 05/27
- Books:
- Goodrich et al: Data Structures and Algorithms in Python
- Skiena: Algorithm Design Manual
- Wiki notes:
- [https://charlesreid1.com/wiki/Algorithm_complexity](https://charlesreid1.com/wiki/Algorithm_complexity)
- End of chapter questions: both
- sorting functions: [https://charlesreid1.com/wiki/Algorithmic_Analysis_of_Sort_Functions](https://charlesreid1.com/wiki/Algorithmic_Analysis_of_Sort_Functions)
- substring patterns: [https://charlesreid1.com/wiki/Algorithmic_Analysis_of_Substring_Pattern_Matching](https://charlesreid1.com/wiki/Algorithmic_Analysis_of_Substring_Pattern_Matching)
- matrix multiplication: [https://charlesreid1.com/wiki/Algorithmic_Analysis_of_Matrix_Multiplication](https://charlesreid1.com/wiki/Algorithmic_Analysis_of_Matrix_Multiplication)
- Code:
- Java: [https://charlesreid1.com:3000/cs/java/src/master/algorithm_complexity](https://charlesreid1.com:3000/cs/java/src/master/algorithm_complexity)
- Python: [https://charlesreid1.com:3000/cs/python/src/master/algorithm_complexity](https://charlesreid1.com:3000/cs/python/src/master/algorithm_complexity)
---
[ ] Algorithms: Timing/Verification
- 06/04 - verifying linked list is O(1)
- Wiki note:
- [https://charlesreid1.com/wiki/Linked_Lists/Java/Timing](https://charlesreid1.com/wiki/Linked_Lists/Java/Timing)
- Books:
- Goodrich (both Java and Python books) discuss big-O timing for data structures
- Several end of chapter questions address timing/complexity
---
[ ] Algorithms: NP, NP-Complete, Approximation
@ -318,3 +332,30 @@ only the core of each data structure, basic operations and big-O analysis.)
[ ] Supplemental: Endianness
[ ] Parallel programming: Basic concepts/algorithms
## Language-Specific
[X] Exceptions in Java
- 05/31
- Java API Docs
- Books:
- Java API Docs, Java Collections classes, StackOverflow
- Wiki note:
- [https://charlesreid1.com/wiki/Java/Exceptions](https://charlesreid1.com/wiki/Java/Exceptions)
[ ] Decorators
[ ] Interfaces, Abstract Classes, Virtual Methods
[ ] Tests
[ ] Unit testing
[ ] Memory Usage
[ ] Garbage Collection

Loading…
Cancel
Save