I know I know I know, I promised to be more dedicated to this sLOG thing and in my defense, this slog was a lot better than my previous slog (Shoutout to my first sLOG entry). So with this post, I'll be covering week 11 and week 12 for slogs.
Looking back at my sLOG post from week 5, I realized how bad at recursion I was at the time, and how much I've improved since then. Considering that during that week I couldn't even manage to solve the problems that were given during the lab. And now, for the first time in my academic career, I finished a computer science assignment about recursion ahead of time. And looking at other people's sLOGs it wasn't easy learning recursion either.
Check out this guy's slog:
http://148choi.blogspot.ca/search?updated-max=2015-02-14T01:11:00-08:00&max-results=7
Not only will you notice that he has the exact same template for the sLOG, but he also shared my struggle with recursion! However, I believe he had an easier time figuring out recursion than I did.
Now regarding the last few weeks of class, remember when I said that I've been many many classes in earlier sLOG posts? And also that I might not have done too well on the second term test? Yeah, scratch that, I did very well on the second term test. Infact, I got an 89% on it, probably the highest mark I've gotten since I got into this university. And no, it wasn't a mistake in the marking. I'm not trying to say that I got away with a decent mark through cramming, but that's what indeed has happened. Also, during the last few weeks, we've been introduced to big O notation again! I remember this very well from csc165 and I'm just happy that we don't have to do proofs in this course. Essentially big O notation is how we count the complexity of a program (a.k.a. how many times it runs). For example, if you have a simple for loop based on a variable n, the big O notation of that is O(n), since the program runs n times.
And, I guess that's it for CSC148...
Sunday, 5 April 2015
Friday, 27 March 2015
Welcome back TAs
Yay the strike is over, unfortunately it took me until today to realize that my sLog entries are still being marked nonetheless so that was a mistake... But for this post I'll try to make it extra long to compensate for the 3 slogs that I missed!
Anyways regarding the week where the assignment was due, conceptually it wasn't a rough assignment but it was just difficult to get the program to work in general. Especially when my group and I started working on it only a couple days prior to it being due. So yeah, lesson learned, even if you're busy, you gotta spread out the variety of the workload. For that project everything else worked well except for the minimax class. Even though the minimax class is worth roughly 45% of the mark, I think we'll pass at least?
Now regarding the week of the second term test, to be fully honest, I feel completely unprepared for that test, it wasn't because of the course, but rather due to my own study habits. Ever since the strike began, I've lacked a lot of motivation to even complete the labs on the CDF website. Nonetheless, the test wasn't too bad (thanks to the cheat sheet and the massive amount of cramming), but due to my recent laziness, I can tell that I'm going to need to spend a lot of time trying to catch up in my studies
Alright, so the week didn't go as planned, I did not work on comp sci at all. Due to an illness in the family, I've been in an even greater motivational slump. I've essentially done zero work all week for any of my courses and completely stopped going to class for CSC148. Although I do wish my prof would post more content online, to help me catch up on what I've missed. Even more so since she hasn't posted any class content on the website since March 16th. Although, looking at Heap's slides do help a lot regarding content on efficiency. I can't wait to get my groove back and work on learning program efficiency concepts and finally have a TA for once to guide me through the struggle that is CSC148!
Saturday, 7 March 2015
Confessions of a bad student
Man last week was actually an insane week school wise, as a Rotman Commerce first-year, I was really focused on my required courses this week because of their term tests (ECO100 and MAT133). So here's the confession, I didn't go to class at all for week 7. I've been studying very late at night all that week and couldn't wake up early enough to make it to the morning lectures. Nonetheless, I try to keep up by reading the online notes and slides and trying my best to do the assignments. Another confession, I also skipped tutorial/lab too that week, so... its gonna be hard to gather opinions since I hardly participated in anything comp-sci related. This also means that I have not even touched assignment 2 yet so... wish me luck!
Anyways, this week the class learned about binary trees which I found easy to grasp since its essentially a tree ADT but with only 2 children. Then again, Prof. Horton probably raised some good points about the binary trees, so I'll have to ask some classmates to see what exactly I missed. Hopefully I can catch up and be ready for the next term test for this class!
PS. If the T.A.s are on strike... I wonder when they're going to read this sLOG post...
Anyways, this week the class learned about binary trees which I found easy to grasp since its essentially a tree ADT but with only 2 children. Then again, Prof. Horton probably raised some good points about the binary trees, so I'll have to ask some classmates to see what exactly I missed. Hopefully I can catch up and be ready for the next term test for this class!
PS. If the T.A.s are on strike... I wonder when they're going to read this sLOG post...
Monday, 23 February 2015
HI TA's, wait since you guys might go on strike, does that mean you're still gonna read these?
Nonetheless, I added some more paragraphs to my Object Oriented Programming post, hope you guys like it!
Monday, 9 February 2015
Summary of OOP
OOPs. I never posts these at the regular schedule that I want to. Speaking of OOP (Thanks, I know it's an amazing transition), let's talk about Object Oriented Programming! So in my opinion Object Oriented Programming is just as it sounds, you make a program based around thinking its an object rather actions/logic. For example, think of a car. A car has attributes such as color, engine, number of doors, etc. Just like a class, there could be a car class with the same attributes surrounding that object. Additionally, the car class may or may not be able to offer services such as being able to move a certain speed. Similarly, we can make a method for the car class that allows it to move at that speed.
If you think about it this way, OOP can be applied to how we classify things as well. The 'car' class that we just made can have a parent class and sub-classes as well. We can classify a generic vehicle class as a parent class, and we can also classify a specific brand car as a class, for example a BMWclass. With OOP, programs are revolved around creating an instance of an object, where classes are the instructions of how to make the object, and then there can be instances in other people's code. Hopefully my crappy metaphor made some sense, if not here check out this video, it helped me when I was learning about classes!
CLICK ME!
Furthermore there are many benefits to OOP! One of them is its modularity and re usability. The objects created from classes can easily be reused in other code, and also be modified just as easily to better suit the task through implementation (making a subclass). Because of its modularity, parts of a certain class can be changed without syntax issues or compatibility issues (if modified correctly that is). This allows for older versions of code to be modified easily without repercussions.
However, personally the most important benefit of OOP is its design concept. Complex large programs are naturally very difficult to write, but thanks to OOP, it divides the problem into smaller more manageable problems. Because of this, there should always be an extensive planning process reduce the number of possible flaws. Even with those flaws, because of how code is separated into classes (ie. different objects), flaws are easy to fix and locate.
If you think about it this way, OOP can be applied to how we classify things as well. The 'car' class that we just made can have a parent class and sub-classes as well. We can classify a generic vehicle class as a parent class, and we can also classify a specific brand car as a class, for example a BMWclass. With OOP, programs are revolved around creating an instance of an object, where classes are the instructions of how to make the object, and then there can be instances in other people's code. Hopefully my crappy metaphor made some sense, if not here check out this video, it helped me when I was learning about classes!
CLICK ME!
Furthermore there are many benefits to OOP! One of them is its modularity and re usability. The objects created from classes can easily be reused in other code, and also be modified just as easily to better suit the task through implementation (making a subclass). Because of its modularity, parts of a certain class can be changed without syntax issues or compatibility issues (if modified correctly that is). This allows for older versions of code to be modified easily without repercussions.
However, personally the most important benefit of OOP is its design concept. Complex large programs are naturally very difficult to write, but thanks to OOP, it divides the problem into smaller more manageable problems. Because of this, there should always be an extensive planning process reduce the number of possible flaws. Even with those flaws, because of how code is separated into classes (ie. different objects), flaws are easy to fix and locate.
Monday, 2 February 2015
Recursion and A1
Wow this week went by hella fast! Time flies when you're having fun I suppose. Anyways assignment 1 was loads of fun to make. It was a bit hard to get started because the assignment was initially very vague so we had to design our own classes and how they would interact. Personally I found that it wasn't the coding part that was difficult, but more so when you have partners. I was in a group of 3 and we had different ideas of how the classes should interact with each other, so it was difficult to coordinate and align our code together. Next time, we're gonna start planning specifically for each class and then start coding once all the planning is set in stone.
Now for recursion, it was pretty fun, definitely a lot of brain power was required for it. I found that tracing recursion was a breeze, however thinking about our own recursive functions was definitely difficult. I wasn't even able to finish the recursive function for the lab! For those who don't know, a recursive function is basically a function the calls itself to resolve a command. In a physical sense, it's almost like painting a wall. Paint() is going to paint the entire wall, but it's going to call itself within the function to paint smaller portions of the wall so that in the grand scheme of things everything is painted. Hopefully that made sense because it sounded a lot better in my head. I can't wait to learn more about recursion in class, especially since right now it's my weak point. See you guys next week!
Now for recursion, it was pretty fun, definitely a lot of brain power was required for it. I found that tracing recursion was a breeze, however thinking about our own recursive functions was definitely difficult. I wasn't even able to finish the recursive function for the lab! For those who don't know, a recursive function is basically a function the calls itself to resolve a command. In a physical sense, it's almost like painting a wall. Paint() is going to paint the entire wall, but it's going to call itself within the function to paint smaller portions of the wall so that in the grand scheme of things everything is painted. Hopefully that made sense because it sounded a lot better in my head. I can't wait to learn more about recursion in class, especially since right now it's my weak point. See you guys next week!
Tuesday, 27 January 2015
Uh oh, kinda late, but it's ok right?
Sorry haha, I had originally wrote this post on Sunday but I had forgot to publish it. Hopefully this doesn't translate into how I hand in my assignments.
Anyhow, let me tell you about my impressions of these first few weeks (Because I was told to, and thank god I was, otherwise I wouldn't know what to write). Personally, I've taken programming courses in High school, in both grade 11 and 12, extensively learning about java and other programming concepts. Seeing that python is a relatively simpler program so far what we had learn wasn't anything new. I've previously already learned about inheritance, between super-classes and sub-classes. It did take some getting used to as some of the terms are different (eg. Parent-Class vs. Super-class, self vs. this).
Furthermore I have notice that many other individuals from CSC108 are still having trouble understanding the implementation and benefits of classes. I was just like them after grade 11 computer science. It took a good month in grade 12 computer science to fully understand classes and use them effectively. (Shoutout to Mr. Burns, you rock!)
Although, in grade 12 computer science, we went through recursion very quickly and although I understand the concept, it's difficult for me to implement with great ease. Hopefully just like classes in grade 11, I can effectively learn recursion and master it this year!
Anyhow, let me tell you about my impressions of these first few weeks (Because I was told to, and thank god I was, otherwise I wouldn't know what to write). Personally, I've taken programming courses in High school, in both grade 11 and 12, extensively learning about java and other programming concepts. Seeing that python is a relatively simpler program so far what we had learn wasn't anything new. I've previously already learned about inheritance, between super-classes and sub-classes. It did take some getting used to as some of the terms are different (eg. Parent-Class vs. Super-class, self vs. this).
Furthermore I have notice that many other individuals from CSC108 are still having trouble understanding the implementation and benefits of classes. I was just like them after grade 11 computer science. It took a good month in grade 12 computer science to fully understand classes and use them effectively. (Shoutout to Mr. Burns, you rock!)
Although, in grade 12 computer science, we went through recursion very quickly and although I understand the concept, it's difficult for me to implement with great ease. Hopefully just like classes in grade 11, I can effectively learn recursion and master it this year!
Sunday, 18 January 2015
Oh no, more CSC slogs?
Hey guys I'm back again! Writing slogs for CSC165 was a real pain, but once again, because of the Heap meister, I need to write another one for CSC148! To those who are reading (Hopefully not the TA's), here's a link to my previous SLOG for 165, read at your discretion. :)
CSC165: The Struggle is Real - http://csc165f1.blogspot.ca/
Although I do like this SLOG format better. On the course page at least we get some more guidance on what to write for each slog post rather than writing based off a wide range of possible topics. This week's topic is about why geeks/computer scientists like us need to learn how to write!
One important reason is for comments and variable/function names within a program. Although this may not require high levels literacy and writing abilities, you'd be surprised the amount of times mistakes were made because of them. For example, 'Divides by 3' vs. 'Divided by 3'. However that's just the basics. Good communication/writing skills is an absolutely critical for computer scientists, we must be able communicate effectively to explain our thinking. We weren't raised to speak Python, Java, or other complex programming languages. Our human languages, is what allows us to communicate with each other most effectively. Imagine analyzing a 100 line algorithm without comments! That could take hours, where as the algorithm could be simply summarized within a small paragraph!
However, my favorite reason, is to be able to write glorious course notes for courses like this. Through writing and computer science skills was the great, glorious, grand-master, divine, Professor Heap able to attain his position as the professor of this course and enlighten us with his knowledge and profound intellect (Please give me bonus marks for this).
Alright so, I guess that's all I have to say for now, I'll let you guys know of my impressions of this course for next week so be prepared! It could be brutal.
CSC165: The Struggle is Real - http://csc165f1.blogspot.ca/
Although I do like this SLOG format better. On the course page at least we get some more guidance on what to write for each slog post rather than writing based off a wide range of possible topics. This week's topic is about why geeks/computer scientists like us need to learn how to write!
One important reason is for comments and variable/function names within a program. Although this may not require high levels literacy and writing abilities, you'd be surprised the amount of times mistakes were made because of them. For example, 'Divides by 3' vs. 'Divided by 3'. However that's just the basics. Good communication/writing skills is an absolutely critical for computer scientists, we must be able communicate effectively to explain our thinking. We weren't raised to speak Python, Java, or other complex programming languages. Our human languages, is what allows us to communicate with each other most effectively. Imagine analyzing a 100 line algorithm without comments! That could take hours, where as the algorithm could be simply summarized within a small paragraph!
However, my favorite reason, is to be able to write glorious course notes for courses like this. Through writing and computer science skills was the great, glorious, grand-master, divine, Professor Heap able to attain his position as the professor of this course and enlighten us with his knowledge and profound intellect (Please give me bonus marks for this).
Alright so, I guess that's all I have to say for now, I'll let you guys know of my impressions of this course for next week so be prepared! It could be brutal.
Subscribe to:
Posts (Atom)