Pages: 1 [2]
|
 |
|
Author
|
Topic: CS Grad School Advice (Read 9058 times)
|
Lantyssa
Terracotta Army
Posts: 20848
|
UHCL sounds better than the main campus. Then again, I finished up in 2000, right before the faculty revolt that got the entire department curbstomped. They might have improved since then. The Assembly prof was a guest lecturer, so he spent half his time in the real world. Our project was to do a thermal simulation of nuke plant cooling. (Real project he worked on for the Bay City plant.) I was really proud of coming up with an algoritm that used half the memory and four times the speed. At first he didn't follow, but once he grasped the concept he said he wished he had come up with it for the real project. He spent the next lecture explaining it to the class.  Our Data Structures class was a joke. Poorly explained how to do things, and never why or when. My opinion of the class wasn't helped by the fact I was advanced enough to already be doing linked lists and pointers four times removed in my sleep from MUD coding. (If you can sort through and clean up that crap, you're pretty well off...) I could see all the students struggling to understand. There was no way there were learning it was so bad. Databases was worse. The guy made no sense. Not a lick of code from him, just high-end theory without teaching us any concept of how to achieve these things or how it relates (haha) to a database in practice. The TA couldn't speak or understand English. We didn't even know what we were supposed to do, much less how. That class made me loath DB work so much I avoided anything resembling it for nearly a decade. It took my activist work needing someone to understand databases and php to get me to consider touching it. Now that I've taught myself I really enjoy it. But I'm completely self-taught. Ugh. Sorry, that program makes me rant. There is value in the theory, and I agree it's important when you get to design, but it's important to understand how to make that theory into something tangible which simply wasn't taught when I went through. There needs to be a balanced mixture for anything useful to come from it. It also means the difference between really learning it and students being 'taught' abstract concepts which will evaporate from their minds quickly.
|
Hahahaha! I'm really good at this!
|
|
|
naum
Terracotta Army
Posts: 4263
|
As my second degree is CS, I will bag on the theoretical side. It's good to know, but it's all they teach. I had three good classes: Assembly, C++, and Operating Systems. The first two because the professors actually taught something tangible, the third because he mixed the theoretical with practical. No one came out of that program with one friggin' clue how to code unless they went into it knowing how to. That is rediculous. While Assembly itself doesn't do much for me, that was the most kick-ass class we had taught at the time because the prof shreded people for shitty coding, but like-wise rewarded them for brilliant ideas and implementations.
Our assembly class was useless -- fucking hated assembly anyways. Jump statements make me feel dirty. My OS class was nice -- the project, by the end, was effectively simulating a microkernal. You learned how OS's worked, but you also had to demonstrate a practical grasp of the concepts AND decent coding ability. … The times, they change, but yet there is a big plus to knowing all the numerical magic propping the theory up… …something you can never really grok from learning language J or platform W… As an application programmer, you might never need to know the schematics of how quicksort algorithm works… …but if you do, you're operating at a higher level that someone who doesn't and that knowledge is invaluable even if not specifically invoked, just aware of the realm of the possible… As systems become more and more diverse pieces linked together by API, it's ironic that a great number of works have such shallow knowledge of machine instruction. To go to that level, to comprehend advanced computing memes, you just cannot equate with certifications or even grokking code (which is ultimately what you must do in either case)…
|
"Should the batman kill Joker because it would save more lives?" is a fundamentally different question from "should the batman have a bunch of machineguns that go BATBATBATBATBAT because its totally cool?". ~Goumindong
|
|
|
Morat20
Terracotta Army
Posts: 18529
|
UHCL sounds better than the main campus. Then again, I finished up in 2000, right before the faculty revolt that got the entire department curbstomped. They might have improved since then.
Eh, it was pretty variable with the instructor. I think they've cleaned up a bit, but there's still at least two completely worthless instructors, no matter what they teach -- you're worse off for learning it. It's like taking their classes actually makes you stupider.
|
|
|
|
Khaldun
Terracotta Army
Posts: 15189
|
As my second degree is CS, I will bag on the theoretical side. It's good to know, but it's all they teach. I had three good classes: Assembly, C++, and Operating Systems. The first two because the professors actually taught something tangible, the third because he mixed the theoretical with practical. No one came out of that program with one friggin' clue how to code unless they went into it knowing how to. That is rediculous. While Assembly itself doesn't do much for me, that was the most kick-ass class we had taught at the time because the prof shreded people for shitty coding, but like-wise rewarded them for brilliant ideas and implementations.
Our assembly class was useless -- fucking hated assembly anyways. Jump statements make me feel dirty. My OS class was nice -- the project, by the end, was effectively simulating a microkernal. You learned how OS's worked, but you also had to demonstrate a practical grasp of the concepts AND decent coding ability. Strangely, the advanced OS class was much the same way -- the funnest project I ever did was distributed shared memory without a central server. I ended up wtih a really clean, scaleable system that I was rather proud of. I've sort of figured that UHCL, at least, views the OS (required for a BS in CS) and the Advanced OS (required for a Masters) are sort of acid-tests. The classes were deliberately hard, with projects that required you to demonstrate some proficiency with actual application. Then again, over the years -- more and more of the "bullshit theory" classes I've taken (both as a bachelor's and as part of my Master's) have come in handy. Things like numerical methods popping up when I was debugging a program that had a bunch of calculations in it, with a creeping error that took forever to suss out. Data structures was probably the most useful, just because you have to make data structure choices all the freakin' time, and it can really bite you on the ass later. The DB classes, once I really understood the subject, came in really handy -- it's all fucking databases today, most with schema's designed by monkeys with only a bachelor's and no clue. :) Then again, over the years I've moved from "code monkey" to "solution designer". Admittedly, mostly I'm Team Lead of "me", but we have a short prototype/development cycle (We use agile, although I'm the only one that actually realizes it. EThe group sort of fell into it because it worked for what we do), and so I'm often making critical design decisions -- and it's admittedly kind of a cool feeling to side-step a show-stopping bug three months before it crops up, all because of a bit of useless theory I remembered when we were discussing solutions. :) I think a lot of a CS degree is stuff you may need, but not until you move past implementation and into design. And even then, it all depends. You can do so damn much with computers, well -- I never thought I'd actually be glad I'd studied the damn time-synch methods until I walked into a meeting where they were arguing about some synch problem with a distributed system we run. Fuck if I can remember which one we cannabilized to get everyone to agree on what was going on, but it was light years better than the jury-rigged shit they were discussing. Ultimately, this is the premise of a liberal arts education as opposed to a narrowly professional one, and as a professor teaching in that kind of vision, I honestly do believe it has a big payoff in the end. But you have to understand exactly what Morat is saying here in order to understand why it's worth doing. A liberal arts approach at any level of study will not equip you with a full set of fully functional professional and practical skills when you complete a program of study. You have to acquire those yourself in some fashion, in part by filling in gaps and silences in your formal coursework. The payoff to a more intellectual, more exploratory education only comes later on. It's like a time-release capsule dripping slow amounts of a drug into your bloodstream when your metabolism is ready for it. If it's done right, that kind of education gives you some sense of what the important questions are, and some sense of the process you might follow for answering those questions as they arise. It tells you more about why we know what we know and why we don't know what we don't know, and whether it's possible to move some of what is in column B into column A. A narrowly pre-professional program gives you an immediately practical skillset (if it's a good program) but the expiration date comes very fast on that package. If you haven't been trained to think and rethink, to train and retrain yourself, it will be very hard to transport the skills that you know into the inevitably different future that lurks right around the corner--in IT and programming more than maybe any other field. Not saying a liberal arts approach is right for everyone. Some students exposed to it just become vapid bullshitters who really know nothing about anything. Some students really need a completely grounded set of technical skills before they can do any critical thinking at all. But it does have a big payoff in many cases, just not right away.
|
|
|
|
Lantyssa
Terracotta Army
Posts: 20848
|
If less than five percent (random number out of my posterior, but there were so few...) of students come out of a program being able to use the skills they were supposedly taught, I would call it a failure of method. I'm not kidding when I say only those who went into the program with pre-existing knowledge came out of it learning anything. And I'd wager a lot of that was what we learned on our own in the interim.
|
Hahahaha! I'm really good at this!
|
|
|
Khaldun
Terracotta Army
Posts: 15189
|
This is one of those paradoxes: to really benefit from a liberal arts education, you already ought to know something. It's kind of why I think we should spend 1.5 years out of 4 hammering down some base level skillsets and knowledge and then go from there.
But teaching yourself is part of how it should work. If you do it right, you're helping people develop a skill set for how to learn new things in a structured and deliberate way. A good liberal arts graduate (even in the sciences) is a disciplined autodidact.
|
|
|
|
|
Pages: 1 [2]
|
|
|
 |