Tuesday, 2 December 2014

Problem Solving - Pattern in the fold of papers.

So the problem was rather straight forward, fold a strip of paper x amount of times from left to right, or right to left but stay consistent, and try to be able to predict the crease pattern at x folds.

I was responsible for taking notes so excuse my atrocious handwriting. So first off we started by folding a paper and recording down the crease patterns for the first 4 folds. First note that I had decided to use U to represent creases that were pointing up and D to represent creases that went down.

So we quickly realized that the previous pattern was the end of the next fold's pattern. (If 2's pattern is UDD, that UDD would appear at the end of 3 folds' pattern.) But after that we did not know how to come up with the crease pattern that came before that.

But after Danny informed us that the middle crease will always be the same and from the hint we were given we tried to find a pattern from the first half of patterns to the second half (Excluding the middle crease which will always remain the same.)

As noted at the bottom of the image, we realized that we can take the letters from the previous pattern, reverse it and then switch the letters (U -> D and if D -> U) and put them at the beginning. By doing this we had created an algorithm to be able to predict the next patterns, as shown by the #5 fold. I had my 2 partners fold it a fifth time while I tried to predict the pattern before they had told me, following the algorithm we assumed was correct. So they read/told me of the pattern and it was exactly what we predicted!

I had written out the algorithm in python but I can't find it right now but if I do find it I'll edit in a link to pastebin here with it. It runs the algorithm described above above using recursion and 2 base cases; the first fold and second fold and from there it's pretty straight forward.

Sunday, 30 November 2014

Week 11 and part of 12.

So after learning basically about more examples and scenarios using big o and big omega (With different functions and whatnot) we learned about non-computable functions as well as starting to learn how to count. By counting I mean making sure that say a set is one to one and onto. To start we were shown the halt function followed by naval_gaze function. I think the key part here that allowed me to understand this problem to a certain extent was the fact that if a function does not halt within say a period of five minutes, I can't know whether or not the function will not halt or that the function is taking an extremely long time to execute.

Anyway next up was the notion of what is 'countable'. While we were given a few examples regarding this, I learned about diagonalization and if something is countable, it should be able to be expressed as a list. And after looking at Cantor's example about that the infinite decimals in [0,1] is not countable it felt interesting enough I actually went online just to learn a bit more about this notion of infinity. I this video here that was on the top of the search list on youtube. Now I actually do remember watching it 2 years ago when it first came out but it did not make that much sense to me. But today I found it a lot more interesting. None of the content change but what I learned in class allowed me to actually understand and dissect what was being said. It was surprisingly similar to what we learned in class but expressed in a different way so in my opinion it was definitely good for review too!

Sunday, 23 November 2014

Missed weeks and follow up.

So I completely forgot about this blog until last week. When it hit me I felt somewhat disappointed in myself and let it sit another week before I'm sitting here writing this again. It was completely my fault so as a result of my own negligence and there's no point sitting in the past so I'll try and make up by putting together smaller posts going over the past weeks.

So to get some inspiration I went onto the list of other students' SLOGS and literally opened one at random, scrolled down and opened another at random about 5 times. I first clicked on this one which I found incredibly visually appealing and the format of the blog was really quite nice. However I found that it was rather informal for my own liking. Another had only 2 posts on it, which I will admit did make me feel better about myself...And most of the other ones were in a rather standard format/layout like this SLOG. Most would be regurgitation of slides posted and whatnot. I do feel that the lack of creativity and thoughtfulness might be a result of lack of content, motivation or laziness. I'm not saying there is too much to write, one post per week is admittedly rather little but at the same time it feels like there isn't enough to write about consistently. I'm quite certain the previous sentence didn't make too much sense but I digress. Back on topic.

Week 7 and 8
It's funny. I reflect back on what I learned and it doesn't seem as complicated as before. I'm combining these because I feel like these two weeks were linked strongly enough (and also the fact that the complete set of slides per 'week' was not finished at the end of week 7 and continued to week 8).

