2.12 Fundamentos de Desarrollo de Software (SDF)

La fluidez en el proceso de desarrollo de software es fundamental para el estudio de las ciencias de la computación. Para utilizar las computadoras de manera más efectiva para resolver problemas, los estudiantes deben ser competentes en la lectura y escritura de programas. Sin embargo, más allá de las habilidades de programación, deben poder seleccionar y utilizar estructuras de datos y algoritmos apropiados, así como herramientas modernas de desarrollo y prueba.

El área de conocimiento SDF reúne conceptos y habilidades fundamentales relacionados con el desarrollo de software, centrándose en aquellos que deben enseñarse al inicio de un programa de ciencias de la computación, típicamente en el primer año. Esto incluye conceptos de programación fundamentales y su uso efectivo para escribir programas, el uso de estructuras de datos fundamentales que pueden ser proporcionadas por el lenguaje de programación, conceptos básicos de buenas prácticas de programación para escribir programas de calidad, la lectura y comprensión de programas, y cierta comprensión del impacto de los algoritmos en el rendimiento de los programas. Las 43 horas de material en esta área de conocimiento pueden complementarse con material central de otras áreas a medida que los estudiantes avanzan a cursos de nivel intermedio y superior.

Esta área de conocimiento asume un lenguaje de programación contemporáneo con soporte incorporado para tipos de datos comunes, incluidos tipos de datos asociativos como diccionarios/mapas, como vehículo para introducir a los estudiantes a la programación (por ejemplo, Python, Java). Sin embargo, esto no pretende desalentar el uso de lenguajes más antiguos o de bajo nivel para SDF: las unidades de conocimiento a continuación pueden adaptarse adecuadamente al lenguaje real utilizado.

El surgimiento de la IA generativa y los Modelos de Lenguaje Grande (LLMs), que pueden generar programas para muchas tareas de programación, sin duda afectará a la profesión de programación y, en consecuencia, a la enseñanza de muchos temas de CS. Sin embargo, para poder utilizar efectivamente la IA generativa en tareas de programación, un programador debe tener una buena comprensión de los programas y, por lo tanto, aún debe aprender los fundamentos de la programación y desarrollar habilidades básicas de programación, que es el objetivo de SDF. En consecuencia, consideramos que los resultados deseados para SDF deberían permanecer iguales, aunque diferentes instructores ahora podrían dar más énfasis a la comprensión, documentación, especificaciones, análisis y pruebas de programas. (Esto es similar a enseñar a los estudiantes multiplicación, suma, etc., aunque se puedan usar calculadoras para hacerlo).

KA Core Tier1 Core Tier2 Electivo
2.12.1 Fundamentos de Programación I     No
2.12.2 Fundamentos de Programación II     No
2.12.3 Estructuras de Datos Fundamentales     No
2.12.4 Algoritmos     No
2.12.5 Prácticas de Desarrollo de Software     No
2.12.6 Sociedad, ética y la Profesión     No



Subsecciones
Generado por Ernesto Cuadros-Vargas , Sociedad Peruana de Computación-Peru, basado en el modelo de la Computing Curricula de IEEE-CS/ACM