COMUNICACIN CENTRO REGIONAL UNIVERSITARIO DE VERAGUAS SEMINARIO-TALLER: TCNICAS DE PROGRAMACIN IMPERATIVA NOMBRE DEL DOCUMENTO: PROGRAMACIN ANALTICA. PROFESOR RESPONSABLE: RAL ENRIQUE DUTARI DUTARI, M.SC. FECHAS DE INICIO Y FIN: DEL 14 AL 23 DE MARZO DE 2007. SEDE: CENTRO REGIONAL UNIVERSITARIO DE VERAGUAS. 2 1. GENERALIDADES. DENOMINACIN: Seminario-taller: Tcnicas de Programacin Imperativa. PROFESOR RESPONSABLE: Ral E. Dutari D., M.Sc. DEPARTAMENTO: Informtica, Electrnica y Comunicacin. CATEGORA DE LOS PARTICIPANTES: Estudiantes, docentes y profesionales de las carreras de Informtica, Electrnica y reas Afines. DURACIN DEL SEMINARIO-TALLER: Del 14 al 23 de marzo de 2006 (ocho das hbiles). HORARIO DE CLASES: De 2:00 PM a 5:00 PM, en el aula A-5 del C.R.U.V., de lunes a viernes. INTENSIDAD: Perodo presencial: 1 hora de teora y 2 horas de prctica, todos los das del seminario (24 horas). Perodo semi-presencial: 2 horas de trabajo prctico dirigido, todos los das del seminario (16 horas). En total, el seminario tiene una duracin de 40 horas. 3 2. JUSTIFICACIN. Los profesionales de la informtica tienen como una de sus principales herramientas a la programacin. Es el mecanismo a travs del que se informa al computador, las instrucciones que debe realizar. El dominio adecuado y eficiente de este instrumento es crucial en el desempeo profesional de los informticos de casi todas las reas. Sin embargo, es frecuente encontrar serias lagunas en la formacin de los profesionales y estudiantes de informtica en lo que a programacin se refiere. Nombres poco descriptivos de variables, algoritmos confusos, redaccin deficiente del cdigo fuente, poca documentacin del cdigo, son algunos de los problemas que diariamente presentan los profesionales de estas ciencias. Este seminario pretende que sus participantes afiancen y sistematicen sus conocimientos en las tcnicas de programacin imperativas, desde el procedimiento adecuado para analizar un problema, pasando por la fase de codificacin del algoritmo y su comprobacin a nivel de prueba de escritorio, y finalizando con la implementacin de dichos algoritmos en un lenguaje de programacin imperativa (C estndar o Pascal), con su correspondiente depuracin. A nivel de estructuras de datos, el seminario abarcar los tipos de variables bsicos (enteros, flotantes, caracteres, cadenas de caracteres, arreglos unidimensionales y bidimensionales), as como las estructuras de control fundamentales (entrada, salida, asignacin, seleccin, repeticin). El seminario se concentrar en la temtica de la programacin imperativa, los otros paradigmas de programacin, sern considerados en cursos separados. 4 3. DESCRIPCIN. Se profundiza en el procedimiento adecuado para resolver un problema. Se enfatiza en la importancia de la codificacin de algoritmos y la realizacin de pruebas de escritorio sobre ellos, para obtener una solucin eficiente y clara del problema planteado, independiente del lenguaje en que se implemente. Se implementan los algoritmos codificados en forma comparativa, utilizando los lenguajes C estndar y Pascal. Se depuran los programas implementados utilizando, las herramientas de depuracin de errores correspondientes. Se analizan, con cierta profundidad, los tipos de variables bsicos (enteros, flotantes, caracteres, cadenas de caracteres, arreglos unidimensionales y bidimensionales), as como las estructuras de control fundamentales (entrada, salida, asignacin, seleccin, repeticin). 4. OBJETIVOS GENERALES. 1. Mejorar las capacidades de resolver problemas sistemticamente. 2. Reforzar las capacidades de elaboracin, codificacin y depuracin de algoritmos. 3. Fortalecer la prctica de las buenas normas de la programacin. 4. Profundizar la comprensin de los tipos de datos fundamentales de la programacin imperativa. 5. OBJETIVOS ESPECFICOS. 1. Profundizar en el procedimiento adecuado para resolver un problema. 5 2. Reforzar los fundamentos de la teora de algoritmos, como base para la solucin sistemtica de problemas de programacin. 3. Obtener soluciones eficientes y claras de problemas planteados, al aplicar la codificacin correcta de algoritmos y su depuracin a travs de pruebas de escritorio. 4. Aplicar las instrucciones fundamentales de programacin de los lenguajes C estndar y Pascal, en la traduccin de algoritmos a cdigo fuente. 5. Depurar los errores del cdigo fuente, utilizando las herramientas de rastreo de errores que ofrecen los entornos de programacin de los lenguajes C estndar y Pascal. 6. Analizar los tipos de variables bsicos (enteros, flotantes, caracteres, cadenas de caracteres, arreglos unidimensionales y bidimensionales), as como las estructuras de control fundamentales (entrada, salida, asignacin, seleccin, repeticin). 6. PERFIL DE INGRESO. El seminario-taller est dirigido a estudiantes de las carreras de informtica, ingenieras, ciencias exactas, y reas afines que necesiten reforzar o profundizar su dominio sobre las tcnicas de programacin imperativas. No es requisito fundamental que los participantes hayan recibido previamente alguna preparacin en el rea de la programacin de computadoras. Es fundamental, que los participantes sepan analizar adecuadamente los problemas que se plantean. Adicionalmente, es importante que se posean algunas nociones sobre lgica matemtica, para garantizar que los objetivos del seminario se alcancen dentro de los trminos establecidos en el cronograma. 6 7. PERFIL DE EGRESO. Al finalizar el seminario-taller el participante estar capacitado para resolver problemas de programacin que involucren estructuras de datos estticas, de manera sistemtica, utilizando como herramientas, la teora bsica de algoritmos, y los lenguajes de programacin C estndar o Pascal. 8. RESUMEN DEL CONTENIDO. El primer mdulo del seminario se inicia analizando el concepto de algoritmo, como un conjunto de pasos finitos que resuelven, sin ambigedades, un problema particular. Posteriormente, se contina ofreciendo una visin estructural y funcional los procedimientos que se deben seguir al resolver problemas, en trminos de algoritmos. Luego, se contina con el anlisis de las herramientas disponibles para la representacin de algoritmos (el pseudocdigo y el diagrama de flujo). Finalmente, se consideran las estrategias bsicas para la solucin de problemas, aplicando algoritmos, tales como la metodologa divide y vencers, o la resolucin por analoga. El segundo mdulo, se concentra en el anlisis de los componentes estructurales de los diagramas de flujo y del pseudocdigo, que permiten representar a la lgica de la programacin estructurada, complementndolo con la solucin de una amplia gama de problemas representativos, aplicando estas herramientas de modelaje. 7 El tercer mdulo, en cambio, profundiza en la redaccin de los algoritmos, al mismo tiempo que introduce al participante en su depuracin, va prueba de escritorio. El mdulo se complementa con otra serie de problemas a resolver. El cuarto mdulo, se inicia con un estudio somero de los elementos estructurales de los lenguajes de programacin C y Pascal. Posteriormente, se establecen los procedimientos a seguir para la traduccin de un algoritmo cualquiera a uno de los lenguajes considerados. Finalmente, el mdulo se completa con otro grupo de problemas seleccionados a resolver por los participantes. Posteriormente, en el quinto mdulo, se consideran los criterios que se deben respetar al momento de redactar los programas en los lenguajes C y Pascal. Posteriormente, se analizan las tcnicas que se deben seguir al momento de depurar los programas. Finalmente, el mdulo se completa con la resolucin de otro grupo de problemas selectos. Finalmente, en el sexto mdulo se amplia el conocimiento de los participantes acerca de los tipos de variables y las estructuras de control bsicas de la programacin estructurada (asignacin, seleccin y repeticin), contrastando sus diferencias y resaltando sus semejanzas. El mdulo se complementa con otra asignacin de problemas propuestos. 9. METODOLOGA. Los conceptos tericos ms fundamentales, sern dialogados por el facilitador y los participantes, a fin de generar, como producto, las teoras fundamentales. 8 Posteriormente, se asignarn, para cada tema o subtema, una lista de ejercicios de muy diversa ndole, que se discutirn durante las sesiones de prctica en pequeos grupos. Otros problemas sern asignados como tarea, y sern resueltos y entregados por los participantes en la siguiente clase. Los problemas en mencin, sern presentados de acuerdo a la estructura que detalla a continuacin: Hoja de presentacin. Marco terico: Enunciado del problema, teora relativa al problema planteado, descripcin de la solucin manual del problema (concisa y directa). Definicin y descripcin de variables: indicar nombre, tipo y utilidad de cada variable mencionada. Diagrama de flujo o seudo cdigo de la solucin propuesta. Al menos, una prueba de escritorio aplicada sobre el diagrama de flujo / seudo cdigo propuesto. Listado del cdigo fuente del programa de solucin. Al menos, una prueba de escritorio aplicada sobre la codificacin propuesta. Ejemplo de resultados de salidas: muestre salidas representativas de la ejecucin del programa. Conclusiones: Anlisis de potencialidades y limitaciones de la solucin desarrollada. Referencias bibliogrficas utilizadas. 9 Todos los trabajos sern entregados va correo electrnico a la direccin rdutari@gmail.com, la evaluacin del mismo ser devuelta de la misma manera. Los problemas presentados sern evaluados de acuerdo a los criterios que se presentan a continuacin: Categora Aspecto Evaluado Puntos Obtenidos Total Calificacin Fondo Cdigo fuente Resuelve el problema? 15 Fondo El algoritmo est bien estructurado 15 Fondo El algoritmo resuelve el problema 15 Fondo El cdigo fuente responde al algoritmo? 15 Fondo El enunciado del problema es pertinente 15 Fondo El marco terico est adecuadamente estructurado 15 Fondo El marco terico responde al problema planteado 15 Fondo La descripcin del algoritmo es clara? 15 Fondo La estructura del documento es pertinente 15 Fondo La introduccin es significativa 15 Fondo La Tabla de contenidos esta bien estructurada 15 Fondo Las referencias bibliogrficas son pertinentes 15 Fondo Las variables son pertinentes 15 Fondo Los Ejemplos son pertinentes 15 Fondo Significancia de las conclusiones y recomendaciones 15 Forma Cdigo fuente 10 Forma Conclusiones (Potencialidades y Limitaciones) 10 Forma Descripcin De Algoritmos 10 Forma Descripcin de variables (nombre, tipo y utilidad) 10 Forma Diagrama de flujo o seudo cdigo 10 Forma Ejemplos prcticos 10 Forma Enunciado Del Problema 10 Forma Estructuracin Del Documento 10 Forma Hoja De Presentacin 10 Forma Introduccin 10 Forma Redaccin de las Referencias bibliogrficas 10 Forma Resultados de salidas 10 Forma Tabla De Contenidos 10 Forma Teora Relativa Al Problema 10 Total 0 365 0.00%
Como recursos audiovisuales necesarios para el desarrollo del curso, tenemos un aula de clases tradicional, acondicionada con su tablero de marcador, as como el acceso al laboratorio de informtica, sealado en las generales del curso, para el desarrollo de los laboratorios y proyectos asignados, y cuando sea necesario, los proyectores multimedia. 10 10. EVALUACIN DEL SEMINARIO-TALLER. Como evaluacin del seminario, se propone la siguiente distribucin de la calificacin: Asistencia: 30% Asignaciones Diarias: 30% Proyecto Final: 40% Total: 100% 11 11. PROGRAMACIN ANALTICA. OBJETIVOS ESPECFICOS CONTENIDOS ESTRATEGIAS METODOLGICAS RECURSOS UTILIZABLES EVALUACIN Profundizar en el procedimiento adecuado para resolver un problema. Diseo De Algoritmos. Concepto de algoritmo. Pasos para resolver problemas de programacin. Definicin del problema. Seleccin del mtodo de solucin. Creacin del algoritmo. Programacin del algoritmo. Depuracin y documentacin del programa. Validacin de la solucin. Instalacin, produccin y mantenimiento del programa. Herramientas para la representacin de algoritmos. Diagramas de flujo o flujo gramas. Seudo-cdigo Estrategias bsicas para la solucin de problemas. Divide y vencers Resolucin por analoga. Torbellino de ideas, orientado a conceptualizar al algoritmo como un conjunto de pasos finitos que resuelven, sin ambigedades, un problema. Discusin grupal donde se conceptualizan los pasos necesarios para resolver un problema de programacin. Discusin grupal donde analizan las herramientas disponibles para la representacin de algoritmos. Discusin grupal donde se plantean casos de estudio donde se apliquen las estrategias bsicas para la solucin de problemas. Tablero Marcadores Diapositivas Proyector Multimedia con PC Referencias bibliogrficas del tema. Elaboracin de un resumen de los conceptos fundamentales considerados en la clase considerado como asignacin. 12 OBJETIVO ESPECFICOS S
OS CONTENIDOS ESTRATEGIAS METODOLGICAS RECURS UTILIZABLES EVALUACIN Reforzar los fundamentos de la teora de algoritmos, como base para la solucin sistemtica de problemas de programacin. Teora de Algoritmos. Diagrama de Flujo Componentes estructurales Nombres de variables Tipos de datos Operadores Expresiones Inicio / Fin Lectura / Escritura Asignacin Seleccin Repeticin Ventajas / Desventajas Seudo-Cdigo Componentes Estructurales Nombres de variables Tipos de datos Operadores Expresiones Inicio / Fin Lectura / Escritura Asignacin Seleccin Repeticin Ventajas / Desventajas Problemas de aplicacin Discusin dirigida donde se analizan cada uno de los componentes estructurales de los diagramas de flujo Discusin dirigida donde se analizan cada uno de los componentes estructurales del seudo-cdigo. Solucin de problemas donde se aplican los componentes estructurales de los diagramas de flujo y del seudo-cdigo. Tablero Marcadores Diapositivas Proyector Multimedia con PC Referencias bibliogrficas del tema. Elaboracin de un resumen de los conceptos fundamentales considerados en la clase considerado como asignacin. Solucin de un conjunto de problemas de programacin, utilizando diagramas de flujo y seudo- cdigo (no se incluye la fase de depuracin). 13 OBJETI ESPECFICOS VOS OS CONTENIDOS ESTRATEGIAS METODOLGICAS RECURS UTILIZABLES EVALUACIN Obtener soluciones eficientes y claras de problemas planteados, al aplicar la codificacin correcta de algoritmos y su depuracin a travs de pruebas de escritorio. Criterios para redactar, codificar y depurar algoritmos Normas de redaccin Depuracin por prueba de escritorio Problemas de aplicacin. Discusin dirigida donde se establecen los criterios que se deben seguir al redactar algoritmos. Demostracin donde se indica el procedimiento a seguir para realizar las pruebas de escritorio a los algoritmos. Resolucin de problemas donde se aplican los conceptos considerados en clase. Tablero Marcadores Diapositivas Proyector Multimedia con PC Referencias bibliogrficas del tema. Elaboracin de un resumen de los conceptos fundamentales considerados en la clase considerado como asignacin. Solucin de un conjunto de problemas de programacin, utilizando diagramas de flujo y seudo- cdigo (incluyendo la fase de depuracin). 14 OBJETIV ESPECFICOS OS OS CONTENIDOS ESTRATEGIAS METODOLGICAS RECURS UTILIZABLES EVALUACIN Aplicar las instrucciones fundamentales de programacin de los lenguajes C estndar y Pascal, en la traduccin de algoritmos a cdigo fuente. Codificacin de Algoritmos. Componentes estructurales del Pascal Estructura general de un programa Pascal Palabras reservadas Nombres de variables Tipos de datos Operadores Expresiones Inicio / Fin Lectura / Escritura Asignacin Seleccin Repeticin Componentes estructurales del C estndar Estructura general de un programa en C estndar Palabras reservadas Nombres de variables Tipos de datos Operadores Expresiones Inicio / Fin Lectura / Escritura Asignacin Seleccin Repeticin Traduccin de algoritmos a lenguajes de programacin. Discusin dirigida donde se establecen los componentes estructurales de los lenguajes de programacin Pascal y C estndar. Demostracin donde se indica el procedimiento a seguir para realizar la traduccin de un algoritmo a un lenguaje de programacin particular. Resolucin de problemas donde se aplican los conceptos considerados en clase. Tablero Marcadores Diapositivas Proyector Multimedia con PC Referencias bibliogrficas del tema. Elaboracin de un resumen de los conceptos fundamentales considerados en la clase considerado como asignacin. Solucin de un conjunto de problemas de programacin, codificando diagramas de flujo y seudo- cdigo. 15 OBJETIVO ESPECFICOS S
OS CONTENIDOS ESTRATEGIAS METODOLGICAS RECURS UTILIZABLES EVALUACIN Depurar los errores del cdigo fuente, utilizando las herramientas de rastreo de errores que ofrecen los entornos de programacin de los lenguajes C estndar y Pascal. Criterios para depurar programas Normas de redaccin Depuracin con herramientas de rastreo de errores. Problemas de aplicacin. Discusin dirigida donde se establecen los criterios que se deben seguir al codificar los programas. Demostracin donde se indica el procedimiento a seguir para realizar la depuracin de programas. Resolucin de problemas donde se aplican los conceptos considerados en clase. Tablero Marcadores Diapositivas Proyector Multimedia con PC Referencias bibliogrficas del tema. Elaboracin de un resumen de los conceptos fundamentales considerados en la clase considerado como asignacin. Solucin de un conjunto de problemas de programacin, codificando diagramas de flujo y seudo- cdigo (incluyendo la fase de depuracin). 16 OS OBJETIVOS ESPECFICOS CONTENIDOS ESTRATEGIAS METODOLGICAS RECURS UTILIZABLES EVALUACIN Analizar los tipos de variables bsicos (enteros, flotantes, caracteres, cadenas de caracteres, arreglos unidimensionales y bidimensionales), as como las estructuras de control fundamentales (entrada, salida, asignacin, seleccin, repeticin). Tipos de variables y estructuras de control fundamentales Tipos de Variables bsicos Enteros Flotantes Caracteres Cadenas de Caracteres Arreglos Unidimensionales Arreglos Bidimensionales Estructuras de control fundamentales Entrada Salida Asignacin Seleccin Repeticin Discusin dirigida donde se establecen los atributos que poseen cada uno de los tipos de variables bsicos, considerando sus variaciones, contrastando sus diferencias, y resaltando sus semejanzas. Discusin dirigida donde se establecen los atributos que poseen cada una de las estructuras de control fundamentales, considerando sus variaciones, contrastando sus diferencias, y resaltando sus semejanzas. Resolucin de problemas donde se aplican los conceptos considerados en clase. Tablero Marcadores Diapositivas Proyector Multimedia con PC Referencias bibliogrficas del tema. Elaboracin de un resumen de los conceptos fundamentales considerados en la clase considerado como asignacin. Solucin de un conjunto de problemas de programacin, codificando diagramas de flujo y seudo- cdigo (incluyendo la fase de depuracin).
17 12. REFERENCIAS BIBLIOGRFICAS. 1. DEITEL, H. M. y DEITEL, P. J., Cmo programar en C / C++. Prentice- Hall, Segunda edicin, Mxico, 1995. 2. JOYANES AGUILAR, Luis. Fundamentos de programacin: Algoritmos y estructura de datos. McGraw-Hill, Segunda edicin, Espaa, 1996. 3. JOYANES AGUILAR, Luis. Metodologa de la programacin: Diagramas de flujo, algoritmos y programacin estructurada. McGraw-Hill, Primera edicin, Mxico, 1987. 4. JOYANES AGUILAR, Luis. Problemas de metodologa de la programacin. McGraw-Hill, Primera edicin, Espaa, 1990. 5. OBRIEN, Stephen. Turbo Pascal 7: Manual de referencia. McGraw-Hill, Primera edicin, Espaa, 1993.