>>> NICHOLAS MICELI 08/25/10 4:26 PM >>>
- Computer science is a fascinatingly logical system; one in which you can easily see the input, what each part of your code does to it, and the resulting output. The easiest way to lose some of the value of this course, which will build the foundation upon which the rest of the computer science major will grow, is to simply write code because it seems to work. Make sure you understand the function of everything you write. While for beginners it will all seem gibberish at first, very quickly you will begin to see how every word in the language is a very literal instruction to the computer, and there is so much value in understanding why the textbook and/or professor use particular word combinations. As for novices, there will likely still be quite a bit of new material introduced in this course, and you'll want to stay on top of it. If you can finish the course with not only memorized knowledge of the theories and what each line of code does, but also an understanding of why, you will find the rest of computer science to be both easier and more rewarding. Just like in mathematics, its useful to not only know what a function does, but why it does what it does. In addition, trying to understand new mathematical theorems that build off of older ones you still haven't quite grasped can be very frustrating (trust me, I've been there!). Many people find once their code works, they stop worrying about it. If you aren't certain why it works, (or why it isn't working for that matter =] ), Dr. Chays and I would be happy to ensure understanding. The little bit of extra effort will so be worth it if you choose to continue in this field.
- I can tell you about what was my most challenging points, but I can't talk for all of you. Like with most things, different people will find different parts of the course challenging. My suggestions are simple:
- Keep up with the assignments (labs and homeworks). Each assignment will challenge your understanding of the last topic, and if you keep up to date with it you'll know very quickly what needs more attention and what doesn't. If you leave everything off and it begins to pile up later on, suddenly you'll be struck by a bunch of things that you thought you understood when looking at the board, but in practical application are far more challenging. And that doesn't sound like fun, does it?
- Comment your code. Seriously. For those of you who are beginners to programming, a comment is a line of text in your code that the computer will ignore, and is solely there for the purpose of readability for other humans. Its annoying, you'll be very tempted just to ignore it or add it in afterwards, and for smaller programs it may feel pointless. Trust me, as someone who is currently trying to program a whole game, commenting is a wonderful habit to get into as soon as possible. Even by the end of the semester you will have projects that will be fairly big sized, and when a problem occurs and you can't even remember why you wrote some of those lines of code, trying to fix that problem will be... not fun. With commented and easily readable code, trying to figure out where mistakes are will be much easier.
- Don't delay. By this I mean, as soon as you find yourself getting lost or confused, come to Dr. Chays or myself. Like I said before in regards to mathematics, everything builds upon itself in computer science and trying to push past something that you feel weak on will only make everything else more challenging. Even if its something small and you don't feel its worth meeting with someone, feel free to send me an email and I'll get back to you as soon as possible.
I absolutely love computer science, and hope you will keep in touch with me. If you have a question on a homework, lecture, just in general, or just want to say "hey", don't hesitate to either come meet me or email me. Enjoy!