This week in the Applied Computer Science program at University of Colorado Boulder saw me tackle PicoBot maps and problem sets in propositional logic. Both are tedious activities, and thoroughly fascinating.
Apparently data scientists are supposed to handle tedium pretty well, so go me! Also, continuing with my MOOC on C++ I have studied pointers, dynamic memory allocation and memory leaks. In my MOOC on Advanced Python I've been going over how Python handles integers, floats, decimals and the various rounding strategies available to the language. Also, in revisiting Andrew Ng's Stanford MOOC on Machine Learning I watched some videos on Cost Function and Gradient descent while coding out solutions in Octave - I wonder if Ng stands by his original boast that students iterate faster in Octave vs Python or any other language?
On an aside, I have been doing some high level research of the language Julia. I think this language has a lot of potential in terms of close-to-C levels of speed thanks to just-in-time compiling and the feel of a Python/Octave hybrid - all extremely fascinating - though it's a bit early to say whether this will make waves the way Python and R have. Eventually I should delve into R to even out my data science skillset. Ultimately the tool doesn't matter as much as the underlying knowledge of how they work, which makes me eager for my future CU Boulder course on Principles of Programming Languages as this will be a chance for me to formally display my knowledge in an academic setting. Yes, I know a degree doesn't matter as much as what your project portfolio has in it, but I am putting substantial effort into this program and am unabashedly enthusiastic about it.
PicoBot is a simple computer program with a 2D visual interface, a few navigation buttons, an area for rule coding, and an output console. The idea is to code out the movements of a single pixel so that it visits all pixels on the grid at least once. You have four directions of movement, a single memory variable called state, and the ability of the pixel to detect if each of the four adjacent pixels is empty or not. The ultimate goal of this exercise is not so much to win as it is to develop good planning habits and familiarity with writing pseudocode - the final (really hard) extra credit map I was assigned took me a relatively short amount of time to solve after I had scratched out a bit of pseudocode game plan on a piece of paper.
Propositional logic is the basis for the study of discrete mathematics and is a very strange subject to be tackling. I won't speak too much on this but this logic are boils down to the 12 first principles of algebra. I sucked at mathematics when I was younger, but I guess I really enjoy it now!
So that wraps up my first week of classes! I'll try to churn out weekly replay every week!