Monday 1 December 2014

Review for Exam, A3, and Merry Christmas!

I cannot believe that this could be one of the last slogs I will ever write.  It makes me feels so nostalgic, I wish it were september again...

I love this course so much.

Just kidding, I don't.

But what I do love about this course is the logic stuff we learned at the beginning of the year, the Halting Problem as it relates to theoretical computer science -- I think it's cool, and Big O, Omega.  The expression of statements using logic symbols and the manipulation of logic symbols, although it may seem like a small I thing, I think it is truly profound.  To use an analogy, consider when we were in Grade 9 learning algebra for the first time, with the x's and the y's.  Who knew solving for x could be so easy, all we need to do is move around some alphabetical letters across equal signs!  Yet, at the same time, it is not something that we could see right away.  The technique takes research and rigorous proving, and what resulted is the mechanization of reasoning!  Similarly, the commutative laws, the negation rules, the distributive laws in logic allow us to mechanize logic -- simple in hindsight, but profound.  The Halting Problem is, for the same reasons as above, quite interesting.  I remember that in the year 2000, the Clay Institute posted 7 math problems that are considered the hardest and most important in its implications.  One of them is a computer science problem, P vs NP. The question of the problem is "can a computer that can quickly verify whether a given solution to a problem is correct also solve the problem quickly?"  When I compare the Halting Problem with the P vs NP problem, I find that theoretical computer science is very imaginative, that is to say, it requires vision.  Both Halting problem and P vs NP are problems that were proposed long before we had our sophisticated computers today, and yet somehow, people across every generations up until now are expected to attempt to prove it, which can only be done with vision and insight, and it also requires philosophy.  My bit about philosophy might sound incredible but I would argue that philosophy is needed if we were going to solve a problem related to an abstract thing as a "computer", a machine that we do not know how it would look like in 50 years.  It requires deep thinking,  I love deep thinking.   Tying in with all of this are Big O and Big Omega, since "quickly" in the N vs NP problem implies an arbitrary standard of running steps.  It seems like I am kinda doing a summary of how I feel about the course material, but I guess I also am trying to say that I had no clue what I this course has in store for me, and I think that the people behind the course could have done a better job in explaining why this course builds-up to something greater, namely, theoretical computer science (who cares about practicality!).

Reviewing for the exam, I am happy to say that I recall most stuff and that I understand the materials well enough for me to be confident about the exam.

It's getting pretty cold as we near Christmas, but what would warm me up is a great mark on the exam!   Perhaps I might get Larry a nice Omega for christmas.

*not hinting at bribery or anything... *

Merry Christmas and a Happy New Year.
* I wish Uoft were harder*
*jk jk*

Friday 14 November 2014

Bad Week, but time to move on!

Dismayed as I was with my results for Test 2, greatly below my expectations, the only thing that I can  do now is move on, be strong, and be aware.  In hindsight, for example, I could have put in a bigger effort at looking over the materials given for reviewing for Test 2, such as past tests, solutions for a2, solutions for past tests, etc.  Oh Well! At least I did well on the a2 for CSC108.

I find this week's lectures on proving Big O and Big Omega quite simple, in the sense that, for polynomials at least, the proofs are quite straightforward.  Once you get how to do it, it is very simple to just apply the process, which becomes mechanical, over and over again.  Hopefully, Big O proofs will always remain that easy, but that is probably just wishful thinking.  The pattern that I am noticing for proofs of any properties of polynomials in general is that they are quite easy to do.  In MAT137, delta-epsilon proofs of polynomials are simple, proofs of the derivatives of polynomials are simple, and so is the proofs for Big O.  The halting problem stuff and computability is a understandable but the proof of why initialized(f, v) in non-computable is kinda confusing, I definitely need to ask about that.  I reviewed it enough to understand how I could prove it but I do not have a clear understanding of the proof.

Fingers crossed, I hope my assignment 2 will have great results to make up for the test 2 blip.

Sunday 2 November 2014

Big O problems and Running Steps

Doing CSC108 assignment 2, I can definitely see how calculating the Running steps is important.  An assignment that requires making a lot of functions and some of them complicated, I needed to make the functions as efficient as possible to save time unless I want a program that takes 10 minutes to finish.  At first, I was frustrated because my program was taking so long to finish, and I needed to cut back on the "steps" needed to complete the program so i went back to clean it up.  

I find that Big O and running steps problems could be hard because I'm not used to recording the iterations in my mind, so I definitely need to do some practice, especially since some functions can be very complicated, and then translating the iterations into a formula.  Hopefully, either I get good at doing this or test 3 will be merciful regarding running steps and big O problems.  

Sunday 26 October 2014

It's not logic, It's intuition.

