Friday, February 14, 2014

W6: DONE, DONE, DONE!

A1 IS DONE!!

I'm delighted to say that A1 was an extremely difficult assignment that challenged me but did not defeat me (of course, it has yet to be marked, so perhaps that cannot be said definitively at the moment). I learned a great deal about myself and computer science in general. Some are things I am happy to have discovered, others are things that bit me in the butt and so I will not forget them:

> Even if something seems impossible or confusing, try something (anything) anyways. If you sit around scratching your head you will not get anything done. Do something wrong, and work on it until it's right. It took me ages to figure out the M(n) function in for A1 step 5 because I stared at it without writing any code. If I had tried something sooner, I'm sure I'd have saved myself much stress.

> Don't leave those stupid "trailing whitespaces" at the end of lines. Unfortunately, writing code is not like writing in everyday English. If you leave a space before entering the next line – to be grammatically correct... but who cares about that – you WILL spend a mindless ten minutes deleting that "trailing whitespace" from HUNDREDS OF LINES OF CODE. Can you tell that I am very annoyed about this?

> To comment or not to comment? Earlier in the process of writing A1, I thought commenting was a waste of time, but I soon realized how difficult it was to decipher older code when A1 was such a long project. Not only was it useful to track my own train of thought and break down problems into simpler pieces, but I'm sure it will be useful for the TAs who mark my assignment. Especially since there were some solutions that I wrote in a round-about-way (forgive me if you're a TA who marked my assignment).

> Function is essential, but form is important too. On a day you are extremely sleep-deprived, stressed or anxious, you will regret not making your code readable and good-looking. It takes a few extra moments to put in those empty lines and spaces, but it's worth it if it makes coding less of a treasure-hunt.

> Last but certainly not least: assignments should be started more than one week before they are due. Unless, of course, one would like to sit in front of a computer for twelve hours straight on a Thursday and develop back aches, shaky hands and chicken-scratch handwriting on the following Friday. You would think a week is plenty of time, but for each step of A1, there was a lot of problem-solving and debugging involved.

I did also learn while doing this assignment that I have a lot of work to do in terms of understanding recursion. While I have no problem tracing calls on recursive functions, it's an entirely different story to build a recursive function. I spent many hours muddling through Tour.py due to my lack of understanding. Thankfully, reading week begins today and I have the opportunity to catch up on computer science (especially those readings) and the loads of other work that has stacked up in my other courses.

Well, even though I say that it remains to be seen whether the following days will be productive or... otherwise? Because, you know, it's the last week of the Olympics too...

HAVE A WONDERFUL READING WEEK EVERYBODY!

No comments:

Post a Comment