Wednesday, 6 December 2017

Seventh Appointment with Dr. Racket

Finally we reach the end of the course.

After almost 4 months, the course is finally reaching its end. I came into the course with scepticism, worried that it might be too hard but surprisingly it wasn't. It did not interfere with my other courses and on top of it all it was pretty fun and interesting. I've only just entered into the computer science field and I'm already looking forward to taking other courses.

To any new students thinking of taking a computer science course, I really recommend csc104. The course will help you to take your first step into the field and help you in determining if computer science is really your thing. If you are taking the course my advice would be first to just relax and have fun. The course is really easy, and its great for those with no prior knowledge of computer science. One main thing, which is different for everyone, is a person's capability to grasp the information. For example each person has different level of difficulty with math, some find it hard to understand the concepts while others may grasp the info the first time. For me I was easily able to grasp everything after seeing it just once, which may be linked to my ability to understand concepts in math with ease. So for those who also easily understand the material taught in lectures, my advice would be just to simply do a weekly review, more specifically the weekly labs given. Just by practicing with the weekly labs and past exams, I was easily able ace this course. In my opinion nothing more is needed. However if you are having difficulties in understanding the material, then of course you'll have to work a bit more harder. After a lecture is done and you are confused on something just go back to your notes and play around with the given functions. For example as seen in my other blogs I go around playing with the functions given in lecture to make my own images or animation. Also not to mention STEP, use the step function A LOT. It was very helpful for me when I was first starting out, it greatly increased my way of understanding. I feel like all of this will be quite helpful in allowing you to ace the course however if there is still some confusion, go to the office hours. The professors and TAs are very nice and very helpful in providing different explanations which then might click something inside you. Everyone has a different way of understanding things so getting explanations from different point of views may be helpful. 

The course requires you to constantly design new functions, or provide their definitions therefore you need to be very adept at that. Here is my advice in designing a function in 3 easy steps. First, the main one is think out what you want your function to do. Put the output and input value in a documentation check-expect. Next step is a bit trickier, decide how you want your function to carry out its task. Figure out which functions you want to use in its definition. Then make a design check-expect. Third and finally is to put all that information together, pick out a name for the function and a placeholder and write a function definition. One thing to note is that all of these steps require an extensive knowledge in the different functions taught in the course. You should know a function's name, what it does, what values it requires etc. If after all that, your check-expects fail then step your function and see where exactly the problem lies. Well since each function is different the best way to get your mind around designing functions would be to practice. I was bad at first however when studying for the first term test I was forced to face my weakness and after practice it became easy.

When you take the course, the best thing you could do is make friends in your class. Make friends who can then later help you understand something you are having difficulty in. However if you feel you are fine without friends just know that your life would be much easier when doing projects. Te two projects given in the course can be tricky and having a group partner can help you find mistakes you might have missed if you worked alone, also in my opinion its just faster. Everyone contributes to different sections of the assignment and you can be done much faster. Other than that, and I cannot stress this enough, every time you come across a function add that to a list of all functions you've learned because knowing your functions is the main thing in this course.

All in all, I really enjoyed this course and I hope other future students who take this course enjoy it just as much.







Sixth Appointment with Dr. Racket

Last week we finally learned new material, binary numbers. At the beginning the concept of binary numbers was hard to grasp therefore I had to go back to my notes and practice with them. I tried different ways and finally after a while understood the idea. Though since it is new material, I still don't perfectly know it but it is a step forward. This concept of binary number was what I was yearning to know about for the longest time. I never knew how they worked thus it was pretty interesting to learn about it.
The past week the second assignment was due as well. Overall compared to the last assignment it was much easier and I did not need to go for help. Also since I was working in a group the assignment was finished within a day.

Wednesday, 29 November 2017

Fifth Appointment with Dr. Racket


This past week we mostly worked with the Fibonacci numbers. I was surprised to see that calculations which the program was much slower than if a human were to do those calculations. It surprised me since you don't really see the human mind being able to compute faster than the computer. I never knew that there were limits of computations. We also worked on converting words to pictures. I later practiced with it and made my own word cloud. It was quite interesting. The lectures didn't seem to have much new material so they were not terribly interesting.
Also since the project is going to be due soon I started that as well and compared to last assignment this assignment seems pretty easy.

Sunday, 19 November 2017

Fourth Appointment with Dr. Racket

These past few weeks have been pretty hectic with the assignment due as well as the test. Though, the assignment in the beginning was pretty easy it later came to be quite confusing with all the definitions we had to write for functions. Since I was working alone on the assignment I was stuck for quite a while however when I went to the office hours for help my questions were easily solved. The TAs were quite nice and also were able to answer all my questions. I liked the fact that they did not just simply give me the answers to my problems but gave me hints and asked me questions so I could come to the answer myself. Next time however I feel like I'll work on the assignment in a group so I can be done with it faster.
The lectures during this time were also pretty interesting. I particularly liked the lecture on animation using the functions repeated and big-bang. Though the problem when making animation is that after adding the functions Dr. Racket becomes pretty slow and I have to continue my work on a new window. Not to forget but the lectures on colours were also interesting since as I've said before visuals and colours capture the attention more so than simple words.
All in all the weeks went by pretty well now I'm just nervous about starting the second assignment.

Friday, 27 October 2017

Third Appointment with Dr. Racket