So I learned about properly negating proofs and whatnot along with 'Allowed inference', the way I see it it's the rules of logical thinking in proofs written out with a bunch of fancy terminology. To formalize, to make sure everybody is on the same page. Good to basically review I suppose.

Next was what I feel a very important part. Sorts, counting their 'steps' and finding out the worst case, average case, and best case. Note: When counting steps always make sure to count 'loop guards' and make sure to clearly define all the variables you use to count. At first it was difficult for me to count every step but I learned that I should just take it one step at a time and use separate variables to count  the 'inner' loops and go outwards from there.

While we're only learning about the worst case it allowed us to be introduced to the Big O notation, where we learned the upper boundedness of some sorting algorithm and with functions in general. This wasn't really too complicated once we were given the definition, it was rather straight forward but the 'tricks' in doing each proof, such as knowing some summation formulas. Once you know them it isn't too bad but if you have never seen one before it'll probably be quite difficult to complete the proof.

Week 9
We learned more about Big O and we were also given more examples and such to be able to prove that say a function (A) is in Big O of another function (B). The jist of it was basically to over count the numbers that we were given in A so it is in a similar power of B then manipulate the result that you get to get to the consequent in the definition of Big O. Now most of this was rather straight forward in my opinion. I just had to make sure to review all the slides and my notes afterwards as well as re-doing the examples just to assure myself that I knew and understood each individual step and the reasoning behind it.

Test
On week 9 we also had a test for the course. Now it shouldn't have been too bad but I had gotten there late that day after doing some last minute reviewing and I accidentally wrote that p -> q is equivalent to p ∨ not q during the second proof which is obviously incorrect. I realized that right after the end of the test but I should just remind myself to check it over more thoroughly as I had only glanced over each proof afterwards.

Sunday, 19 October 2014

Week 6: More on proofs.

So the week after Thanksgiving we learned more about how to write proofs. For example given a definition and something you have to prove, assume/define and pick as much as you can before you start writing the proof. Mostly to help with the format and leading our proof to where we want to go. I prefer the way that we're learning about proofs in this course more than MAT137 where we're only really given an example of a proof and we're just expected to reproduce that format without much explanation on each individual part of it. So we learned about Proof by cases and Epsilon Delta proofs (Which I don't think are called that in the slides when we learned about it but it was essentially this.)

So as I previously mentioned the way that we learn to write proofs in this course is different and much more structured (Which I think is much more helpful to students learning about this for the first time). So for the proof of a limit that was shown in class, the proof was done more differently than how I learned it; Rough work wasn't separated and for example:

For all ϵ...0 < |x-3| <𝛿 => |x²-3²| < ϵ

It was written as 𝛿|x-3+3+3| instead to manipulate |x+3| into |x-3|. I found this method in a way more straightforward than making |x-3| < 1 and making intervals but I feel like the way we learned it here won't work for functions where there might be say, square root symbols. Now I've only briefly thought about this fact and have not tried a more complicated limit proof with this method so I could be wrong. But overall I did find the way we learned it in this course more intuitive in a sense so that's pretty good!

Saturday, 11 October 2014

Week 5

So this week I don't really feel like I learned that much in class, mostly just the introduction to proofs and almost starting to write our own proofs. I've already done some proofs (note the keyword some) in MAT137 so I'm just trying to get used to the proof structure that we're given in this class. Besides that, for this course this week, I've been mostly concentrated on studying for the first of the 2 term tests for this course.

So for the test we were allowed to have an aid sheet, back and forth, but as I starting writing some of the standard properties, negation of implication, the standard stuff really, I realized that I already knew and understood most (Obviously not all since I probably spent about 30 minutes, after finishing the first 2 questions rather quickly, trying to figure out a good pair of sets for the last question on the test which I probably answered incorrectly) of the material that was on the test. As a result my aid sheet was probably shorter than half a page and I could complete the previous year's term test so I felt rather prepared for the test.

I hope that I did well on it even though I'm no good at coming up with sets on the spot. Now this post will probably be shorter since the 'content' in this course was not particularly difficult and we learned less this week because of the test. That's probably all for this week and I have 2 more midterms to study for and some miscellaneous to do!

