
Ask HN: What would you include in a tech curriculum? - spirodonfl
Imagine you&#x27;re asked to add your own topics and courses in a tech curriculum. What would you want to include?
======
AnimalMuppet
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.

