¿Deberían la Ingeniería del Software y la Informática ser especializaciones separadas? [cerrado]

19

Durante décadas, el grado aceptado para convertirse en desarrollador de software fue "Compter Science".
Ya hemos tenido algunas preguntas sobre si ese título realmente prepara a los estudiantes para desarrollar software.

Algunas escuelas, en los últimos 8 años más o menos, comenzaron a ofrecer múltiples especializaciones distintas en programación. Usando el currículo de mi escuela:

  • Computer Science , que comienza con algunos cursos de programación de introducción en el primer año, y luego se enfoca en informática teórica, algoritmos y un poco de cosas del sistema operativo. La mayoría de las clases involucran varios proyectos más pequeños y tareas, hechas en solitario o en parejas.
  • La Ingeniería del Software , que comienza con los mismos cursos de programación de introducción, hace algunas clases de teoría y luego entra en prácticas de desarrollo de software (pruebas, metodologías de proceso, métricas de software, recopilación de requisitos) y diseño de software (diseño de sistema distribuido, diseño de sistema de información , diseño en tiempo real / integrado, diseño de subsistema, etc.)

Las diferentes escuelas lo hacen de manera diferente, por lo que lo anterior es solo un ejemplo del mundo real con el que estoy familiarizado. Lo que pregunto es: ¿hay una necesidad de especializaciones distintas en programación?

Fishtoaster
fuente
1
Realmente no. La forma de aprender estas habilidades no es enseñarles un curso, sino darles el trabajo real del proyecto
Casebash
¿Qué te hace pensar que no lo son? RIT ofrece tanto como grados.
Andy
Andy: Lo sé, fui a RIT y obtuve un título de SE. Estaba preguntando si deberían estar separados, no si lo están actualmente. :)
Fishtoaster

Respuestas:

28

Sí, deberían estarlo.

La relación entre la informática y la ingeniería de software es la misma que la relación entre física e ingeniería mecánica. Uno proporciona los antecedentes teóricos mientras que el otro toma esas teorías, junto con buenos principios de ingeniería, y los aplica al diseño e implementación de software.

Necesita ambos para producir software nuevo y mejor. Una buena educación en informática capacita a las personas para producir nuevos y mejores algoritmos, estructuras de datos, lenguajes y paradigmas de programación, compiladores y una serie de otras cosas que pueden usarse para mejorar los sistemas de software. Una buena educación en ingeniería de software, por otro lado, lo capacita para tomar estas herramientas y conocimientos obtenidos a través de un estudio científico de la computación, junto con un conocimiento del ciclo de vida de desarrollo de software y modelos de proceso para construir realmente el sistema que un cliente desea y necesita .

Thomas Owens
fuente
2
La analogía física / ingeniería es una que uso mucho. No contratamos físicos para diseñar y construir puentes, ¿por qué contratamos científicos informáticos para diseñar y construir programas?
HerbN
1
Debido a que los programas de ciencias de la computación enseñan un poco más sobre cómo construir programas que un programa de física típico;)
Wayne Werner
2
@WayneWerner: No, realmente no lo hacen.
DeadMG
3

Es bien sabido que un plan de estudios típico de CS no prepara uno para la industria, no tanto como quiere que esté preparado de todos modos. Entonces, sí, existe la necesidad de una especialización en ingeniería de software, y los dos deben ser distintos, aunque definitivamente en la misma facultad.

EpsilonVector
fuente
1

Deben ser disciplinas diferentes, pero no a nivel de pregrado. Simplemente no veo cómo pueden agrupar todo lo que se necesita para la Ingeniería del Software en una licenciatura. Del mismo modo que no vemos títulos universitarios en Ingeniería de Sistemas (donde las personas obtienen una maestría después de obtener un título en EE, CE, Ingeniería Mecánica o CS), es un caso similar con Ingeniería de Software.

Es un enfoque multidisciplinario basado en gran medida en informática y / o MIS. Las personas realmente se convierten en ingenieros de software en la práctica (y no solo en el título) después de seguir un curso avanzado y / o experiencia laboral en el campo, siempre que lo posterior se realice en entornos conductivos de ingeniería de software.

La mayoría de las personas tienen títulos de ingeniería de software, pero en realidad no han avanzado más allá de la codificación. Esto no es una molestia para ellos, sino una observación: no han estado suficientemente expuestos al tipo de trabajo que los ayudaría a acumular experiencia laboral más allá de la codificación. Peor aún, la mayoría de los trabajos y organizaciones se ejecutan atrozmente y no conducen la ingeniería de software adecuada.

Además, sin un poco de trabajo o madurez escolar, el material de ingeniería de software simplemente volará sobre las cabezas de la mayoría de los estudiantes de pregrado.

luis.espinal
fuente
Si desea saber cómo "acumulan todo lo que se necesita para Ingeniería de Software en un título universitario", eche un vistazo al primer programa de SE de pregrado en los EE. UU .: se.rit.edu
Thomas Owens
A menos que me falte algo, no lo estropearon. Simplemente crearon un plan de estudios extendido de 192 créditos. Esto va más allá del típico plan de estudios de pregrado de 60-80 créditos que se encuentra en CS y MIS: hay muchos más cursos en curso aquí, lo suficiente como para que sea comparable a tomar una especialización doble (u obtener una licenciatura y un título de posgrado). Me gusta el flujo y la integración de otras disciplinas de ingeniería en el último año. Es un plan de estudios perfecto que uno puede seguir. Pero simplemente prueba mi punto de que no se puede obtener SE con la carga típica de estudios universitarios solo.
luis.espinal
Y una advertencia que vería aquí es que gastas tanto esfuerzo y simplemente obtienes un solo título universitario (en lugar de completar un trabajo de curso similar para obtener doble especialización o un título universitario y de posgrado). Lamentablemente, la piel de oveja importa. Tal vez esa preocupación importará menos una vez que dichos grados SE se generalicen.
luis.espinal
Es un sistema trimestral, lo que significa que es exactamente la misma carga de trabajo que un título de CS (o cualquier otro título universitario) de la misma universidad. Al final, son 4 años de clases (10 semanas de clases, 1 semana de exámenes por trimestre, 3 trimestres por año), 1 año de cooperativo.
Thomas Owens
Realmente no. No es equivalente cuando se trata de carga de trabajo. Actualmente estoy buscando un segundo máster (CE + EE) en WPI que sigue un formato similar (3 trimestres, 10 semanas de clases + 1 semana para los exámenes). Por experiencia, programas como estos son más rigurosos y cubren más que el grado universitario típico de 60-80. No es una crítica del programa, eso sí . Creo que es necesario cubrir realmente la ingeniería de software a nivel de pregrado. Y un enfoque similar también debería ser necesario para la CS (ya que la CS típica ya no cubre suficientes prácticas prácticas y multidisciplinarias hoy en día)
Luis.espinal