Almost 2 months have passed since the first lecture of csc104 and as always I find this course to be very exciting. Everyday we are learning new things such as creating different functions and applying those functions to carry out different tasks. I am continuously astounded by the fact that even the most complicated of tasks can be carried out by functions which are, at their core, just extensions of the basics. To most people programming gets to be a bit confusing later on as they learn more complicated application of functions but that is to be expected, even I feel like though the course has been pretty easy so far it is starting to get a bit harder. Although I don't find it hard enough yet to be causing me troubles. One of the reasons why I've not faced any difficulties so far may be due to the fact that every week I review what we learned in lectures. This helps me to strengthen my core and do amazing on the quizzes and tests. I am especially grateful for the weekly exercises given to us since they are the perfect way to review and test my knowledge.


With all this strengthening of the core concepts I have even been able to produce my own image on Dr. Racket. I was just reviewing one day when I thought that perhaps by applying all the knowledge learned in class I might be able to create an image of my own. After a few tries I got the hang of using different functions and was able to create some images. Though it is just a simple image now I hope to create an even more complicated image later on as we learn more in the course. One of the images I really enjoyed learning were fractals. When I saw that image on google before I wondered how this was created but compared to my initial thoughts the actual function to create the image was quite simple. This has me excited for what's to come next in lectures.

As I mentioned before in my previous blog, in the beginning I was having trouble with understanding some of the application of lists however now after having reviewed and practicing on my own I feel like the function list is now one of my strong points. I looked back at my notes then I tried to make my own lists and fiddled around with them, getting bunch of errors in the beginning, but that made me realize what I was doing wrong and helped me to understand. Another thing I am starting to have difficulties is on the assignment we have. There are repetitions, functions within functions and conditions as well and when all combined it starts to get confusing. However, I think that if I sit down and go through each function one by one I might be able to understand.


Usually when I am having trouble I like asking questions in person because for some reason whenever I ask something online such as on Piazza I tend to not understand or I am not able to properly ask the question I want to know the answer to. However, since I have lectures when the tutorial is happening I can't ask questions then either so in the end I have to rely on Piazza. Learning that there is CS Help Centre now I feel like I would probably use those hours to ask my questions. Though I would probably mostly have questions on the assignment only since I find the lecture material easy or at least something I can figure out myself.

Sunday, 22 October 2017

Second Appointment with Dr. Racket

Last week we didn't have any lectures only a test so there wasn't anything new learned. At most all I can say is that I was grateful for the past exams to study from. When I was studying in the beginning I was confused on how to go about answering the questions but after some practice I got the hang of it which allowed me (I think) to do well on the test.

This week however, I loved the lectures. The thing I was most excited for, how to make different images/designs was taught. I was surprised as to how such complicated images were formed with such simple functions. This showed me that even all the difficult and complicated stuff are just extensions of the basic functions we learned in the beginning. We also learned another application of lists; lists within lists. In the beginning the list function simply confused me but after constantly working with it and practicing it I got the hang of it. I feel the same will happen if I just practice with this application of lists as well, because for now I am a bit confused about it.

Friday, 6 October 2017

First Appointment with Dr. Racket

Welcome ALL to my blog and I hope you enjoy your time here. I am just your average curious mind who wishes to learn about programming and this blog recounts my time spent with Dr. Racket. 


Many ask what is the importance of programming, what I'd like to ask how is programming not important in any way. In this era of technology where almost everyone has one type of electronic device, many do not know the full potential of those devices. Programming is also important in other fields of study. I'll give myself as an example, I am a life science student and when performing research experiments the organization and interpretation of the data recovered is a vital task. DNA is known to be the basis of life and all it is in reality is just a code composed of 4 letters meaning that life is simply information expressed in physical molecules. Thus the knowledge of creating programs capable of storing and managing the vast amount of data being uncovered in labs is important. By taking this computer science course I plan to expand my arsenal of skills by including knowledge of programming.

When I first heard about programming I thought it would be like what you see hackers do in movies, a bunch of incomprehensible sequence of letters and numbers used to hack into computers however that was not so. My first experience with programming was in high school where we had to design our own website without using the existing website making platforms on the internet. To my surprise programming was much easier than I initially thought, also since we were using the program Adobe Dreamweaver it was a bit easier to design the website. When I took this course I was thinking it would be somewhat similar to when I used Dreamweaver however that was not the case, though different, Dr. Racket is still pretty interesting and I feel that it fits my image of programming better. Only using codes for programming is more interesting and surprisingly it isn't difficult memorizing the different function calls. 

In my honest opinion I didn't think this course would be much fun and it would be a lot of memorization. However after the first few days of lecture I started enjoying myself. The thing that I found the most interesting was how simple codes can create different shapes. The different images and designs that were created truly blowed my mind. If you think about it letters and numbers don't leave much of an impact however later when you get their result it is truly baffling. So far we have only learnt of different functions and are just at the basics but however later I feel as we learn to apply these functions to create something that is when it will truly get interesting. As I said before that since we have just started to delve into the material overall the course is pretty easy. All the functions are much easier to remember than I initially thought and since I am a life science student one of my strong points is memorization. I can remember most of the stuff taught in lecture in just one go which make it easier to study for the quizzes. Just by going through the posted exercises at the end of the week I can ace my quizzes. I find that these weekly reviews are really helpful since you can refine the knowledge you gained in class and the exercise also considers the many simple mistakes a person could make by purposefully asking questions such as why would this statement produce an error. 

Since I am taking this course because I feel like it will help as I go into the field of research I'm interested in learning about computer graphics which will allow me to construct images of different organic molecules. I'm also interested in knowing how programs are developed since it will help me in creating my own program. Though I might not necessarily go into those fields I still wish to know a little about them to satiate my curiosity. Seems like this curiosity of mine will just make my life harder. 

Seventh Appointment with Dr. Racket

Finally we reach the end of the course. After almost 4 months, the course is finally reaching its end. I came into the course with scepti...