“Mankind is made of two kinds of people: wise people who know they’re fools, and fools who think they are wise.” Socrates
My SLOG, short for courSe bLOG, as they wish it to be called. This post will be about computer science and the beauty held within. My interest in computer science spawned as a young lad. Before my days on the squash court, ever since I could remember I wanted to be a Video Game Designer. Something about games fascinated me and I felt compelled to create them. Many years later, after many years on the squash court, I have decided to indulge this desire.
Since I began my course at U of T I have come to see further the beauty held within the computer realm. What was once a platform merely for entertainment has become a world of infinite possibilities. What you can create is limited only by your ability to think, and our thinking is continuously developing throughout our lives. What I wanted from this course was to see behind the curtain of my pestering mind which whispered: “look, see for yourself”. To push boundaries seems to be in my nature, just ask my parents, and now I am pursuing a degree in computer science along with my professional squash career, my coaching, and my wonderful-beautiful wife.
If you can imagine it, you can create it!
The experience so far has been enjoyable, the work not impossible but challenging. Foundation building I suppose, on what will be the house of creation within the realm of computers. I encourage my fellow students and friends to take a moment to consider the possibilities within this realm. What would our world look like with your most ingenious creation? Anything you can imagine can be done.
What most people find difficult is the time and effort it takes to learn how computers work. This indeed is a daunting task, I myself was quite fearful before the course began. I expected computer science to be chalked full of logic and intense thinking, and indeed it can be if you’d like. My experience has been much more average, nothing beyond the common frustrations which come along with learning any new skill. May this be an encouragement to anyone interested in learning about computer science.
The manipulation of images has been quite useful. My wife asked me how to change an image from ultra HD quality into average quality so that she could use it as a headshot. Finally able to put my computer skills to use this was my first task. Using DrRacket, our computer programming tool, I managed to fix up her photo into the necessary specifications. As we learned in class all images on the computer are made up of pixels, so when she sent me her 4K image I scaled it down and then cropped up the extra pixels on the sides and top. This may not sound very hard, the same thing could be done with MS Paint, but it was indeed satisfying to use my new found programming skills to help.
How cool is that!?
Throughout the course has been several quizzes. Each consisting of material learned in the previous week. Luckily these quizzes seem to be a carrot for us to do the exercises posted each week. The exercises are challenging at times, but doable. Each one helping to understand further the functions of computing. One can learn much from deciphering a computer program. One function at a time one task at a time, one after another the computer completes its work. Indeed a very productive way to get work done. A computer works as humans ought to. Whenever we are given a task it can be likened to a computer program. We break it up into the most manageable tasks possible, then proceed to make progress. This stimulates us to continue because we know we are making progress, we are completing our goals. If we receive our task and make the goal to complete the entire task in one step we are likely to receive an error.
UPDATE: October 27th Progress.
The CSC104 journey continues as the first project is announced, quizzes continue, and our first test is finished. Quite an enjoyable first half of the semester I would say. Thankfully I only have one other course on my plate which may allow me to wrap my thinking more fully around computational thinking. That being said I do have work and training on the go, along with my beautiful wife, which does not leave me a whole lot of time for studying.
Studying for the test and quizzes have been manageable, the exercises for the quizzes have proved extremely useful. It also helps due to the fact that I am very much a doer, it seems to be the best way I learn. So going through the exercises and tweaking things, trying the different code and finishing the exercise has no doubt been a positive impact on my DrRacket skills. I ran into a few roadblocks while studying for the test. It was my first trip to the Bahen Centre, a beautiful building, for some 1 on 1 with a TA. She was very helpful! Any questions I had she would help me think through and write out the code to make sure I fully understood the concept. I went through all of the posted online tests while studying. The questions were difficult given my current skills, but once I made it through a few times I was able to understand and complete all of the problems without much trouble. Breaking questions up into their essential truths was really the key to understanding. I would have to read the questions carefully, noting all the important information, and then step back and think of what the first necessary step was to complete the problem.
Other than studying for the test I haven’t needed to go in for the tutorials although they seem to be a very handy tool, I’m sure I will be utilizing that help while working on the first project.
Update December 4th, 2017
The layers of computer science continue to build. Recursion strikes back!
It has been very interesting learning about these more advanced coding techniques. The latest project on the simulation of infection was most satisfying. Watching those red dots take over… wow!!
My advice for any student beginning this course would be this. Go to every lecture possible, follow along on your computer in class, and make sure you practice the concepts! Give yourself short, challenging but attainable projects to practice your newfound computer skills. Enjoy the process of complexity and simplicity, that is life. The frustration and struggle which comes with wrestling with a problem is, from what I am told, an extremely common part of computer science. Although the struggle will always be there, my friendly programming veterans have all told me, in one way or another, that the satisfaction of solving a difficult problem is equally rewarding to the struggle.
My experience throughout the course was a little bit of a roller coaster. I started off great, but as the course continued I had to miss a few classes and tutorials in order to travel for the Professional Squash tour. I did my best to keep up while I was away but indeed I struggle if I do not submerge myself in a subject. I found studying away from U of T difficult. I would advise anyone to do their best to surround themselves with people who are excited to learn computer science. I definitely look forward to making a few good friend along the way to my degree.
I needed an extension on my first project due to sickness, and the extension being on reading week there was not much extra help available. I did my best to get through it, spending hours in the local coffee shop, but it was definetly not my best work considering I could not ask many questions. I suppose I could have emailed my questions in but I did not, I really just wanted it done so I could move on to the next task.
The second project went along much more smoothly, having been given the time to solidify all of the previous concepts needed, and having the help of the awesome TA’s during the tutorial times. I really did enjoy the last project and I applied a new way of thinking along the way. It revolved around speaking out loud to myself while I was trying to figure out problems and also testing as many things as possible in the interaction pane of DrRacket. This helped me tremendously! Not only because I learn best by doing, but also because I was constantly writing code, getting better and better at writing the syntax of DrRacket helped my coding skills in general and I was also able to work out entire problems in for the project in the interaction pane before transferring it into the definitions pane.
So far my computer programming experience has been far more ups than downs and I have truly enjoyed the process. Having good help and good professors also helped a lot! I look forward to trying to pursue a degree in computer science!