Sunday, November 30, 2014

Approaching Finito

This week was our last lecture!  It all seemed to fly by so quickly, and before we know it the final exam will be upon us.  I hardly remember what the lecture was on honestly, because it wouldn't be necessary for the final exam.  My friend and I had been slaving away at assignment 3 for most of that afternoon, and by the time class rolled around I was pretty brain-dead.  What was important though was the tiny review that the professor did at the end of the class.  It gave me a great idea about how to study and what to study so that I do well in this exam.

I have very mixed feelings about this class, but overall am sad it's over.  I didn't necessarily enjoy it all that much, but what I learned was incredible.  I learned about logic in a new way and I got to freshen up my calculus.  I discovered that peers can be even better than instructors at teaching material, and that I do in fact love math and computer science.  It was hard material for me, but I think that by the time I write the exam I will be ready.  As challenging and stressful as this class was, I am glad I had to take it because it gave me a new perspective on math, logic, and what I am capable of learning.

M

Wednesday, November 12, 2014

halt(hammer, time)

Well we got our midterms back this week, and like most of the class I didn't do as well as I expected.  The graders were very strict it seems, docking marks for the smallest omissions and fallacies.  It makes sense if you want to learn how to write strong proofs but it does hurt when you receive your test back.  At least I know where to study the most for the final exam, which isn't too far away now!

We also did a recap of proving growth functions, and determining whether they were bounded by Big O or Big Omega.  I liked the polynomial examples I think the best because numbers are intuitive.  The generic functions were interesting too, and seemed pretty clear as well.  I am a little concerned about the calculus aspect required for some of the non-polynomial functions, because it's been so long since I have done calculus.

Then finally we took a look at some python functions to determine whether they were computable or not, using a halt(f, f) function and an initialized(f, f) function.  I couldn't quite grasp it by the end of the lecture because it was a little bit of pseudo-code, and I'm going to have to go back later and revisit it.

It's hard to believe we are nearing the end of the term.  I am a little terrified for this final exam!

M

Wednesday, November 5, 2014

Take Me To L'Hopital

This week was our second midterm, and I felt like it went pretty well.  I only wish I had more time to write it!  The questions were appropriately challenging, and I felt like they were a twist on our second assignment.  I will look forward to getting the solution to it, because there were a few times when I had an idea of where to go but couldn't exactly figure out how.

After the test, we moved on to proofs related to Big Oh notation.  I quickly realized that this was the hinge between the mathematical proofs and the computer science.  We took a look at some examples and techniques to prove whether a polynomial function was in Big Oh.  With enough practice, it seemed like it will be a straightforward procedure.  Then we moves to logarithmic functions and learned about L'Hopital's rule.  I found it interesting but felt a bit lost yet again.  I am already looking forward to assignment 3, because they've been the most helpful way to learn everyhing so far.  I like how this is all tying back to computer science though, and I am eager to see where this all goes.

M


Wednesday, October 29, 2014

Exponential Growing Pains

This week we were introduced to "big omega" and formal definitions for "big oh" and "big omega".  We looked at some examples about growth, and how functions need to be compared after the break-point to determine which grows faster.  Moreover, we learned what it means for a function to be "in" O(n^2) or Omega(n^2) by looking at some graphs and examples.  It was somewhat interesting and pretty straightforward, which was a nice change.  There was a slide that showed the order of speed of various functions, where f(x) = n^n is the fastest growing function.  I found it interesting to learn that slower growing functions are the most desirable algorithms for computer science, so that they are able to handle huge data sets efficiently.  It made sense after the instructor explained it, but I wouldn't have thought of that on my own.

We also took a look at some insertion sort functions, and how to produce an equation to determine the speed of the algorithm.  The equations came back to show how they were examples of "big oh" notation and growth speed, creating a well rounded lecture.  All in all it was fairly interesting, and I am starting to see the bigger picture about how "expensive" some programs can be and why.

M

Friday, October 24, 2014

O(n^2)wards

This week in 165 we wrapped up our introduction to proofs by looking at different introduction and elimination rules.  I found them simple enough because they are some concepts we've already seen before.  After that we moved on to Algorithm Analysis and Asymptotic Notation, which I enjoyed learning about.  We looked at different sorting methods and why one might take longer than another, and why certain algorithms are more favourable than others because of their speed.  It was nice to see something finally make sense right off the bat.

The tutorial this week was also very good, and I finally feel like I'm starting to get a grip of what we are learning.  I was able to solve the simple proofs in the tutorial, or at least know where to start.  The TA we have is also getting better at explaining certain concepts to us by getting a feeling for what we are confused by.  It also helped that my friend and I spent that afternoon working on assignment 2 together, and working with a partner helped me understand what I was missing.  So far assignment 2 is a good blend of challenging proofs and accessible proofs.  I was even able to get one on my own, which really surprised me.

I think overall this course has inspired me to give math another chance academically, and probably pursue computer science to a depth I hadn't considered before.  I feel like soon I'll be past an initial road block, and after that I'll grasp many new math concepts easier than before.  Who knows, maybe I'll even take the next proof course after this one.

M

Thursday, October 16, 2014

Proof by Hoping

We received our midterms back this week, and unfortunately I didn't do as well as I hoped.  I sort of understand what I got wrong (at first glance) and I think I can do better next time.  I think it was an accurate assessment of what I know thus far, and at least it gives me an understanding of where to go from here.  This week in lecture we kept moving forward with proofs, and took a look at some more examples of strategies for proofs.  It seems pretty straight forward, but I still feel nervous about it all.  I just don't think I have the resources (or smarts, sometimes I worry...) to actually look at a problem and know what to do.  I am a bit eager for Assignment 2, because I think I'll feel more confident when I start to dive into problems.  The examples make sense in class, but looking at the statement before going through it I feel completely lost.  It might be time to attend some office hours too, but I should do more work on my own first to really find out exactly what I'm not understanding.  Overall the class is still really enjoyable, I just wish I was an expert!

M

Thursday, October 9, 2014

Assume i = me

I got it.  I finally got it.  Last week's tutorial somehow made it all come together.  All of these laws I was fretting over suddenly made sense, and there was no memorization necessary.  It was like my brain was downloading information very slowly over the course of the first month, and then finally it hit 100%.  The TA was explaining the laws of distribution and how to negate an implication, and it finally just all came together for me.  Just in time too, because this week was our midterm.  I felt the midterm went very well actually, much to my relief.  After the test, we continued to dive into proofs even further.  Instead of the basic P => Q examples, we used more specific examples of equivalency.  The structure of the proof was a bit confusing because I didn't understand how the professor knew what to do for each step.  I decided not to worry too much about not understanding, because I'm sure there will be lots of time to learn what to do.  For now, I will look at how to structure proofs in general instead of worrying about individual examples just yet.

So far it's still very exciting and interesting.  I like the creativity required to move forward in a proof, and am looking forward learning more.  Speaking of which, I really ought to read the course notes, because I'm sure there is lots there that will be helpful.

M