Monday 25 March 2013

March 25th Lecture

Today's lecture was mind blowing. Use a program that is impossible to write in order to write other programs that are also impossible to write? Remember that time Danny Heap asked to raise hands if you are not comfortable with material? I should have had all 2 hands and 2 feet up in the air at that time. Even tracing the navel_gaze program was tough, I kept on forgetting to lie to myself that Halt works. Either way, that was the most interesting thing I learned this year (even more interesting than Sociology). Though 'learn' is not exactly the word for it because I did not understand it but how well can I understand it anyway. I could say I do not understand it and then prove that if I did understand it, the snow would fall into the outer space (joke copyrights: Danny Heap). Not knowing how to implement a program was 'not full understanding' in my terms up to this day. I honestly thought everything could be implemented! But, yeah, how would you check if a program has an infinite loop without setting some certain time to claim it is infinite? I also was not comfortable with contradiction proofs up to this day but this actually taught me contradiction proofs more than anything.

Friday 22 March 2013

Just another blog

Assignment 2 and test 2 grades went well which should imply that I understand proofs. The simple kind of proofs anyway. I came to a pretty good understanding of the newer proofs too! But the bookkeeping is still troublesome. I can do it but it takes me quite some time, so practice makes perfect (quick in this case). I don't have any more to say so I guess I'll just add some meme to this post. Here is a good one I will laugh at it a few years from now.
 

Friday 15 March 2013

Test 2

The first question on the test was great, the second was fairly great and the third was the toughest, but it was also fine. The fact that I would always get marks for structure cheered me up a lot. Here is how I did the last question.

Assume x is a real number
    Then 0 > -1
    Then  |x|  > |x|- 1                                                # |x| means floor of x
    Then  |x| > x -1                                                  # x - 1 >= |x|  - 1 by definition and by transitivity of >
    Then  |x| + 7 > x + 6
Then 'For all x in Reals', |x| + 7 > x + 6            

I had nicer structure on the test and more comments but it was the actual proof that I found challenging. Transitivity of an inequality is confusing. Either way the test went well = D.

Wednesday 13 March 2013

A2 Reflection

I think Assignment 2 was great practice for proofs  and I liked it more than the first assignment (I like proofs). My partner and I began relatively early which gave us time for office hours and discussions. I was a little concerned for the structure and style but the solutions cleared a lot of confusion. I found the third proof to be the toughest but I went to office hours for the first time of my life and that was very very very helpful. I don't have much to say about Assignment 2 but I feel like it deserves a separate post.

Friday 8 March 2013

March 8 Lecture

Today's lecture was the toughest lecture of all times. I could follow it for the first half but the second half was crazy. We were using 'ceiling' of a number! So after class I asked if it was possible to do it without the use of 'ceilings'. It is impossible. My hopes were crushed. It had to do with j's not being reached with a larger i. I did not quite understand and nor would I understand on the spot. But if it was possible or not is really all I needed to know to learn it over the weekend. Here is a list of questions to explore:
- Why divide by 3 and not any other number? Because the program has 3 loops?
- What are some lists that would give that program best case performance?
- What happens to that if statement in best case and worst case?
- How to 'upgrade' that program (and everything else Danny Heap said to do)
I am sure Heap answered all of this, but I either did not understand or was still trying to understand the part before it. Regardless, it seems like a very good way to understand best case performance. Which is something that troubles me.

Thursday 7 March 2013

Efficiency / Step tracking

At this point of the course we began, I guess, using math to calculate efficiency of a program. I find this to be the toughest part of the course (though this is slightly tougher than proofs and slightly easier than whatever we are doing next). Any new topic is really just another 'struggle'. Though, struggle is a bad word for it because I still enjoy the course. I find calculating the number of steps confusing but it will come to me with practice. It is rather interesting and, best of all, it really helps me understand how coding works. It also helps me 'imagine' the program, step by step, which is one of my biggest goals for this year. I found the debugger very helpful for this topic. I almost wish I were a debugger, and hopefully I will be one soon enough with a lot and a lot of practice.

Friday 15 February 2013

Half way through the course reflection

The course was going very well until the proofs stepped in. With the proofs, I just don't understand where to start. I get the structure and then I get lost. I try to think of different plans and where they'll get me, but it is tough to even think of one plan. My goal is to develop strategies that connect one statement to another. Either way, I like proofs. Proofs always have a given destination, I'll just have to work on finding the paths.