1/17/2013

Goal


Maiden Speech
For me software craftsmanship includes the notion of  mastering algorithms. I want to get better at mastering algorithms_. What does the community think will help me improve the time or space efficiency of my program.


Learning Plan

I am going to focus on different topics in different weeks. For each topics, I plan:

  1. Identify different algorithm related to this topics. 
  2. Write a basic version of related algorithms. 
  3. Complete at least 10 online testing problems related to this algorithms. 
  4. //Think of at least 1 application of this topics, and finish the applications. The application can be a extension of the previous application. 
Here are the topics I am going to focus: 

Graph:
  1. DFS
  2. BFS
  3. topological sort
  4. strongly connected components
  5. minimum spanning trees
  6. single source shortest path
  7. all pair shortest path
  8. maximus flow
Tree:
  1. Binary search Tree
  2. R-B tree
  3. B-trees
Data Structure
  1. Stack
  2. Queue
  3. Heap
  4. Linked List

Assessment
For different topics, I have different level: 

  1. Array sorting and String Manipulation: 3
  2. Stacks and Queues: 2
  3. Graph: 2
  4. Tree: 2
  5. Dynamic Programming: 1
1) beginning, 2) developing, 3) competent, 4) advanced.