Some schools have, in the last 8 years or so, started offering multiple distinct majors in programming. Using the curriculum from my school:
- Computer Science, which starts out with some intro programming courses in the first year, and then focuses on theoretical computer science, algorithms, and a bit of OS stuff. Most classes involve several smaller projects and homeworks, done solo or in pairs.
- Software Engineering, which starts out with the same intro programming courses, does a few classes of theory, and then goes into software development practices (testing, process methodologies, sofware metrics, requirements gathering) and software design (distributed system design, info system design, real-time/embedded design, subsystem design, etc)
Different schools do it differently, so the above is just a real-world example I'm familiar with. What I ask is: Is there a need for distinct majors in programming?