Ask HN: What would you include in a tech curriculum?

1 points by spirodonfl ↗ HN
Imagine you're asked to add your own topics and courses in a tech curriculum. What would you want to include?

1 comment

[ 0.23 ms ] story [ 20.3 ms ] thread
I'm going to talk about CS. And first, a disclaimer: I didn't major in CS, and my degree was 34 years ago. This is based on my impressions of where CS is, and may not reflect reality.

But I think that CS departments need to be split. There needs to be a CS department, in the College of Science (not the College of Engineering, where CS usually is), and a different Software Engineering department in the College of Engineering.

I say this because it seems to me that CS and Software Engineering are two separate sets of concerns, related but different. If someone had a chemistry degree, say, we would not expect them to be prepared for a career as a chemical engineer. At the same time, we expect a chemical engineering degree to require a fair knowledge of chemistry.

My perception is that our current system is not preparing people for careers as software engineers. It's preparing them for careers as computer scientists, which is not the same thing. And, of those who graduate who stay in computers, I'd guess that 95% of them will work as software engineers, and only 5% as computer scientists.

What specifically would I change in the curriculum, to make a software engineering (rather than CS) curriculum? At a minimum, I'd have a class where the students had to add a feature to an existing 200,000 line code base, where the original authors were not available to them. I'd have a class that covered several languages, with emphasis on the real-world strengths and weaknesses of those languages - when to use them, and when to avoid them. I'd have a class on tools used in software engineering - source code control systems, bug databases, requirements databases, static analysis tools, profilers, and so on. I'd have a class on dealing with social aspects, including detection of psychopaths, dealing with toxic people and environments, dealing with management, interviewing, and probably several other things I forgot. I'm sure I missed some classes that are needed.