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.
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.
- 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.
Monday 4 February 2013
Assignment #1 'reflection'
The first assignment helped me understand the material even though my grade for it won't be very pleasant. For the next assignment, I will find a group and put more time into it and think it through lots and lots more. CSC165 is such an ambiguous yet precise course. Sure there is a 'million' of solutions to a problem, but once you see the correct one, you understand why million - 1 is all wrong. So, precise attention to detail is now my goal for the future.
Friday 25 January 2013
Paper folding.
What to do on a friday night? Fold paper to develop an equation for it. So I got home and took a giant strip. First I wanted to record the foldings.
1 Fold: 1 down
2 Folds: 2 down, 1 up
3 Folds: 2 down, 1 up, 2 down, 2 up
4 Folds: 2 down, 1 up, 2 down, 2 up, 3 down, 2 up, 1 down, 2 up
I'll stop at 4, it should not be more than that anyway.
So now for a plan.
Plan A:
Organize the data in a 'cone'.
Plan B:
Organize the data in a 'cone' and break out everything in 1s
I'll start with Plan B. It seems more detailed.
D
D D U
D D U D D U U
D D U D D U U D D D U U D U U
So it seems like the D in the middle breaks the cone into two sides, where the left side is the previous line. Which makes sense because that middle D will always be the middle from the folding. But, now I am stuck at the second side. Well alright, maybe it'll come to me after I try to relate this to recursion.
Recursion is the reuse of a function. So our final step is the first fold, that creates a D in the middle. The middle position is all folds divided by 2 and rounded up. If x were to be the number of folds, then D's position would be (2x-1)/2 (The positions as in 1,2,3,4,5, without the zeros). OOOOOH the right side is the mirror image of the left side with U's and D's flipped. That creates a pattern, but a pretty 'have no idea how to put this in Python' pattern. So a line takes the previous line and puts it before the D. It takes the same line, flips the Us and Ds and builds it to the right side but backwards. Well, I tried to put this in Python, but recursion is far forgotten. But the pattern was found :D.
Moral of the story: Time to get coloured pencils and pens. It can really highlight important parts.
1 Fold: 1 down
2 Folds: 2 down, 1 up
3 Folds: 2 down, 1 up, 2 down, 2 up
4 Folds: 2 down, 1 up, 2 down, 2 up, 3 down, 2 up, 1 down, 2 up
I'll stop at 4, it should not be more than that anyway.
So now for a plan.
Plan A:
Organize the data in a 'cone'.
Plan B:
Organize the data in a 'cone' and break out everything in 1s
I'll start with Plan B. It seems more detailed.
D
D D U
D D U D D U U
D D U D D U U D D D U U D U U
So it seems like the D in the middle breaks the cone into two sides, where the left side is the previous line. Which makes sense because that middle D will always be the middle from the folding. But, now I am stuck at the second side. Well alright, maybe it'll come to me after I try to relate this to recursion.
Recursion is the reuse of a function. So our final step is the first fold, that creates a D in the middle. The middle position is all folds divided by 2 and rounded up. If x were to be the number of folds, then D's position would be (2x-1)/2 (The positions as in 1,2,3,4,5, without the zeros). OOOOOH the right side is the mirror image of the left side with U's and D's flipped. That creates a pattern, but a pretty 'have no idea how to put this in Python' pattern. So a line takes the previous line and puts it before the D. It takes the same line, flips the Us and Ds and builds it to the right side but backwards. Well, I tried to put this in Python, but recursion is far forgotten. But the pattern was found :D.
Moral of the story: Time to get coloured pencils and pens. It can really highlight important parts.
Monday 21 January 2013
Venn Diagrams and Symbol Chart
Venn Diagrams are honestly the best. Today in class, we went over 'and' and 'or'. 'And' means only the intersection of circles is shaded in and 'or' means the area of all the circles is shaded in. But, until the professor mentioned Python, I was all confused going like: 'What do you mean 'and'!'. As long as I remember the course is a computer science course, I should be fine. Also, maybe a little more common sense.
By the way, in high school I was always told not to trust Wikipedia but I found this page with lots of symbols and what they mean. I liked the neatness of the chart. So here is the page, I hope it is more or less helpful.
http://en.wikipedia.org/wiki/List_of_mathematical_symbols
By the way, in high school I was always told not to trust Wikipedia but I found this page with lots of symbols and what they mean. I liked the neatness of the chart. So here is the page, I hope it is more or less helpful.
http://en.wikipedia.org/wiki/List_of_mathematical_symbols
Monday 14 January 2013
Start of the course
So far so good. The concepts make sense and the Venn diagrams help a lot. I can hear the prof from the back and have no trouble seeing the presentations.
Subscribe to:
Posts (Atom)