¿Deberían las universidades enfatizar la diferencia entre la informática y la ingeniería de software al tener dos especialidades diferentes?

Probablemente.

Hay mucho en común entre las dos disciplinas. Cualquier buen informático y cualquier buen ingeniero de software deben conocer los fundamentos de la informática, como los algoritmos, la complejidad, algunas matemáticas discretas y, por supuesto, algunos lenguajes de programación. Ambos también deben conocer el lado práctico de la disciplina, como herramientas de construcción, herramientas de control de revisión, la importancia de los efectos de caché en el rendimiento, etc. Más allá de esta base común, un ingeniero de software necesita saber cómo obtener los requisitos, cómo administrar esfuerzos de equipo, cómo mitigar riesgos, cómo estimar cuánto trabajo se requiere para desarrollar un programa, buenos patrones de diseño arquitectónico para tipos comunes de aplicaciones, etc. Un informático tiende a centrarse más en cuestiones de menor escala, como algoritmos novedosos para diferentes clases de problemas, cómo analizar la complejidad del algoritmo, cómo probar que los algoritmos son correctos, etc.

Quizás la forma más sensata de enseñar las dos disciplinas sería que ambas completaran un título universitario común, seguido de una maestría especializada para cada disciplina.

Te estás imaginando una distinción histórica que solo existió artificialmente.

Recuerde que toda la industria ha existido durante sustancialmente menos de un siglo, y la mayor parte proviene de la necesidad de resolver problemas específicos.

A veces vestimos algo de eso como “la teoría”, pero el hecho es que es solo una generalización leve de la práctica y que la distinción artificial hace que todos perjudiquen bastante. (Considere las Leyes de Codd, por ejemplo, que parecen teóricas hasta que se da cuenta de que él acaba de describir cómo las personas ya diseñaron bases de datos relacionales).

Si solo desea escribir código, probablemente no debería obtener un título en absoluto. Los títulos en informática son para personas que desean razonar sobre el código y las limitaciones de un enfoque particular. Eso es parte de la ingeniería de software, ya sea que los programadores individuales quieran aceptarlo o no.

La ingeniería de software, como su propia disciplina de pleno derecho (en oposición a un complemento al lado práctico de la informática), es algo relativamente reciente. Y la cuestión es que, en el campo práctico, hay una enorme cantidad de cruces.

Entonces, realmente, darles una base a ambos y dejar que las personas descubran lo que realmente quieren más tarde no es un mal enfoque si eso produce profesionales realmente buenos.