I don't think I'm going to do well on the CCC tomorrow. Why? Unpreparedness. I've only had about 2-3 months of experience in C, and in class time that really means about a week or two. It's sad, but I have so many other things to do that I can only really concentrate in a class, which is okay, other than the lack of stuff to do once I'm done in like thirty seconds.
Which brings me to the problem. West Hill's way of teaching computer science is absolute tripe. Basically, from grade 10-12, there are three CS courses. The department's philosophy here is that more languages = better. That is a load of BS. Basically, they're teaching you the same basics in different languages. You've got your variables, loops, conditionals, functions, I/O, etc. Now then, they not only teach it over to you, which in itself is not that bad (review and stuff), but they spend the ENTIRE YEAR on it. Basically, it's review the entire time. In effect, students become jacks of all trades, but masters of none. We aren't spending enough time on NEW material.
Allow me to illustrate our year, in a lovely little calendar.
<img src="http://pictureposter.allbrand.nu/pictures/blkmage/icslesson.gif" alt="WHCI Computer Science lesson plan 2004-2005" />
Even if we are doing new languages, we shouldn't really need to be reminded what a for loop does. Everyone (if they weren't failing) should be able to figure out syntax to new languages and use it. Hell, I don't even know Visual Basic and I can figure VB code faster than 90% of the others can. Why? Because fundamentally, it's all the same. It takes too long to 'review' so we never get to the advanced material and write stuff that we'll actually <strong>use</strong>. That's the problem with these courses. There is way too much theory review and not enough practical work. Programming theoretical math problems is <em>not</em> practical work. Practical work in CS is <em>not trivial</em> as in you'll actually use it! Games are not practical unless you're bulding something that you will <em>want</em> to play. Writing a program to solve roots is not practical work. Creating programs to calculate how much pizza will cost is not practical work.
This is why computer science is so garbage in its current state. Those who need to learn from it aren't and those who aren't interested are catered to. The expression "same sh**, different pile" describes exactly what we're learning right now.
Oh this is going to screw up my chances for softeng at UW bigtime.