For a lot of the people I have talked to so far, this course
has been a pretty big jump from 108. From having to write only basic code and
comments to designing entire classes and dealing with inheritance, all in just
the first assignment of the course, people seem to be getting worried about how
its going to be in the future. But if you think about it, the topics we have
covered so far are not that complicated. OOP is the basic way in which most of
the commonly used programming languages work and understanding the concept is
very important for anyone in CS. The other topic we've covered till date is
Recursion. My initial attempt at understanding it was basically this.
But when I finally got it, it was pretty amazing. Doing
complicated problems in just 4 lines of code and that too by having something
call on itself seems like a pretty cool thing to me. Once you trace it in your
head you see the simple brilliance of the method.
Lecture topics aside, we had our first assignment due this
Thursday. And boy was that an unexpected struggle. The main problem when it
comes to design I think, is that there are so many ways to go about the same
problem. Even with the specifics we had given to us at the start of the
assignment, what gave me the most trouble was making decisions as to how to make
my classes, specially their methods. Also, given that we didn't have to make
too complex a strategy to actually play the game, we ended up over thinking the
rest of what we had to do. That inevitably led to a lot of confusion and
meaningless stress. But at the end I think we pulled through pretty nicely.