Hacker News new | ask | show | jobs
by xxpor 4813 days ago
Universities in the US don't teach languages in general. At my school, you get 1 semester of Java and that's it. The next class people take that uses something else is compilers, and that uses C. You're just expected to know it.

The usual justification is "we're not a vocational college" which I think is kind of bullshit.

1 comments

Wait, is your take on this that their attitude is not good?

We got one quarter of C++, then everything else was "you are all grownups, use whatever the hell you want so long as it works on [cs cluster]". Most people continued to use C++ of course. It was not until an intro to languages course (preceding a few compilers courses, if you elected to take them) that course material again included learning a new language (scheme).

This, aside from the initial obnoxious first quarter, seems like the absolute proper way to run a CS department. A bunch of courses teaching different languages, as I would expect from some sort of "vocational college", is absolutely not what I was paying for.

It's not so much courses teaching languages, it's the lack of software engineering in general. There's one course here which is a joke and not taught until your second to last semester. And then people turn in absolute barf code in their homework.

Then people graduate and start a job, and they can't code their way out of paper bag, but they sure can write the tuple relational calculus for some given query.

Another example is my OS class. We just spent half a semester going over concurrency problems. Now we're rushing through everything else that goes on in an OS. We spent one day on filesystems and I/O. Not once have we said anything like "well this is how Linux or FreeBSD does it".

So I am a PhD student at the same university as xxpor and did my undergrad there. No idea who he is but I am going to say there is fault on both sides.

1) Every University has some courses which need a refresh.

2) The OS and Compilers courses certainly need refreshing at the moment at CWRU.

3) We have created a new class called "Software Craftsmanship" which address much of the concerns placed at the foot of the "Software Engineering" class.

4) It isn't the job of the university to teach any particular technology. It is the job to teach the theory and fundamentals.

5) Java probably isn't the best language but we have a new intro professor how is doing a good job with the intro course.

6) You never know who you will meet on the internet.

7) TRC and relational algebra are actually a pretty useful formalisms that helped me become a better user of databases.

8) The early circulum refresh has introduced many more software engineering principles earlier in the curriculum.

9) The best place to learn software engineering principles is on the job at a good company. There is no replacement for doing things for real.

10) There are good and bad things about our department but that is the same everywhere.

Hmm, my experiance may have been a bit different since mine was a 5 year program with a solid year and a half of courses before graduation without break. Most of what you are describing got at least two or three quarters of treatment at my school, depending on what tracks you took.

We also had a Software Engineering major which a lot of people in CS took courses from. The only required (non-track) CS courses in our suggested 4th/5th year were software engineering classes though. I think the coverage there was more than adaquate. Honestly it got a bit too "vocational" for my tastes.

On the other hand, most of my peers (70-80%?) took the AI/Games track; they probably got closer to the sort of coverage on the other topics that you're mentioning. IIRC only two arch classes (MIPS), no OS to speak of, and a single 3-month quarter of concurrent programming. I don't think that is satisfactory, but the last I have heard most of them have been doing fine in the real world. That stuff is neat and good fun, but I don't think it will really effect your ability to perform in the industry.