Sunday, December 6, 2015

Starting the 2nd project

Starting the 2nd project was pretty difficult because I thought that the 1st project was fairly difficult. To me, the first project was difficult because it was hard for me to visualize what I had to do and because of that I struggled to write the code. Furthermore, because the 1st project was such a challenge, I worried a lot about the 2nd project. I decided to start trying the 2nd project right when it was posted. The first day I tried it, I couldn't understand how to do anything. My brain would not work and I was very nervous because I knew that I would have to finish the project some how. So, I decided to give my brain a break and went to sleep. The next day, I opened DrRacket and attempted to do the project again. I told myself that I was probably just over thinking and the anxiety was blocking my brain from thinking. So gave it another try and when all the check-expect test passed I was overjoyed. This made me realize the importance of spreading out work over a long period of time when I am stuck on a question. This allows the brain to ponder about the issue. Although the thinking happens subconsciously, ultimately giving the brain time to relax and process the information will lead to a better result.

Things to Remember on Tests

After looking over the questions I got wrong on the test, I have found a couple of errors that I must keep in mind when writing the final. With regards to my bad habit stated in my previous post, I feel like in order to deal with that problem, I should start to look at each piece of information individually then think about it as a whole. So for example, on the 2nd term test, we were given 4 definitions, a definition for image, pixels, i and nth-pixel. Looking at all the information right away might be intimidating in the beginning. So, in this case, even if it seems like it will take a long time, I should slowly decipher line by line what each definition means and its function. In order to not overwhelm my brain and stay focused, something I could do is to maybe use my hand to cover up the other definitions and then after I understood that line, move my hand down the list of definitions until I understood all the definitions. Another thing I could do is if I couldn't understand the function of any of the definitions given, I could save that question until the end after I finish going through the other material on the test. This not only saves time when writing the test but also allows my brain to take a break from that question. By doing this, it will allow my brain to freshen up and will help me think of different approaches to tackle the problem.

Another thing I should keep in mind is my misunderstanding of the function color-list->bitmap. On the test for some reason, I thought that for example (circle 10 "solid" "black") would only produce a list of colours that contained only 1 colour. I forgot to take into account that because the circle is black and not just one shade of red, green or blue, it would produce a list of colours with more than 1 element in the list.

Finally, I need to remember that whenever I rotate, the number or the degrees the image is being rotated by goes in front of the image. For example (rotate 45 image) and not (rotate image 45). Also, something I really should not forget doing is checking my work. This will allow me to decrease the amount of careless mistakes I make throughout the test. I should check my work every single time I finish a question and then do a final check from the beginning of the test to the end before I hand in the test.

Saturday, December 5, 2015

Term Test #2 Results

Wednesday December 2nd is the last day of tutorial. It is today where I got my term test #2 results. As expected, I did not do as well on the 2nd term test compared to the 1st. Because of this, I knew that I had to reflect on why my results were significantly lower in order to prevent myself from getting a similar mark on the final. As I looked through the questions I got wrong on the test, I realized that there were quite a few careless mistakes. I knew how to do the question however, I still got them wrong. This made me question myself why this happened. I realized that whenever I see something confusing or a little more complicated, I would tend to block out the question. This means that instead of slowly and patiently deciphering the question, I would just read the question skipping the parts I do not understand and come up with an answer based on what I know. I know that this does not only apply to computer science but also to other subjects which is why i definitely need to change this bad habit of mine.

Wednesday, November 18, 2015


Nothing in life is easy. Everything has its challenges, including programming. The material prior to the midterm, I would not say was very easy, but it was definitely not extremely challenging. However, as the classes went on, the material became more and more difficult. One of my biggest challenge is coming up with my own code.Writing code is not just input and output.  Remember when I said that programming only used basic math? Well, I would like to take that back. So far, the codes that I had to write did use basic math. However, the thinking process is extremely similar to math, which is why I find math difficult. In math, we are taught a set of rules and results of certain equations and to answer the questions we have to manipulate everything we were taught. This is the same with programming. In this course, we are taught a number of different rules and functions. To come up with a code, we have to use everything we learned and in a way think outside of the box to come up with the solution. We have to manipulate and think of the rules from different perspectives. Maybe this is a sign that I still have not spent enough time on practicing how to use my brain to think like a programmer.

Thursday, November 5, 2015


Before a new course starts or even a new school year starts, often times people set goals for themselves. By setting these goals, people are able to push themselves to reach their targets and sometimes they might even surpass their initial target. So what are my goals for this course? Well, my main goal is really simple, it is to give programming a chance. In the past, I had never ever considered taking a programming course at all. This is because, as stated before in my previous post, I thought that programming was only for those who were exceptionally good at math. I just never really saw myself as a very tech-savy person either. Therefore, I did not even think twice about taking a course that was related to dealing with things as technical as programming. I admit it is very sad that I had kept myself in this box for 4 years of high school. But now I am happy to say that I have accomplished this goal and I have stepped outside of my box.With an open mind, I was introduced to the world of programming and I strongly believe that because of this, I am now able to finally understand more of the course material.

Is it interesting to me??

Before going to class, I honestly did not know what to expect from this course. I did not know whether or not I would fully understand the material and in my head, I was pretty sure I would not enjoy this course. After the first couple lectures, I was still not able to completely grasp the idea of programming since I had no prior experience with coding. However, the tutorials really helped reinforce the ideas that were covered in lecture. Furthermore, by spending more time playing with DrRacket, I was starting to get the hang of how an actual programmer thinks.That being said, I am beginning to find programming fairly interesting. By using DrRacket and a certain set of functions, I am able to modify images and even add animation to them, which I think is amazing considering the only  input is a couple lines of code. CSC104, allows me to explore my creative side in a whole new way. More importantly, DrRacket is no longer just  a random program with words and symbols on a screen, it is so much more. Now I am able to somewhat communicate with this program by speaking their language, similar to human interactions.

Wednesday, November 4, 2015

Why Did I Choose CSC104?

So you might ask, out of all the courses available at the University of Toronto,what made me choose CSC104 as one of my courses? Well to be honest, one of the only reasons I took CSC104 is because this course is a prerequisite for my intended major, cognitive science. If it wasn't for this requirement, I would have never even considered taking a computational course. But why? Well one of the main reason is that I can never see myself doing anything related to computer programming. To me, a stereotype of a computer programmer is someone that is good at math and that is definitely not me. Furthermore, because I have never done anything related to coding, with the influence of the media, I just automatically assume it is very difficult. However, after taking this course, my perception of the course has changed quite a bit. As I said before, I thought that computer programming was purely based on math. But, very quickly, I learned that this is not true, at least not for CSC104. Computer programming is more of learning and understanding a certain set of rules and thinking of those rules from different perspectives in order to make the program perform a particular task. Once the program is able to perform that particular task, the programmer has already succeeded, and this is a very satisfying feeling.