Saturday, 9 February 2013

Post #2

 These past few weeks have passed by so quickly. We've established the history of computers, been introduced to the concept of algorithms, learnt the basic tools to manipulate images and created a short stimulation with big-bang. Within a span of a month, that's quite a bit! 
 My favorite thing we did this week probably would've been the barracuda timer in which we constructed a moving barracuda so that it resembled a clock. The fact that it moved was fascinating. I knew image manipulation could be done through Dr. Racket, I had no idea that we could make the images move though! 
 The biggest challenge this week would've been having to study for the test. The content wasn't too difficult, it was the small details that took its toll. For an example, the same way that (flip-horizontal) is completely different from (fliphorizontal), (rotate-cw) is completely different from (rotatecw). 
 However, after considering why these functions (although so similar) are different, it is understandable and necessary that these differences are implemented in order to separate each function. If our mistakes were auto-corrected like when we text on a phone, it could lead to disastrous consequences for computer assumptions are not always correct. For an example, if you wanted to define (fliphorizontal) however it thought you wanted to write (flip-horizontal), if would lead to an error rather than allow you to define the variable "fliphorizontal". 
In fact, instead of being able to run the program, you'd see: 
define: expected at least one variable after the function name, but found none
 Seeing how humans created computers and its algorithms and human are not perfect, computer assumptions are therefore not perfect. Anyways, getting to the point, what I wanted to state was that from these experiences in which I made countless mistakes, I learnt the importance of being detail-oriented. 
 Another difficulty I found was understanding the contents of lolcatz. Particularly the "subjective-completion" section. I tried to understand the implications of each function but stumbled on this input
(string-append adjective " " noun " is " adjective))
I wondered why there was a " " before the noun. Why couldn't we just insert :
(string-append adjective noun " is " adjective))
 However, when I tried putting that into Dr. Racket and received a failed check-expect test, I quickly identified my mistake. 
 I realized that the " " represented the insertion of a space between the adjective and noun. Tweaking these formulas really helped me understand its content and the importance of having each component.  
 Hopefully these next few weeks will also be full of new lessons and new functions that I can't wait to manipulate and further understand.