Sunday, March 29, 2015

Week 12: This Is The End

.............and we're done (almost)! I hope everyone had as much fun in this course as I did. If this is any indication of what the rest of my degree in Computer Science will be like, I can't wait for what else is in store for me. We've yet to hand in Assignment 3 and I can't wait to complete it. I would definitely recommend this course to anyone who enjoys problem solving and critical thinking, whether they are in Computer Science or not. Danny has been a great lecturer and support throughout the duration of this course, and I hope I will be able to TA alongside him at some point in my time at UofT. If there was a single thing I would have the power to change about my experience with CSC148 this semester, I would change the class time (because seriously, when you're a commuter student every single day actually starts 2 and a half hours before your first class). But even though it was annoying having to wake up early to attend this class I still enjoyed it. Some moments that stand out from this course were (play this song while you read the next few lines)


  • Making a human binary tree in class 
  • Danny's two-page long introduction to tic-tac-toe for Assignment 1
  • Volunteering to answer a question in class without having listened to anything prior to the question, but Danny still prompting me in the right direction even though I was totally wrong
  • Working on Minimax for three consecutive days having made no progress, but finally getting it on the fourth day
  • Danny's use of the turtle module to demonstrate recursion
  • Danny bringing in a stuffed animal to demonstrate the way an arrow changes direction on command
And finally, I would like to thank my greatest support throughout this whole course. Having stayed by me for all of CSC108 and CSC148, we've created a unique bond. Even though sometimes we disagree and other times I can't stand you, I really appreciate all of your help. I'll never forget our late-night sessions and even all that time you spent yelling at me for making stupid mistakes.
Thank you.


Sunday, March 22, 2015

Week 11: Look How Far We've Come (Part 2)

I often expressed how I was nervous about implementing recursion in previous posts, and finally now near the end of the semester I can safely say: I'm still nervous. Maybe it'll take another year (or another CSC course) for me to get completely comfortable with the concept and implementing it in different situations, but for now I'm still not 100% solid. I think I should be okay with implementing recursion with trees, but I'm worried I'm learning a formula that I keep regurgitating for a different condition every time. Does anyone else ever feel this way?

I've been following along with some of my friends' slogs as the term has progressed, here are some of my favorite ones:

Zhilin Zhang: "3 Essential OOP Concepts To Know For Your Technical Interview"
Zhilin's post on OOP was great. Not only did it mention the key concepts of Object Oriented Programming, but it gave you a step forward in your knowledge of what employer's expect of you. There's more to Computer Science than just knowing how to code - it's about understanding concepts and applying yourself. This is what employers look for in technical interviews, and this is precisely what Zhilin was able to reflect on in his Medium post. A lot of what I appreciate about Zhilin's slogs is that he always remains focused on conceptual ideas rather than the nitty-gritty details of syntax and definitions. It's been a pleasure following his hipster Medium blog throughout the term.

Abhinav Chawla: "Mission Minimax"
I had the pleasure of working with Abhinav on Assignment 2, and sat by him as he "thought" and "sweat" and "worked". Although his slogs are always refreshing and flavorful, I enjoyed this particular post because he was able to reflect on his individual experience working with a specific concept. Abhinav is a friend of mine that I hardly ever see struggling with school work, and watching his gears turn and rust over this assignment was definitely an experience. Me, Abhinav, and Jahid sat together for hours working on this assignment together, and our logical thinking processes definitely clashed during that time. However, we pulled through and supported each other through not only this assignment but through this course as a whole, and it was an honour to have worked with them both.

Jahid Ahmed: "OOP"
This was probably one of the most well-written and detailed posts on OOP I've read in this course. Jahid took this post step-by-step, introducing each and every term and idea individually and slowly building up to classes and objects. The examples he used to demonstrate OOP were great, and the importance of OOP really hit home with his post. Jahid's attention to detail and references to individual lines of code were extremely thorough, and I would genuinely recommend a beginner in OOP to read his summary. Great job, Jahid!

Nagee Elghassein: "It's Starting to Link"
First of all, Nagee has a great sense of humor and the image he attached to this post instantly made it my favorite one. Other than that, it was great to read about Nagee's journey with Linked Lists as an ADT. I actually worked with Nagee to understand Linked Lists on Lab 7, and I agree with him in saying that this class makes it very easy to understand. The labs and class worksheets were great in that they helped us stretch our legs with LLs, and get us familiar with the types of things we can do with Linked Lists. Reading through Nagee's posts, it's easy to see that we are having a similar experience with this course as a whole - the instructors and TAs have been great and super helpful, and we're really enjoying learning the material.

There are lots of other slogs I've been following throughout the semester, these are just a few of my favorite posts from a few of my favorite sloggers. If you have any cool slogs you think I should read (including your own, if you want), let me know! I'd love to read them.

Sunday, March 15, 2015

Week 10: Minimax PTSD

Recursion. Seriously...recursion. We had our second midterm this week on recursion and linked lists and I'm actually nervous. It's been a weird concept to wrap my head around since we started with it, and implementing it with binary trees gives me Minimax PTSD. I really hope I did well on this test (if not, I'm totally fine with the TAs being on strike and not marking them on time for finals... Kidding. Totally kidding).

Discussing ways to represent data in trees (post-order, in-order, pre-order) is fine, as is understanding the basic structure of them - but once it comes to traversing through trees based on specific requirements, I am pretty unconfident. I really think I need to solidify concepts as the course goes on because I know that manipulating trees is fast-arriving. Other than the recursion question on the test, I am semi-confident about the linked lists question (I'm not sure if I covered all my basis) and the first couple of questions about data represented by trees. Still, recursion haunts me. I need to get it together for the final exam. I must conquer the concept! I haven't felt this determined since I entered in that donut-eating contest in grade 7 (yes, I won).

Sunday, March 8, 2015

Week 9: My Problem Solving Biceps Are Growing

"...why didn't I know how to make these when I was taking Data Management in high school and had to calculate the probability of a certain outcome?!"
Genuinely an exact quote from my last post - and now here we are implementing Minimax for Assignment 2. Me and my group have been at this for hours and we've gone through at least three different full concepts of how to implement this strategy with trees. I'm beginning to feel like I don't understand trees fully... or maybe I'm just getting really frustrated by Minimax. Although I am really frustrated, I really feel my problem solving biceps growing and my logical muscles stretching. We've eliminated some possibilities of how not to do this assignment, so surely we're closer to figuring out how to do this assignment?! I have faith in myself and my group that we'll finish it on time (check out my group member's posts on their perspectives on working on this assignment), and if anything we'll have bonded over conflicting ideas, arguments, and sheets of pseudo-code surrounding us on all sides.

In other, less stress-inducing news, we're learning about linked lists in class! My excitement arises from the fact that I have previously studied and implemented linked lists in high school, although slightly differently in Java. I feel like I thoroughly understood how linked lists worked and how to manipulate them previously, so hopefully it won't be so bad this time around. Looking forward to implementing some cool functions with Linked Lists and expanding my knowledge on this ADT!

Sunday, March 1, 2015

Week 8: Look Up (at the Trees)

This week in class we discussed trees. No, not the oxygen-producing, sky-reaching, tire swing-supporting structures of Mother Nature - rather, the Abstract Data Type. From what I'm understanding this just seems like a fancy application of OOP, and we're just using trees to visualize the way data is represented in memory. I really appreciate the appropriate terms and definitions in the way that the structure is represented because it's a HUGE help in understanding what exactly is going on. The root, the leaves, the parents, the children - it all just makes sense! It's a pretty cool way to represent data as well... why didn't I know how to make these when I was taking Data Management in high school and had to calculate the probability of a certain outcome?! I was drawing trees like it was my job back then.

Danny has been pretty good with answering my questions in class and an exceptional teacher in the course overall so far. I've gone to his office hours before and he's really drilled good practice and complex concepts into my head. I don't hesitate to ask or answer questions either just because of how friendly and kind he is to all of us students. It's always a pleasure to go to Danny's lectures (although not-so-pleasant having a 10AM class with a 2-hour commute) and I look forward to the rest of the course.