Sunday, 27 January 2013

Post #3: Assignment won!


Ignoring my attempt at a pun (witty or not, it is infinitely better than "pain in the assignment"), this post, as you probably have realized already, will mainly be a recap of the past week (like always) along with comments on  my experience with the first assignment.

The week went by rather smoothly; the lessons on conjunction, negation, disjunction, and De Morgan's laws made sense to me. The semantics of "and," "or," and "not" are generally consistent between the fields of computer science, English, and logic -- which makes it much easier to intuitively grasp the concepts. 

This week, I also went to Prof. Heap's office hours. I went prepared with a list of questions and ended up gaining a lot out of the session. I cleared up my previous confusion with the Venn diagrams (hooray!) and learned one way of expressing "uniqueness" in symbolic form. Previously, I had been thinking about how to translate something like "There is one and only one soda left in the fridge" in symbolic form. From the second tutorial, we were shown how to express statements like "There is at most x ..." and "There is at least x ...", but not "There is exactly x ..." so I reasoned intuitively that it would make sense to intersect the predicates "There is at most 1 ..." and "There is at least 1 ..." in order to achieve "There is only 1 ...". Prof Heap showed me how to write this symbolically (which turns out to be super useful for assignment 1!). The trick is to say "there is at least one x in ... " and show that if "there are two of x in ... say x1 and x2, that x1 = x2". This way, you can be sure that the solution is unique. 

As for assignment 1, my partners and I finished and submitted it Saturday evening. We had been working on it for the past week sporadically, but really "seriously" began to work on it Friday night. The entire process went well; we used a Google doc to write down a preliminary draft of solutions, and then we all worked on editing and processing the final copy. This way, we were able to give each other constant feedback and work on the assignment at the same time. 

Working through the assignment actually turned out to be quite fun and insightful. At first, it seemed daunting (why are there so many questions! And why is it due so soon?!), but I can say it was an experimental sort of learning process. I got to apply all that I have learned in the past few weeks about negation, conjunctions, implications, etc. and actually thoroughly and deeply understand what I was doing. It's one thing to understand the concepts given in lecture, and another to be able to apply them. Actually going through the questions solidified my understanding of the course material, and finishing the project, I felt much surer of myself than before.

Also, I got to put truth tables to good use! My partners and I were discussing whether the negation of ¬ A  B was A ¬B or ¬ A¬B. Since the argument was going nowhere, I decided to use a truth table to figure out which one was the correct negation; after all, the truth values never lie. With the knowledge that the negation of a statement inverts the truth values, it turns out that quite clearly that the negation of ¬ A  B is ¬ A¬B. 


 So as you see, assignment 1 was all about experimentation; there were many instances where I arrived at an "aha!" moment after working through some of the questions, and many times where pure serendipity lead to amazing results. Working with others made the assignment more fun, and overall, it was a pretty darn good experience. 

That pretty much sums up my third week. See you guys next week!

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.