Sunday, January 26, 2014

Second week: Lab madness!

As a total beginner in computer science, stacks are new to me. It wasn't so bad! There's not much highlights to mention, but for the past midterm question, I feel like there could be a less tedious way to solve it. If you have one, please share with me! I wonder if Dan allows the use of functions not covered in class this year. This is why:

During my first lab, I partnered with a new student that never took CSC108. He was friendly, but it was not easy to work with him. I remember last year's assignment requirements, where students are not supposed to use functions not covered in class. For example, itertools was helpful and shortens the code by a lot; however, it wasn't allowed because Dan wants us to learn from working with the tools we have for now. This partner I had did not know what CSC108 are accustomed to. As a result, he had to rely on using Google for in-built functions and follow his own methods. The worst part is he deleted my code because he found itertools to be shorter and simpler! Although employers won't limit you on what you use, that still makes me worry. Since collaboration is required in team projects, I learnt from this encounter to be more assertive of my own opinions and prepare for the worst. If I were to relive that day, first, I would stop him from taking all the work by explaining how lab marks are based on participation. Secondly, I would explain to him how it would be nice to practice following the course requirements. Last but not least, I would try to engage in the activity more by telling him how it was not easy to follow him and he needs to explain his method more. Most of the time, we seem to neglect the importance of switching driver and navigator. I finally realized how beneficial it can be.

For fellow SLOGers, how was your lab partner? Was he or she easy to work with? Did you learn anything from that person? Let me know!

Sunday, January 12, 2014

First week of CSC148: A fresh new beginning, everyone!

Last year's CSC108 ended with a quite challenging exam, but regardless of which, I'm here once again learning from Dan in CSC148. Although the first few weeks had been a hassle managing courses due to conflicts, I still had the pleasure to learn about object-oriented programming, stacks, and exceptions in Python.

The first week was oriented in object-oriented programming. It was not surprising to see some revision in the first lessons. The fundamental basics of constructing classes were taught last year in CSC108, but it seems that the following semester will be focused on them. Dan introduced a method of designing a new class, of which it uses noun, attributes, and operations to break down the general description of a class. Dan also took time to address how these terms, e.g. "attributes", can have different names. For instance, "attributes" can also be called "instance variables" or "object state". Albeit having a pool of names introduced at the same time is a logical and common way of teaching, it is nevertheless confusing for me. To solve this problem, I revisited my notes after class and categorized the terms. This is a copy of what I have written:

"noun/ class name
attribute/ object state/ instanced variables
operations/ object behavior/ function names"

It seems like a silly and trivial problem, yet it helped me tremendously in organizing and understanding what I've learnt. Afterall, one cannot build a house without a strong base. Other than that, everything seemed quite straightforward. As a side note, I'd suggest reading 15.7 and 15.9 from the textbook as the lecture didn't go over that.

Here's a question to other SLOGers! Did you do the exercises in the recommended readings/references? Also, did you notice people gaming during lecture? To tell you what, I'm not even surprised. Meanwhile, the closet nerd inside of me wanted to join in the Hearthstone games or Minecraft adventure...