I'm going to clarify my statement on computer science really quick.
I guess the main reason I don't like computer science is because I'm a practical person and the way it's taught to us at Mizzou is from a purist's standpoint. Frankly, I don't care if the MergeSort algorithm runs at O(n^2) and the Quicksort algorithm at O(nlgn). Just tell me which one is faster, and more practical for what I need it for. Plus, all the algorithm classes I've taken so far have been rehashes of each other, just with more complex calculations each time.
If the algorithms were interesting, say some of the algorithms the demo scene uses to produce its 64k demos, I'd be much more interested in learning them. Not their O(n) runtime mind you, but how they work in and of themselves. I know basics must be learned and built upon, but honestly, how many recursion trees do I need to go through before I get sick of them?
I understand the need for complex and quick sorting algorithms in cases such as Google's, which needs to sort and search billions of bytes of data. But for the average company that needs record-keeping systems? Maybe 50,000 entities or so. Also, I don't understand the eternal search for the ultimate, all-inclusive algorithm when it would be simpler and cheaper to implement optimized algorithms based on the data being input.
All that being said, it's not entirely bad. I did enjoy my C course because we created practical programs utilizing sockets, pthreads, etc. In my software engineering class (which is basically a glorified business class with hundreds of diagrams), I'm helping create a web-based inventory control system. While I don't like the class itself, the project we're doing is fun and quite interesting. Perhaps things will get better next semester when (if I don't fail my algorithms course) I proceed past the courses that rehash the same algorithms and onto more practical courses, one being game design in which we create a mod for HL2. <3
My final gripe with computer science courses is that the technology they teach with is a lot of older languages and legacy stuff. Not COBOL, but C and the like. What Java we did use was pretty basic stuff. I'm interested in seeing where Java, Ruby on Rails, Python, Perl etc. are going and what can be done with them. Sure, there is still need for older languages like C, especially for work in the Linux kernel and projects, but it's the newest development applications and environments and the problems they are being applied to that's really interesting.
And like I said, it needs more demo scene-like algorithm design courses. It's still beyond me how those people manage to fit a FPS game into 96k.
Marsz, marsz, Dąbrowski,
Z ziemi włoskiej do Polski,
Za twoim przewodem
Złączym się z narodem.