The mass public refer to someone who is good at math as "logical", that math is a "logical subject."  I think this stereotype should be broken once and for all, from doing proofs in the past week for assignment 2 and doing the homework, it is clear to me that math is creativity, it is intuition, to have the instincts to see how a math statement can be manipulated from antecedent to conclusion.  It is not just logic that is guiding the process, for, how can anyone, say that they" logically" arrived at the delta for a delta-epsilon proof for the limit of the function sin(x)/x as x approaches 0, such that the resulting limit is 0?  Or how can anyone prove that there are an infinite number of prime numbers using logic? As we have all seen in class -- the proof was a proof by contradiction,  reducing the alternate assumption "there are finite prime numbers" to absurdity.  I was lucky, from having experience with doing proofs in MAT137, I had already obtained a toolbox of strategies and techniques I can employ doing proofs, but some of my classmates may struggle, especially with delta epsilon proofs.  So I say to my classmates that this set-back is not because of logic, don't worry, what all of us are really lacking is intuition.

Friday 10 October 2014

Relief as test one is over. Onward to proofs.

Yay! Test one is over and done with.  I am quite happy because I think I did pretty well on it, judging from the sample solutions given.  This week we learned the structures of proofs, which was quite interesting, and some of the stuff, like assuming the antecedent and proceed from there to prove the 'then' part, are exactly the same as what I have learned in MAT137.  I like the fact that the general guidelines for proofs is the same across subjects, and it is very cool that computer scientists have to do proofs as well.  It has not been too hard because we are just learning about the skeletons of proofs, but I am sure when we tackle actual proofs, heads will start rolling.  


Friday 3 October 2014

A Meditation in Logic: A 180 minutes journey through the mountain of Course Notes

I did not even fathom how much my understanding of CSC165 materials was lacking.

It was Tuesday night, another dry lecture by Larry from 6-9;  the self-evidential nature of CSC165, or so I thought, clear as daylight.   The dawn of my realization of my ignorance was not so much the materials pouring from the slides, but rather the endless rumbles of the classmates beside me, rumbling about assignment # 1, the hill that must be climbed by friday at 10 p.m, swiftly gaining as the wind of time flows by.  Piquing my senses, I drew my eyes over the assignment, experiencing it for the first time on Tuesday night.  My star has graced me on that night, for if I did not look at it on that day, I would be utterly lost, helpless, frozen to the bones as October arrives with its deathly chills.  I was blinded to the difference between if - then statements and conjunctions-disjunctions, the importance of vacuous truths, and the relationships between all of them, as either predicates or sets.  I needed to learn quickly, if i were to translate the english statements given in the assignment and negate it into mathematical language correctly, and be on track for the upcoming term test on Tuesday.  There were two paths I could take to understand what I needed, I could consult De Morgan's Laws or I could think about them, ponder upon them, until I arrive to an intuitive understanding of them.  Stubbornly, I went over Course Notes and meditated for approximately three hours on the materials.  This was Wednesday.  The answers did not come fast, there were important distinctions, key observations about the nature of each symbol, that I needed to make and to be throughly satisfied with my understanding of them.  It was a RenĂ© Descartes moment, where I contemplated on the course material and challenged my assumptions about them,  to think as if it has never been thought about before.  I was in deep water, and all around me were mountains needed to be climbed, the Tree of Knowledge awaiting, the hill of assignment #1 in the way, and I knew that if I conquered assignment #1, I would be one step closer to this Tree and its fruits.  Through my 180 minutes journey through the mountain of Course Notes,  I am one giant step closer to understanding the materials shining from behind Larry, which I can only hope will be enough for the coming days, as October edges closer.



**I would also like to add that Larry is a cool guy and that no insult is meant when I said the lecture is dry.  The term simply suited the environment of the piece.**




Friday 26 September 2014

The intersection of CSC165 and MAT137

Vaguely this week, CSC165 and MAT137 have been indistinguishable in certain aspects.  On some days, when I'm drowsy enough, I would associate CSC165 more with math than computer science. The work load from these two courses have been themed around the same thing: symbolic math statements.  Reading symbolic math statements, understanding them, and converting english sentences to symbolic math statements.  Both course works have fed on each other, and helped in the general understanding of math's symbolic language.  For MAT137 problem set #1, we were asked to identify, from a list of choices, which one[s] are proper definitions of a periodic function, write out proofs using the toolbox of math symbols, and create sets of numbers that satisfy a statement.  For CSC165, we were asked to do negation, disjunction, conjunction, and truth table exercises.  These exercises require practicing math symbols, and both offer a different viewpoint in how to think about these math symbols, thus furthering the understanding of the course works and the symbolic math language.  For example, the upside-down "U" symbol used in math means the intersection of two numerical sets, but in computer science, it could be an intersection of two qualities, for example, 'red and Ferrari'.  Understanding the different usages of the same symbol allows me to expand my  horizon on how to be creative with the symbol and the meaning of the symbol itself.


Someone should really update the math calendar to say, recommended: CSC165.