UNIVERSIDAD DE LOS LLANOS VICERRECTORIA ACADEMICA SECRETARIA TECNICA DE ACREDITACION FACULTAD: PREGRADO: POSTGRADO: Nro 1 2 3 4 5 6 7 8 9 CIENCIAS BÁSICAS E INGENIERÍA INGENIERÍA DE SISTEMAS CARACTERISTICAS DENOMINACION DEL CURSO: CODIGO: AREA: CURSO PROGRAMATICO: PERIODO ACADEMICO: NARURALEZA CARÁCTER: CREDITOS: TOTAL INTENSIDAD HORARIA Intensidad de trabajo presencial Intensidad de trabajo independiente 10. JUSTIFICACION: INFORMACION Fundamentos de programación 60141 Ingeniería de software CPC Ing. De software II 2006 TEORICO - PRACTICA Obligatorio 4 (1-1) 192 96 96 El desarrollo de Software es un aspecto fundamental en la solución práctica de problemas, para lo cual una herramienta tecnológica actualizada es materia importante para lograr la implementación automatizada de dicha solución, tal herramienta es un lenguaje de programación, el cual brinda la sintaxis necesaria para que el Ingeniero realice el aplicativo útil para los usuarios. 11. PROPOSITOS: Comprenda el concepto y el desarrollo de algoritmos y su aplicación en la solución de problemas. Desarrolle capacidad de abstracción en el análisis de situaciones a resolver Desarrolle hábitos relacionados con el autoaprendizaje y la cultura, necesarios para la solución de problemas. Solucione problemas básicos en un lenguaje de programación determinado. UNIVERSIDAD DE LOS LLANOS VICERRECTORIA ACADEMICA SECRETARIA TECNICA DE ACREDITACION 12. COMPETENCIAS QUE DESARROLLARA EL CURSO: 1. Identificar el orden lógico de situaciones cotidianas y su aplicación en la solución de problemas. 2. Identificar los dispositivos internos de la CPU y su forma de interacción para el procesamiento de la Información. Conocer los fundamentos de la programación. 3. Conocer las diferentes maneras en que el computador traduce código fuente a instrucciones ejecutables. 4. Identificar los aspectos importantes de la evolución y tipos de lenguajes de programación. 5. Considerar los aspectos generales de un lenguaje de programación. 6. Desarrollar la capacidad de resolver problemas utilizando algoritmos eficientes. 7. Desarrollar la capacidad de representar soluciones a problemas cotidianos/reales a través de las diferentes herramientas de diagramación. 8. Relacionar los tipos de datos y la forma de almacenamiento de la información. 9. Identificar las secuencias de instrucciones necesarias para especificar las operaciones que debe ejecutar la computadora. 10. Manejar la sintaxis de un lenguaje determinado. 11. Conocer y aplicar de manera eficiente y eficaz las diferentes estructuras de control (Secuenciales - selectivas - repetitivas) dentro de un programa. 12. Realice programas modulares. 13. Manejar estructuras básicas de almacenamiento de información. 14. Sea capaz de desarrollar programas que requieran operaciones de clasificación de datos. 13. DIMENSIONES DE LAS COMPETENCIAS QUE DESARROLLA: ITEM COGNITIVA PRAXIOLOGICA ACTITUDINAL COMUNICATIVA 1 2 Comprenda desarrollo de proceso lógico. el un Determine necesidades y requerimientos que se van utilizar y aplicar en la solución de problemas. Objetividad para analizar situaciones cotidianas. Comprenda la historia, evolución de la programación, los lenguajes y el impacto social que desencadena. Participe en el equipo de trabajo, aportando ideas y soluciones utilizando una terminología adecuada. Trabajo en equipo, y participación en grupo. Comprenda los procesos que se llevan a cabo internamente cuando el sistema de computación esta encendido y el flujo de datos. UNIVERSIDAD DE LOS LLANOS VICERRECTORIA ACADEMICA SECRETARIA TECNICA DE ACREDITACION 3 4 5 6 7 8 9 10 11 12 Comprenda el concepto de traductor, compilador e interprete. Conozca la evolución y los tipos de lenguajes de programación. Conozca las características, ventajas y desventajas de algunos lenguajes de programación. Comprenda el concepto de algoritmo. Representar mediante diagramación las soluciones dadas mediante algoritmos a situaciones/problemas cotidianos. Utilizando los diagramas de flujo y los diagramas N-S. Conozca la forma en que se almacena la información en el computador. Comprenda el funcionamiento de las instrucciones en cada paso. Conozca la estructura de un programa en un lenguaje determinado. Comprenda, analice y aplique de manera adecuada las diferentes estructuras de control (Secuenciales selectivas - repetitivas) en un programa. Comprenda la estructura de una función. Establezca un criterio para determinar el uso del proceso de traducción o compilación. Establezca la diferencia entre lenguajes de alto, medio y bajo nivel. Motivación para profundizar en los conocimientos. Establezca criterios para analizar las ventajas o desventajas de la utilización de un lenguaje de programación para resolver un problema determinado. Analice y Describa una situación real mediante secuencia de pasos lógicos. Asocie eventos simples y complejos a representaciones graficas estandarizadas (ANSI). Adquiera la habilidad critica. Diferencie y utilice los tipos de datos de manera óptima. Desarrolle la habilidad de optimizar recursos. Asocie a cada forma de representación una instrucción. Adquiera habilidad asociación. De soluciones a un problema utilizando un lenguaje de programación especifico. Utilice las estructuras de control de una manera adecuada y eficaz para codificar algoritmos previamente diseñados y depurados. Desarrolle hábitos de autoaprendizaje, necesarios para la solución de problemas. Desarrolle la lógica y la habilidad para optimizar situaciones concretas de manera rápida. Desarrolle programas de forma modular. Adquiera la habilidad de descomponer un problema para solucionarlo de una Motivación para profundizar en los conocimientos. Desarrolle abstracción. la Desarrolle la habilidad de expresar sus ideas de forma grafica. la de UNIVERSIDAD DE LOS LLANOS VICERRECTORIA ACADEMICA SECRETARIA TECNICA DE ACREDITACION manera eficiente. 13 14 Comprenda la forma como se almacenan los datos en un vector y en una matriz. Desarrolle programas utilizando vectores y matrices. Conozca los algoritmos clásicos de ordenamiento y búsqueda de datos. Implemente los algoritmos clásicos de ordenamiento y búsqueda de datos. más Aprovechar las características que ofrecen las matrices y los vectores para optimizar las soluciones. La capacidad de selección de herramientas adecuadas a casos específicos. 14. UNIDADES TEMATICAS: UNIDAD TEMATICA Estrategias para el análisis y solución de problemas. Generalidades de programación Concepto de compilador, interprete ESTRATEGIA PEDAGOGICA Mapas conceptuales, solución a problemas cotidianos/reales, talleres individuales, debate/intercambio de criterios sobre guías clase anterior. Líneas de tiempo, cuadros sinópticos, mapas conceptuales, Análisis de Impacto actual. Debate/Intercambio de criterios. Conferencia Traductores (Interpretes y Compiladores), Funcionamiento y técnicas actuales usadas por los lenguajes de programación. Evolución de los lenguajes de programación Video - computación. ensayo. - análisis de etapas de la historia de la programación. - debate. Video Introducción a la computación. Resumen escrito y guías con mapas conceptuales. Generalidades de los lenguajes de programación Conferencia C/C++/JAVA. Discusión sobre los diferentes puntos de vista. Ventajas, Aplicaciones, Entorno, Utilidad, RECURSOS PEDAGOGICOS Computador portátil. VideoBeam Clase Magistral TIEMP. PRES. TIEMP. INDEP. 4 4 Clase Magistral. Monitor 4 4 Clase Magistral. Monitor 4 4 Videobeam Computador portátil. Clase Magistral 6 6 6 6 Clase Magistral Monitor UNIVERSIDAD DE LOS LLANOS VICERRECTORIA ACADEMICA SECRETARIA TECNICA DE ACREDITACION Conclusiones. individual. Algoritmia Diagramación Tipos de datos Instrucciones Estructura de un programa Control de flujo Funciones y procedimientos Ensayo Mapas conceptuales. solución a problemas cotidianos/reales. - talleres individuales Fundamentación teórica ejemplos ejercicios resueltos por el docente. Resumen Escrito (guía) estándares ANSI diagramación "Flujo" y "NS". Realización por parte de los estudiantes de ejercicios. - talleres. Clase Magistral Monitor 8 8 Computador portátil VideoBeam Clase Magistral 6 6 Fundamentación teórica, Mapas Conceptuales Ejemplos ejercicios resueltos por el docente. Resumen Escrito (guía) a través de cuadro sinóptico. Optimización por parte de los estudiantes de ejercicios. - talleres. Conferencia IDE's C/C++/JAVA. Y demás herramientas de compilación: borland, devc++, jbuilder, turboc, gcc, visualc++, javac. Ejemplos prácticos en algunos de ellos. Fundamentación teórica ejemplos ejercicios resueltos por el docente. Lenguaje C++. - talleres. Cuadros comparativos de Semejanzas y diferencias con Lenguajes de programación c++ y java. Mapas conceptuales y cuadros comparativos en diferentes entornos de desarrollo y herramientas de programación, las estructuras de control fundamentales como: PS, C, C++, JAVA. Guía Multimedia Interactiva C++. Fundamentación teórica ejemplos ejercicios resueltos por el docente. - Computador portátil VideoBeam Clase Magistral Laboratorio asistido Monitor 4 4 Computador portátil VideoBeam Clase Magistral Laboratorio asistido Monitor 4 4 Clase Magistral Monitor 4 4 Clase Magistral Laboratorio asistido Monitor Portátil Videobeam 20 20 Clase Magistral Laboratorio asistido 12 12 UNIVERSIDAD DE LOS LLANOS VICERRECTORIA ACADEMICA SECRETARIA TECNICA DE ACREDITACION Arreglos unidimensionales y bidimensionales Algoritmos de Ordenamiento y búsqueda Optimización por parte de los estudiantes de ejercicios. - talleres. Fundamentación teórica ejemplos ejercicios resueltos por el docente. Optimización por parte de los estudiantes de ejercicios. - talleres. Fundamentación teórica ejemplos ejercicios resueltos por el docente. Optimización por parte de los estudiantes de ejercicios. - talleres. Monitor Portátil Videobeam Clase Magistral Laboratorio asistido Monitor Portátil Videobeam. Clase Magistral Laboratorio asistido Monitor Portátil Videobeam. 8 8 6 6 15. SISTEMA DE EVALUACION Las pruebas consideradas en el curso para evaluar las competencias son : Prueba oral, Prueba escrita, pruebas apoyadas en guías de observación, escalas de actitudes, cuestionarios, entrevistas, y finalmente las pruebas basadas en el análisis y verificación de la actuación real o simulada o en la apreciación de la calidad de productos terminados. Estos tipos de pruebas, se clasifican como: PARCIALES, evalúan el desarrollo progresivo del estudiante durante el semestre y FINALES que evalúan el desarrollo de las competencias propuestas por el curso, al final del periodo académico. 16. FUENTES BIBLIOGRAFICAS: 16.1 FUENTES DE CONSULTA BASICA FUNDAMENTOS DE PROGRAMACION – 3RA EDICION ALGORITMOS, ESTRUCTURAS DE DATOS Y OBJETOS LUIS JOYANES AGUILAR MC GRAW HILL 2004 COMO PROGRAMAR EN C/C++ (2DA EDICION) H.M. DEITEL PRENTICE may (1995) ALGORITMOS – CONCEPTOS BASICOS (3RA EDICION 1996) CESAR A. BECERRA SANTAMARIA APRENDIENDO BORLAND C++ EN 21 DIAS CRAIG ARNUB RPENTICE may – 1999 UNIVERSIDAD DE LOS LLANOS VICERRECTORIA ACADEMICA SECRETARIA TECNICA DE ACREDITACION C++ GUÍA DE AUTOENSEÑANZA SCHILDT Herbert MCGRAWHILL. C++ INICIACIÓN Y REFERENCIA. JOYANES LUIS MCGRAWHILL. www.programacion.net www.lawebdelprogramador.com www.lavariable.com www.programation.com www.programar.net 16.2 FUENTES DE CONSULTA PARA PROFUNDIZACION: UNA HERRAMIENTA PARA LA POO EDITORIAL POR COMPUTADOR BECERRA CESAR C++ A SU ALCANCE. MCGRAWHILL JOYANES LUIS FUNDAMENTOS DEL DISEÑO Y LA PROGRAMACIÓN ORIENTADO A OBJETOS MCGRAWHILL FERNÁNDEZ SERGIO INGENIERÍA DEL SOFTWARE UN ENFOQUE PRÁCTICO MCGRAW HILL PRESMAN ROGER ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS ADDISON WESLEY BOOCH GRADY PROGRAMACIÓN ORIENTADA A OBJETOS MCGRAW HILL JOYANES LUIS UNIVERSIDAD DE LOS LLANOS VICERRECTORIA ACADEMICA SECRETARIA TECNICA DE ACREDITACION 17. RECURSOS Y MEDIOS TECNOLOGICOS: Videobeam Computador portátil Laboratorios con PC’s (Linux/windows) Compilador de Lenguaje C/C++ Editor de Textos Software Curso Multimedia Interactivo (Freeware) Acceso a Internet Sitios Web descritos en las fuentes bibliográficas 18. RECURSOS HUMANOS (Equipo profesional que participará en el desarrollo del curso) Docente Monitor Auxiliar de laboratorio Director de Programa Ingeniería de Sistemas Docentes Línea Ingeniería de Software FCBI - Unillanos