I can't say that I studied very well for this first test, because even though I put effort into studying I only did so three days before of doomsday. However, I did feel like I knew the material decently well. I laboured over the labs, the exercises and (thought I did) pretty well on A1 (although we haven't really gotten marks back yet).
Except for linked lists and the linked implementation of a tree, I made sure I went through all practice code posted on the website. My downfall, however, came the night before. I spent a great deal of time studying the material, and left writing my aid sheet until yesterday night. Though I promised myself I would sleep at 12 am at the latest, the aid sheet took very long and lo and behold... I went to bed at 2:30.
Not smart.
Result: sitting in lecture this morning, 9:10 am, twitching from lack of sleep and nerves. The first few questions were perfectly fine for me... the last questions not so much. My test had one question about counting all the values beginning with "a" in a Tree... and somehow, because of my lack of sleep, I ended up interpreting that as returning True or False if all values began with "a". I finished the test with 20 minutes to spare and spent the rest of my good time re-reading the test. Then, in the last five minutes, I realized my mistake.
Oh the test was not fun.
Needless to say, my nerves and anxiety came back full force and I did not have enough time to fix my mistake and did extremely poorly on it...
Lesson learned: always sleep on time.
Wednesday, February 26, 2014
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!
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!
Tuesday, February 11, 2014
W6: SUCCESS!
For once it's past midnight and I've been productive. HURRAH!
I'M SUPER HAPPY! It's been a rough week and this assignment is super tough. I've been frustrated with trying to think of the problem in different ways that will make the coding work, and be efficient. Moreover, it's difficult to write so much code a keep track of where everything is, what it does, and make sure it's written with proper syntax and commenting.
I'm sleep deprived but I feel like I've overcome a good challenge!!
Saturday, February 8, 2014
W5: Procrastination
12:49 am
Not doing anything but changing the design of this blog.
10:29 pm – next day
Watched a sad video and didn't finish homework.
1:18 am – the next, next day
I can't even blame this on the Olympics because I had plenty of time to be productive...
Summary of My Bad Week:
Due to the fact that I'm a major Olympic-holic, I must admit it's been pretty rough keeping away from the television... in fact I've been unsuccessful much of the time. Furthermore, while it's been wonderful that the professor has cleared up (and given some hints) about A1, it is not a confidence booster to realize you understand zilch of what he is talking about...
Procrastination is is a vicious cycle that makes me feel worse about the work I have to do (but I still have the Olympics to cheer me up!). I am EXTREMELY behind on my work, and feeling very not-confident about it. When I went back to redo some old tutorials, they took me an unnecessarily long amount of time. While it is a consolation that I was able to work through them slowly and fully understand the solutions in the end, my energy has been drained.
This basically sums up what I'm trying to tell myself to keep going:
"It is better to do the right problem the wrong way than the wrong problem the right way."
- Richard Hamming
Not doing anything but changing the design of this blog.
10:29 pm – next day
Watched a sad video and didn't finish homework.
1:18 am – the next, next day
I can't even blame this on the Olympics because I had plenty of time to be productive...
Summary of My Bad Week:
Due to the fact that I'm a major Olympic-holic, I must admit it's been pretty rough keeping away from the television... in fact I've been unsuccessful much of the time. Furthermore, while it's been wonderful that the professor has cleared up (and given some hints) about A1, it is not a confidence booster to realize you understand zilch of what he is talking about...
Procrastination is is a vicious cycle that makes me feel worse about the work I have to do (but I still have the Olympics to cheer me up!). I am EXTREMELY behind on my work, and feeling very not-confident about it. When I went back to redo some old tutorials, they took me an unnecessarily long amount of time. While it is a consolation that I was able to work through them slowly and fully understand the solutions in the end, my energy has been drained.
This basically sums up what I'm trying to tell myself to keep going:
"It is better to do the right problem the wrong way than the wrong problem the right way."
- Richard Hamming
W5: The Most Difficult Thing
When learning a new language, the most difficult thing is to put all of your knowledge together, and with computer programming and computer science it is no different.
Which is why I currently have my lecture notes haphazardly sprawled across my desk and multiple, disorganized internet tabs of program examples from both CSC148 and CSC108.
Of course, A1 is mostly about recursion (more specifically, step 5), but unlike the previous exercises which focused on specific topics, the rest of A1 is about piecing together what we've learned in class:
> the proper way to build classes (make sure there are no floating functions!)
> ADTs (namely, Stacks and the lab tutorial, in which we learned removing and adding to the bottom of a stack is much more inefficient, and it would be assumed that the same goes for stacks of cheese)
> property control (I see many underscore-period combos in A1...)
> reusing functions and avoiding duplicate code (I'm still working on the organization of the functions and which ones are related)
> raising and catching Exceptions (it is an "IllegalMoveError" to add a larger cheese on a smaller one)
> is there inheritance and composition? If there is, I haven't gotten that far yet...
I'm sure there's some other component I'm missing, which is why I'm reading the A1 code multiple times over and then reading my notes in the same fashion, and then becoming doubly confused.
Which is why I currently have my lecture notes haphazardly sprawled across my desk and multiple, disorganized internet tabs of program examples from both CSC148 and CSC108.
Of course, A1 is mostly about recursion (more specifically, step 5), but unlike the previous exercises which focused on specific topics, the rest of A1 is about piecing together what we've learned in class:
> the proper way to build classes (make sure there are no floating functions!)
> ADTs (namely, Stacks and the lab tutorial, in which we learned removing and adding to the bottom of a stack is much more inefficient, and it would be assumed that the same goes for stacks of cheese)
> property control (I see many underscore-period combos in A1...)
> reusing functions and avoiding duplicate code (I'm still working on the organization of the functions and which ones are related)
> raising and catching Exceptions (it is an "IllegalMoveError" to add a larger cheese on a smaller one)
> is there inheritance and composition? If there is, I haven't gotten that far yet...
I'm sure there's some other component I'm missing, which is why I'm reading the A1 code multiple times over and then reading my notes in the same fashion, and then becoming doubly confused.
Friday, February 7, 2014
W5: Pet Peeve!
It's not like I'm anything close to a wizard when it comes to computer programming; I'm probably more like a quarter of a notch above beginner.
So, in terms of being a computer programmer, I should really focus on the practical skills but it really irks me when there are... aesthetic inconsistencies in code.
I HATE when code goes from using these quotation marks: """ to these ones: ''' (ahem, TOAHModel to ConsoleController, I'm looking at you). OR, double spaces between words! Whenever I see these I obsessively run through code and fix them.
So... that's the end of that rant. Back to actually improving my skills.
So, in terms of being a computer programmer, I should really focus on the practical skills but it really irks me when there are... aesthetic inconsistencies in code.
I HATE when code goes from using these quotation marks: """ to these ones: ''' (ahem, TOAHModel to ConsoleController, I'm looking at you). OR, double spaces between words! Whenever I see these I obsessively run through code and fix them.
So... that's the end of that rant. Back to actually improving my skills.
Sunday, February 2, 2014
W4: Anne Hoy and Chinese Chess
One thing I've learned in university is that you have to find out how you learn best, and then do it. Unfortunately, I'm still lacking in the latter, but I would like to think that I (mostly) know how I learn best.
To anybody else that's stuck: you just have to try something! Good luck to all of us for A1!
So, still confused after reading the A1 instructions a second time, I gave up on my language skills and decided to work-out my spatial ones.
I pulled out my ultimate weapon: a set of Chinese checkers.
Like its European counterpart, the pieces in Chinese checkers have ranks. But the most important feature for my purposes was that they are small, cylindrical blocks that stack well. My very own cheese rounds with different "sizes".
Playing Ann Hoy's game with four "stools" (other chess pieces flipped over), my best has been 7 cheeses in 25 moves.
Now the written instructions make much more, but not complete, sense. It feels nice to do something hands-on, especially when much of lecture is paying attention the professor (and usually, not even writing down very much because most of the content is examples of code).
To anybody else that's stuck: you just have to try something! Good luck to all of us for A1!
Subscribe to:
Posts (Atom)
