Computer Science Curriculum in College 654
Ludwig Feuerbach writes "As it's back to school for university students, including Computer Science undergraduates like myself, I look at my course schedule for this semester and I have courses with titles like: Theory of Computation, Numerical Analysis, Artificial Intelligence, Machine Learning, and History of Economics from Plato to Keynes. The first 4 courses are required in my CS program. I had thought nothing of it until I read an opinion piece by Dan Zambonini, who stresses the type of courses I'm taking are, essentially, useless for getting a job. He lists several CS courses useful for a job. Is he right? I tend to think that an university education should stress scientific topics over vocational ones, but since I'm just planning to get a job after I grad, am I in the right program?"
Re:if you want more vocation, plus a better chance (Score:4, Informative)
No two corporate entities structure their data or use EXACTLY the same data (unless part of same company) typically, so custom information systems work (e.g.-> custom databases & such + reporting apps etc./et all) will always need to be designed & redesigned or added onto (or even modded/improved for changing conditions).
Another REALLY useful (imo) course, is "DataStructures" if it was not included in said list from the URL document: It teaches you a great many things & patterns of thought (such as which types of sorts to use, when, & with what datatypes & sizes of sets to sort thru, as one example of what you acquire/learn from it).
How much of it do you REALLY use in IS/IT/MIS work? Not much, but it is a GREAT course for anyone into computing imo!
*
APK
P.S.=> The reason I agree SO strongly with the init. poster & his comment of:
"for a job, then go into CIS."
I assume he meant information systems work/databasing in general (often called "data processing" as well)... I have made more than a decade worth of money from it, for the very reasons I state above:
Sometimes, there is NO "canned/prebuilt/turnkey" instant solution out there for various enterprises out there or their data - you HAVE to build them, for them! apk
Don't pick your classes based on a job (Score:2, Informative)
Re:Answer to your question... (Score:5, Informative)
In Canada, a college is usually what an American would call a "community college", so its primary focus is instruction with a vocational focus. University means just what it means in the US, a higher-education institution that has a strong focus on research (and obviously the extent of that focus varies from place to place). The term college is sometimes also used to refer to the units of a university, such as St. Mike's College at the University of Toronto or St. Paul's College at the University of Manitoba, so you have to get some of the meaning from the context. Without context, the first meaning is usually understood.
The easiest way to see the difference is that if you tell a Canadian "I'm going to college", he'll probably look at you a second and then either think to himself or say, "Oh, you mean university".
Re:Answer to your question... (Score:2, Informative)
If you want to become a firefighter, travel agent, surveyer, etc you would go to a college.
If you want to study english lit. or finance, you go from high school to university...except in Quebec (just to make it confusing), where everyone goes to college (called CEGEP) after high school, and then those who are in the pre-university stream go on to another three years of school in university. Pre-university people spend two years in CEGEP, whereas vocational people spend three years there.
One view is that universities are where the academic "elite" go. The other view is that colleges are where the people who want useful jobs and useful job training go.
Just My Experience (Score:1, Informative)
I work with a bunch of guys who have CS degrees and I'm just as competitive without a CS degree. Granted, I did spend A LOT of my own time learning to code, but if I get tired of software I have lots of options. Not many CS guys can do that.
This is not a knock on CS, but I just thought I'd mention one of the alternatives to going strictly CS. I've been in software for nearly 10 years and I would say success is more about motivation than what degree you have. Give yourself as many options as reasonably possible...
Usual mathematically-challenged /.er's wheening (Score:2, Informative)
First: the school's main purpose is not to teach you your job; it's to teach you the parts of the job you wouldn't be able to learn by yourself. Mastering a couple of languages and patterns is something you'll learn at your first professional position, every code monkey can do that by himself. You'll be allowed to think of yourself as fully trained when applying for your 2nd or 3rd job.
What you won't be able to learn under the pression of real-job-conditions is more fundamental: it's about having those abstraction capabilities, which allow to understand a problem, turn it into a formal model, find appropriate algorithms to handle this model. That's maths. Indeed, you'll probably never write a computer-vision system or a ray-tracer for a compagny. But by having been drilled on such problems at school, you'll [hopefully] have acquired some skills in complex problem modelisation and solving, that you'll need to write everything but dumb PHP interface to a DB. And you know what? These dumb code monkey jobs are going to become Indian or Chinese long before Duke Nukem Forever is released, so you'd better be able to work on smarter stuff.
I know, it hurts to admit that mathematical thinking abilities are a must for decent programmers when you're yourself mathematically-challenged. It must be unpleasnt to realize that a lot of tough training is required to acquire these skills. But just translate this attitude to an other field and you'll see how stupid it is: "I want to become a novel writer, so I don't see the point of studying ancient authors: nobody speaks/writes that way these days. I don't want to read war stories or poetry either, as I don't plan to write any. I don't want to hear about mythology, classical litterature theories, or whatever. What I want to be trained at is grammar (spelling is useless now that we have decent spell checkers) and type-writing".
Yes I'm posting twice, but it's because... (Score:3, Informative)
Our university teaches software engineering. The professor who teaches most of the software engineering courses is an idiot. For my project, my group and I wrote a pretty kick-ass app with some pretty kick-ass code. How? We snuck in some agile methodology, which just seemed perfect given the size of the group and the size of the project. Even though our project was the best in the class, we got a C because the specifications weren't complete, and she wasn't convinced that our automated tests would really test the code. (The other groups who got A's for testing wrote some very non-specific paragraphs about how they might test their code. None of them actually did any testing)
What this proves to me is that software engineering is easily the most useless discipline in computer science. I have never had a good experience with it. I've never known anyone who said that software engineering really makes things run smoothly. It's a business-centered/management-centered unrealistic approach to software development. It may make your boss feel all warm and fuzzy, but it won't get the software out the door on time, nor will the developers have any degree of confidence in it.
Re:if you want more vocation, plus a better chance (Score:3, Informative)
Do you really need to create your own datastructure? The Java Collections framework [sun.com] has a number of good classes and interfaces that are useful. Anytime I've thought I needed to do this from scratch, I was wrong...