Friday 31 January 2014

Recursion is hard

Ahhh that comp-sci life. Onlookers unfamiliar with it are often, one might say, "afraid" of even trying to comprehend the mind of a computer. Why is that? Is it because of the complex algorithms involved? the advanced calculus methods? or perhaps, the fact its English words that don't make English sense. A computer language is (almost) like a completely different language, at least to those who don't understand it. It is as intimidating to the laypeople as trying to read french with only an elementary school french education. Once you get over that and you can understand it, the real difficulties begin, as many would say who are taking 148. A difficult example would be recursion, which, might not seem to sound scary, but is so infinity deep, it can be quite daunting. In high school, when we learned recursion, I hated it. I could always solve the questions she asked us to solve with recursion very quickly without it, more efficiently. When we first started learning recursion, the first example we used, I couldn't solve without using recursion (at least not faster than recursion itself). It is a little intimidating because I have difficulty comprehending recursive algorithms. Hopefully with a little practice ill be able to master it. Only time will tell.

Monday 20 January 2014

Object-Oriented Programming

Although I consider myself to be an advanced programmer, at least for my age and education, I have only ever programmed in an Object-Oriented language, so when asked to explain what it is, I will not be able to compare, so I will just discuss my knowledge. Object orienting based around the idea of creating "objects" that store various pieces of information and/or have methods of dealing with various conditions. One can create an object, and use the methods built in with it to evaluate specific conditions based on the nature of the object. For example, java's graphic section will have classes like triangle which will hold data like the height and base of the triangle, and will have methods that can be called to perhaps change the attributes of the triangle like the base and height or even the type, outlined or filled. What nice about object oriented programming is it eliminates greatly repetition in code, and simplifies for the programmer, allowing error trapping to be easier and coding in general.

As for the class, I believe that I will learn a great deal more than in 108, which I only took as I was unfamiliar with python, but I feel as though we will be learning very powerful concepts in this class, such as recursion.