Thursday, October 31, 2013

Regular Expressions!

Regular expressions! Joy! Let me just take a look at them for a second...Okay, let me take a look at them a bit longer...
Well it's safe to say they're a new concept to me, or at least using them is, though I don't seem to be alone in that. Reading up on it, thy really are extremely useful. They're used for searches, in spell check, anything that requires parsing really. I really should know more about them. And that's where A2 comes.

Monday, October 21, 2013

This week we continued on with recursion by exploring self-defined abstract data types. This time with binary trees. Traversing them turns out to be a more complex example of recursion than we've previously used. The exercise for the week proved difficult at first. It left me with a dumb feeling to have worked for hours on what amounted to only a few lines of code, trying to understand how to properly implement traversals.

Sunday, October 13, 2013

    This week saw the rapidly approaching deadline for assignment one, and even though I hadn't started as early as I possibly could have, I'm glad I was able to give myself a week to tackle the assignment. Seeing people still desperately rushing to finish on the night it was due just served to convince me I was doing an ok job of time management. The peace of mind of not having to touch my code the day it's due is so worth it.
    The assignment came together without major problems for me and my group for the most part, but personally recursion presented itself as the largest problem at first, because after all, it's just an unnatural way for humans to think. It's one of the reasons we employ computers computers to do so for us. What seemed to make things easiest, at least for now until I get better used to thinking recursively, was to chart out the computational operations to better visualize the process. In this way I was able to understand recursion, which is just structured repetition to achieve my goal.
    Object Oriented Programming (OOP) is one type of programming, the other that comes to mind is procedural. However, it's really the only type I really know, since Java and Python are both OOP languages. It seems to be an effective paradigm, offering the ability to encapsulate certain code in programs, and making programs more stable in that errors occur, in specific classes or methods rather than globally, which in turn makes them easier to fix. It may not necessarily the most efficient mode to do things in for the machine, but the sacrifice seems worth it in order to make code more manageable and understandable for developers other than the one that originally coded any piece of code.
    The week as a whole seemed focused on the upcoming term test and the assignment more so than anything else, though the lull in which to study and work, was much appreciated.