Tuesday, 31 March 2015

Week 11: Revisiting My Past

For this week's SLOG topic, we are supposed to revisit one of our older posts and see how our views have changed or developed in some way. Today I will be revisiting my week 4 blog which was about my impression of the first weeks in class (this one). Looking back at my blog, I can see that the first few weeks were fairly easy for me and I seemed to be keeping up with my class. However, nowadays I have been falling behind and most of the times have trouble understanding the material, especially the new omega material. Most of the people in my class seem to have taken CSC165 before so for them the Big O and Omega terms are familiar. However, I am not sure as to how it will help us implement code for sorting or what its relation is to programming. To improve upon this, I might have to look over some Youtube videos to clearly understand what it stands for.



In my previous blog, I mentioned that the "truly fun and hard part of programming is finally starting to unfold". This prediction came true in many ways since the assignments kept getting harder but it was more tiring than fun trying to think of solutions for the harder functions. University load has definitely taken its toll on me because I have grown a white hair...or maybe its just because my aging process seems to speeding up. In my week 4 blog I said that the code I had been writing was simple and built upon the material we learnt before. By the end of this course, I can say that some of the code we had to write in CSC148 was not simple and we learned several new concepts such as Trees, BTNode and LinkedLists. Most of the course after the first term test focused on writing recursion in different ways and I must say that we did so much recursion that I kept seeing SubtractSquare Trees everywhere I went at one point. All in all, I felt that this course was eye opening and it helped me grow as a programmer in many ways. Compared to the old me who was just bored in class because she didn't feel challenged, I can say that the me now listens attentively during the lectures and definitely tries to think way outside her box for the assignments.






Thursday, 26 March 2015

Week 10: To be happy or not to be happy?

At last, the TA strike has ended. It was just announced an hour ago so I decided it was time to pick up my game and start writing my slogs again now that there is some hope of them being marked. I think however that I feel disappointed because our marking scheme for computer science, for which we were going to vote on Wednesday, may not be changed anymore. I am not sure how this will affect this course and other courses going ahead, but I hope that we can finally get all the help and support needed for assignment 3 and the final exam.



As for what we learned during week 10, Danny mostly talked about the solution to assignment 2's minimax and tippy apply_move algorithms. I was unable to follow through most of his explanation especially because I would have to look through all the classes as a whole to understand someone else's code and variables. So I personally did not find the solution review very helpful. After that we talked about how many test cases we need to be confident about our code functioning properly. We worked on a few test cases for Subtract Square and I felt confident about that topic after I got correct answers. At the end of the class, we discussed Assignment 3 and the two options we have for that. I think it was a great idea to give us an option to work on either A or B because my minimax was not implemented properly for assignment 2 so I am glad that I don't have to depend on my previous work for this. Hopefully, I will be able to do a lot better on this assignment because assignment 2 was a disaster. I plan on finishing this A3 early so that I have ample time to ask for help. Adios then, I have to start working on that grow method!



Monday, 23 March 2015

Week 9: Term Test 2~

Sorry for the late post, lately I have been considering whether these SLOGs may even be ever read since the strike does not seem like it will end soon. Although it might be good for our mark to remove some SLOGs from the marking scheme, I would be a little disappointed given how much time it takes me to write these blogs even though it may not seem like it. Back to our topic for today, during week 9 we were mostly busy with prepping for test 3 and did not have much time to learn new materials. I could feel the affects of the strike during the lecture as the professor, Danny, seemed to struggle with covering both the syllabus while trying to answer assignment and lab questions which would have other wise been answered during tutorials. For the monday lecture, we mostly discussed BTNodes and how to insert or delete data from the tree. I can't really reflect on this much because I felt that the methods we practised in class were very straight forward. However, after doing the lab for that week I realized that I seemed to struggle with deleting a node from a specific position and trying to understand what the docstring wants me to do. I believe that I need more practise but its hard to keep up with the course load as the term is coming to an end.



As for the term test, I felt that it was fair- not too hard and not too easy either. I cannot say at this point about how I performed because to be honest I am lost in most of my classes right now as to my performance in them. I hope that the tests and assignments are marked quickly so that we can get feedback before our exam so that I can decide which parts of course to focus on.


Sunday, 8 March 2015

Week 8: My Impressions of Week 7

I would say that week 7 was the transitionary week from reading week where we were still trying to adjust to our school's schedule again. It was a slow week where we mostly discussed Trees, recursion and tackling assignment 2. I am not doing a computer science major and am just taking this course as an elective because I used to enjoy programming.

However, I mostly feel lost ever since we started talking about the idea of Trees and writing recursive intensive methods. I am not sure as to how to think of a strategy when approaching recursion. Even though in the worksheets, the steps are broken into pieces such as think of a simple base case and write a general code for one of the nodes etc.

I would say this course requires a lot of dedication and time which I don't have a lot of because my top priorities are passing the three required courses for Rotman. I will definitely try my best to stay on top of my course work and ace test 2 like test 1 but from the way things stand at this point, it seems as impossible as the American Dream.


Week 7: Summary of Abstract Data Types

In the past few blogs, since I have already more or less summarized recursion and object oriented programming topics, I wanted to explore a new subject for this week's slog. Although I myself am still new to this topic, I will try my best to recap what I have learnt so far about abstract data types.

Before I begin, when you first hear the term "abstract data types", what do you think it represents? A cryptic piece of code that is so clouded in mystery that we can only try to fantasize about it in our heads? I know that that was first thing I thought of when I first heard this term. In reality, abstract data type is a lot simpler than recursion which is as abstract as it can get.

From my understanding of abstract data types, there is a parent class and a child class. The parent class is a generic abstract class which cannot be used to achieve anything on its own. However, when used with the child class, the child class inherits the parent's general attributes and methods which can be used to perform a function. Moreover, you can add new methods to the child class which are specific only for that class. For instance, when we created the game state class for assignment 1, it needed a specific game to work with it. The subtract square state class inherited its parent class (GameState) and was then able to use its attributes such as next_player, over and even instructions which were modified for subtract square. We even added a new method called is_pos_square() which was game specific.

In summary, I believe that abstract data types are a vey useful tool especially when creating games or for anything that needs a general template which then can be used for specific purposes without having to be redundant and repeating our code. I am more comfortable with ADT than recursion because it is not as intangible of a topic as recursion where I have to spend hours just thinking about how it works. Thus, I hope that in the next few lectures we have left, we can focus more on understanding recursion and Trees.