Sunday, 20 January 2013

Post #2: Venting about Venn diagrams

Many things happened during week 2, including:

a) the first tutorial session and quiz
b) lectures on new topics such as statements, sentences, implications, contrapositives, etc. 
c) the official release of assignment 1
d) the posting of tutorial 2 exercises

As I sit here listing the little and not-so-little milestones accomplished in week 2, as well as the upcoming exercises and projects, I can't help but feel a bit stressed. There's simply so much to do (all day, every day)! The weekly tutorial exercises, quizzes, and SLOG are ingeniously well-planned in that they literally demand consistent and regular effort from students -- not keeping up with the coursework is just not an option. Since I realized this early on, I've made some effort to read lecture notes ahead of time so that when Prof. Heap actually talks about the planned topic, I am able to understand it more fully and clearly. This has worked quite well for me. For example, I had no problems identifying the antecedent and consequent in implication statements such as this one: 

"I get excited (consequent) whenever marks are uploaded onto MarkUs (antecedent)"

In general, I think I managed to grasp the concept of the things learned last week. However, there were some concepts that were quite confusing for me -- namely, the ambiguity of the Venn diagrams and their multiple interpretations. The corrected Venn diagram for proving the statement; "There is one of the three python programs that fails all three test suites," false in 2(d), looked like this:

This is what I had put down before: 
My interpretation of the Venn diagram was that we had to find one specific configuration of programs and tests that would yield a solution to either refute or affirm the statement. Thus, the "O" in the intersection of Q and T, as well as the "X" in the area of Q-not-in-T, should read something like "All three python programs pass all three test suites," which would suggest that none of the three python programs fails all three test suites (therefore the statement is False; this is what we wanted). The solution put up seems to be the general solution, which combines three possibilities...

a) All three python programs pass all three test suites.
b) Two python programs fail all three test suites.
c) All three python programs fail all three test suites.

...so that each area of the resulting Venn diagram is a "?". This makes sense because it is the general case and accounts for all possibilities. At this point, I'm confused as to whether we are required to find the general solution or a specific solution when we're doing these Venn diagrams. As well, the "?" in all of the T-not-in-Q parts is also somewhat unclear for me; shouldn't an "O" in the intersection of T and Q automatically force the other parts of Q and T to both have "X"s? So why does T have "?" in all of the solutions? Since Venn diagrams are extremely important for this course, and these issues have been bugging me since last week, I'm going to clear this up as soon as possible with either my TA or Prof. Heap this week.

While I'm at it, I also have to ask Prof. Heap a few questions about assignment 1 (for example: how much he expects us to write when he says "Explain" for question 4). My partners and I are planning to work on assignment 1 early this week so that we can have time at the end to fix errors and revise. Hopefully everything will run smoothly in the upcoming week! Until then, ciao. 






Tuesday, 15 January 2013

Post #1: Introduction to CSC165

Hello world! (clichéd yes, but we are all programmers here)

I will be describing in this post my overall impression of CSC165 based on the first week of lectures, as well as how I plan to tackle the unique challenges presented by this course. 

From the very first week, I learned that I was actually excited about the content of CSC165. The topics presented (universal and existential quantifiers) seemed interesting and were highly relevant to my other studies. In MAT137 and MAT223, we constantly use the existential and universal quantifiers in writing proof statements, so I was extremely grateful that this topic was covered early on -- I now have a much clearer picture of the relationship between the universal and existential quantifiers, as well as their exact meanings. For example, I previously had no notion of the relationship between the two. Learning that they are anti-symmetric makes it easier to determine the conditions which render each true, or false. Since CSC165 will be going over proof methods, it will certainly be a big help in my other math courses!

But, the best part is -- the usefulness of CSC165 doesn't stop there. Reading an excerpt from Polya's "How to Solve It" also made me realize that the general approaches of problem solving aren't just limited to math and computer science questions; they can be applied to life itself. I'm certain that the skills and ideas learned in CSC165 will not only help me become a better problem solver, but a better person in the process. It's always useful to adopt different viewpoints in which to see the world. Developing a strong background in logic will also help one traverse the complexities of daily life. I'm hoping that by the end of the course, I will have learned a lot and been able to apply this knowledge to aspects of my life. 

Having said this, the journey won't be easy. In order to get what I want from the course, I will have to work really hard to ensure that I'm on top of things. Falling behind is definitely something that I'd want to avoid. I plan on developing a habit of reading lecture notes a few days before class so that I'm always one step ahead of the game. If I don't understand concepts, I will seek help from my instructor and TA. Hopefully, by employing these methods, I'll be able to become a better student and a better problem solver.