Today was the start of a laundry list of things that I want to review. Roughly speaking, the items are split into a few areas: algorithms, data structures, and math. My plan is to use various tools to assist in my review.
My focus was to review the algorithms from two labs at Hackbright. The first lab involved Markov chains. We made a Twitter bot that determined what to tweet based upon a Markov chain that used the text of Green Eggs and ham. In reviewing the lab, I realized that while it explained how to make the Markov chain, it did not go into much depth about what a Markov chain was. Khan Academy to the rescue – an entire set of videos and demos involving Markov chains helped to fill in the gap. I will probably redo that lab on my own.
Next, I spent some time reviewing a movie rating algorithm from a lab that (among many other things) involved predicting what movies a given user would enjoy based upon comparisons between that users ratings and those of other users. While at Hackbright, no one in our cohort got to the point of using the algorithms involved (it was a long and complex lab). So, I wanted to review it. I started to review using Euclidian distance (one dimension and then two dimensions) to measure differences. The great thing is that it involved both a math review and python review.
Stacks, Queues, Dequeues
The lecture at Hackbright on these topics was clear – but I was pretty sleepy that day. So in addition to reviewing my notes, I also read a bit from the site with the book “Problem Solving with Data Structures and Algorithms.”
Then, I decided to make a program that would create a very simple to do list using the collections library from python. The lecture gave an example of making the to-do list but involved building a Queue class. I decided to read up on the python Queue built-in from the collections library. The lecture did not cover deques (except to mention that python has a class for them). So, I also had to read up on deques and figure out how to use the python Deque built-in. The functionality is pretty limited, but it was very helpful to write the program using a queue and a deque (which I used as a queue).
I did not have as much time to spent on this topic. Most of what I did was simply review the concepts. I built a sample node class and a sample linked list class, along with functions for printing each node, and finding a node; all of which were modeled in class.
Khan Academy has great modules for review all sorts of math topics. Each week day I am trying to set aside at least 20 minutes to review. Today, I managed to spend 25 minutes reviewing.