PROGRAMA DE ESTUDIOS UNIDAD DE APRENDIZAJE: Programación I. Datos de identificación ORGANISMO ACADÉMICO: UNIDAD ACADÉMICA PROFESIONAL Programa Educativo: Ingeniería de Software Programa revisada por: Dr. Marco Antonio Ramos Corchado M. en I. Guadalupe Ortega Cruz Fecha: Enero 2009 Nombre de la Unidad de Aprendizaje: Programación Programa elaborado por: Dra. Yulia Nikolaevna Ledeneva Aprobación por los H.H. Consejos Académico y de Gobierno Fecha: Diciembre 2008 Fecha: Clave HT HP TH CR TIPO DE UA Carácter Modalidad L40807 3 2 5 8 Curso Ob Op Presencial Prerrequisitos (Conocimientos previos) Algorítmica Unidad de aprendizaje antecedente: Algorítmica Unidad de aprendizaje consecuente Estructuras de datos Programas educativos en los que se imparte: Ingeniería de Software Ingeniería de Plásticos Ingeniería de Producción Industrial Revisión Metodológica: Dirección de Estudios Profesionales Coordinación de Desarrollo Curricular 1
II. Presentación del programa Hoy en día es muy cotidiano el uso de las computadoras y los programas computacionales (software). Más específico, Estado de México requiere ingenieros competentes para construcción de software de alta calidad que comprenda la realización del desarrollo, diseño e implementación de algoritmos computacionales. Esto implica que el aprendizaje de los conceptos básicos de programación es indispensable para la carrera de la ingeniería de software. El conocimiento eficiente de los conceptos de programación sirve como base en la formación de los alumnos debido a trascendencia que un aprendizaje teórico-práctico de los mismos supondrá para su carrera. Como parte de una formación integral para el ingeniero en software, se propone el siguiente programa que consta de seis unidades de competencia. En la primera se abordan los paradigmas y modelos de programación. En la segunda, se presenta metodología de programación y sus aplicaciones en el ámbito computacional. En la tercera unidad se describen los principios de la programación estructurada. En la cuarta unidad se aprenderán los tipos de datos y su aplicación para la construcción de programas. La quinta unidad se trata de conocer que son funciones y como se diseñan en un lenguaje de programación. La última unidad de competencia se refiere al desarrollo y diseño de programas, manejando registros, archivos y estructuras de datos definidos por el usuario. Conocerá como depurar los errores. 2
III. Ubicación de la unidad de aprendizaje en el mapa curricular Área Curricular Núcleo de Formación Programación e Ingeniería de Software Sustantivo 3
IV. Objetivos de la formación profesional a) Objetivos del programa educativo Formar profesionistas con los conocimientos, habilidades y actitudes necesarios para contribuir en cualquiera de los procesos de la Ingeniería de Software para proponer soluciones de calidad al manejo automatizado de información dentro de las organizaciones, aplicando un enfoque sistemático, disciplinado y cuantificado en la formulación, planeación, análisis, diseño, implantación y mantenimiento de software, así como la generación de conocimiento, metodologías y métricas en torno a la Ingeniería de Software. b) Objetivos del núcleo de formación Establece una relación interdisciplinaria, al agrupar disciplinas pertenecientes a un campo de estudio y el desarrollo de competencias específicas necesarias para el desempeño profesional. El núcleo sustantivo desarrollará en el alumno el dominio teórico, metodológico, técnico y axiológico del campo del conocimiento donde se inserta la profesión de Ingeniería de Software. Este núcleo podrá comprender unidades de aprendizaje comunes a los estudios profesionales de una misma área del conocimiento o equivalentes entre dos o más estudios profesionales que imparta la Universidad, lo que permitirá que se cursen y acrediten en un plan de estudios y Organismo Académico, Centro Universitario o Dependencia Académica, diferentes al origen de la inscripción del alumno. c) Objetivos del área curricular o disciplinaria Emplear las técnicas de diseño necesarias para formular y expresar algoritmos computacionales para los cuales existe solución, estructurando en forma eficiente la representación elegida para la información de que se trate en la construcción de programas en forma correcta y con base en metodologías existentes. 4
V. Objetivos de la Unidad de Aprendizaje a) Objetivos generales UNIDAD ACADÉMICA PROFESIONAL Aplicar los fundamentos de la programación estructurada para representar en términos algorítmicos la solución de un problema real automatizable. b) Objetivos de las unidades temáticas Unidades temáticas Unidad I. Paradigmas y modelos de programación Objetivos particulares, al término de la unidad temática los estudiantes serán capaces de: El estudiante conocerá los conceptos básicos de los paradigmas y modelos de la programación y tendrá la capacidad de construir los programas básicos. En específico, los objetivos particulares son - Conocer los conceptos básicos de los paradigmas de la programación. - Describir los modelos de programación realizando lecturas seleccionadas. - Construir los programas básicos. Unidad II. Metodología de la programación. El estudiante conocerá los conceptos básicos de la metodología de la programación y sus aplicaciones en el ámbito computacional y tendrá la capacidad de construir los programas básicos. En específico, los objetivos particulares son: - Conocer el concepto de los conceptos básicos de la metodología de la programación y sus aplicaciones en el ámbito computacional. - Identificar las características de un buen programa realizando lecturas seleccionadas. 5
- Desarrollar los programas básicos. - Conocer la estructura básica de un programa. Unidad III. Programación estructurada. El estudiante conocerá los conceptos de programación estructurada. En específico, los objetivos particulares son - Conocer principios de la programación estructurada. - Conocer compiladores y entornos de desarrollo. - Usar sintaxis de un lenguaje de programación estructurado. - Diseñar los programas básicos. Unidad IV. Tipos de datos. El estudiante aprenderá estudiante aprenderá los tipos de datos y los aplicará para la construcción de programas. En específico, los objetivos particulares son - Programar los tipos de datos básicos. - Construir los programas usando los tipos de datos básicos. - Construir los programas usando arreglos. - Construir los programas usando registros. - Conocer el concepto de apuntador. Unidad V. Modularidad El estudiante conocerá que son funciones y como se diseñan en un lenguaje de programación, que es recursividad y sus aplicaciones. En específico, los objetivos particulares son - Diseñar funciones en un lenguaje de programación. - Conocer las definiciones, propiedades y ejemplos de la recursividad a través de lecturas seleccionadas. - Conocer las aplicaciones de recursividad a través de lecturas seleccionadas. - Construir los programas desarrollando las funciones recursivas. 6
Unidad VI. Diseño de programas. Diseñará programas manejando registros, archivos y estructuras de datos definidos por el usuario. Conocerá como depurar los errores. En específico, los objetivos particulares son - Codificar los programas manejando registros - Codificar los programas manejando archivos - Codificar los programas manejando estructuras de datos definidos por el usuario. - Conocer como depurar los errores. 7
VI. Contenidos de la unidad de aprendizaje y su organización a) Unidades temáticas b) Temas Unidad I. Paradigmas y modelos de programación 1.1 Familias de lenguajes de programación. 1.2 Estructurado. 1.3 Orientado a objetos. Unidad II. Metodología de la programación. 2.1 Desarrollo de un programa. 2.2 Estructura de un programa. 2.3 Características de un buen programa. Unidad III. Programación estructurada. 3.1 Principios de la programación estructurada (descendente). 3.2 Compiladores y entornos de desarrollo. 3.3 Elementos básicos de un lenguaje estructurado. 3.4 Sintaxis de un lenguaje de programación estructurado. Unidad IV. Tipos de datos. 4.1 Datos primitivos. 4.2 Arreglos y registros. 4.3 Operaciones con arreglos unidimensionales y multidimensionales. 4.4 Operaciones con registros. 8
4.5 Concepto general de apuntadores. Unidad V. Modularidad 5.1 Datos globales y locales. 5.2 Parámetros y argumentos. 5.3 Funciones. 5.4 Recursividad. Unidad VI. Diseño de programas. 6.1 Manejo de entradas y salidas. 6.2 Manejo de registros y archivos. 6.3 Disposición de memoria. 6.4 Estructuras de datos definidas por el usuario. 6.5 Depuración de errores. 9
VII. Acervo bibliográfico y mesografía 1. Joyanes Aguilar, L. Fundamentos de programación. Libro de problemas (2ª edición). McGraw-Hill, 2003. 2. Joyanes Aguilar, L.: Fundamentos de programación. Algoritmos, estructuras de datos y objetos (3ª edición). McGraw-Hill, 2003. 3. Byron Gottfried. Programación en C. Editorial Mc Graw Hill, 2000. Deitel, H., and Deitel P. J. Cómo programar con C/C++. PrenticeHall Tercera ed. 2000. 4. Joyanes L y Zahonero I. Estructura de Datos: Algoritmos, abstracción y objetos. McGrawHill, 1998. 5. Levine, Guillermo. Computación y programación avanzada. Addison Wesley. 2001. 6. Antonakos Mansfiels. Programación Estructurada en C. Editorial Prentice Hall, 2000. 7. Peña Marí, Ricardo: Diseño de Programas. Formalismo y Abstracción (2ª edición). Ed. Prentice-Hall, 1997. 8. Pressman, R. S. "Ingeniería del Software: un enfoque práctico" (cuarta edición). Ed. McGraw-Hill, 1998. 9. Wirth, N.: "Algoritmos y Estructuras de Datos". Ed. Prentice-Hall, 1987. 10. Cairó, O., Metodología de la Programación: Algoritmos, Diagramas de Flujo y Programas, 3ra. Edición, Alfaomega Grupo Editor. 2005. 11. Allen B. Tucker, W. James Bradley, Robert D. Cupper, David K. Garnick. Fundamentos de Informática. Lógica, resolución de problemas, programas y computadoras. McGraw-Hill. 1994. 12. Harley R. Myler Arthur Weeks. The Pocket handbook of imaging processing algorithms in C. Ed. Prentice Hall, Englewood Cliffs. 1993. 10