To anyone reading this (Probably almost no one though :p) and it's actually still Thanksgiving weekend (Even lower chance), Happy thanksgiving!

Saturday, 4 October 2014

Week 4: Formal definition of a limit in this course too? :(

So this week we started off with transitivity which wasn't a too hard concept to grasp followed by two other important concepts/subjects that I have learned to hate. First off it was, while not exactly Epsilon Delta proofs, but still learning about that formal definition of a limit. Now this is something that I have learned during week 3 of class (I think) in MAT137 and while I would love to say that since I have already learned about it, this was a piece of cake, it was not. I mean I must have spent hours reading through textbooks, looking for general explanations online and such I feel like I only have a passable understanding of Epsilon Delta in general (Concepts as well as proofs).

But Prof. Heap mentioned that given what we learned solely in CSC165 we should have the tools to write an Epsilon Delta proof and that's where I feel like I still haven't completely grasped the concept of the formal definition of a limit. If I hadn't learned it previously I am almost certain that I would not be able to do a proof of it. In the end I'm still sitting here reading over my notes and the slides for this course, not for this subject specifically but reviewing for the upcoming test on October 8th.

And I can't hit tab to indent right now, I'll look into that later but I digress.

Afterwards we learned the format expected of us in order to write a proof which was rather straight forward as of now. But some things to note are:
- Make sure to comment accordingly to your audience
- Indent to show a new 'world' where your assumptions are true.
That's more or less the jist of it. Doesn't seem too hard now but I am almost positive that it will get more complicated.

Assignment 1
The first assignment of the course was also to be completed this week and handed it on the Friday. Some of the questions were confusing at first but when you take the time to think about it, nothing there was really outside of what we had learned in class. What definitely helped were my partners with whom I could talk and compare answers that we had and then explain to each other why the answer was X and not Y. Also
*It really helps to write the original question out in symbols if you want to negate it and not try and do it just from the words.

But I feel that we did a decent job on the assignment overall, helping each other out and formulating decent reasoning and what we believe were the correct answers. However question 4 on the assignment was rather confusing to me, even in the end. Examples were rather difficult to think of, we weren't all 100% sure what a good way it was to explain it. I mean the quantifier at the beginning of each a) and b) changed up the question, but the Venn diagrams for the two were just...ugh...and I am almost certain that is the question where we did the worse.


Well that's it for this week, I also noticed that I guess I didn't save the problem solving part which was supposed to be a part of last week's post and I'll probably get around to re-writing it again soon. After all I had written up some quick code in python allowing me to 'solve' the problem so I might as well not let that go to waste.

Anyway I have some more work to do and tests to study for so bye! And good luck to everyone on their upcoming midterms!

Saturday, 27 September 2014

Problem Solving: The folding of a paper and Week 3.

This week first we learned statements that included conjunctions (and), disjunctions (or), the negation of such statements. Now I felt that these were simple enough concepts to grasp since they were rather straight forward in my opinion.

Next were truth tables used instead of Venn diagrams which were essential when there are more than 3 sets. Say P(x) -> (Q(x) -> (R(x) -> (S(x)))), it's impossible (Well for me anyway) to draw such a diagram and it would simply not be feasible or organized in a way where it could be easily read and understood.

The more important content included the properties in logic such as the commutative property, associative, as well as the distributive property. Now for the properties although some were obvious, others like the distributive property were not obvious to me when I first learned it. As a result I essentially made 4 Venn diagrams for the 4 properties we learned just so I could convince myself that they were indeed true and so I could have a visual representation of what both sides of each property meant.

I feel like I understand the material but probably only superficially in the sense that I won't be able to solve more complicated problems at this time. What do I mean by this? I looked over at the tutorial for week 3 and at this moment I'm not exactly sure how to prove equivalence at all but the other 2/3 of it looks manageable. So I'm definitely going to go back and review the notes and slides to assure that I understand all of it. So next up is the problem solving of the pattern in a folded piece of paper in the post following this...