Universidad Nacional del Nordeste Facultad de Ciencias Exactas y Naturales y Agrimensura FORMULARIO PARA LA PRESENTACION DE PROGRAMAS ANALITICOS Y DE EXAMEN 1. IDENTIFICACION 1.1. FACULTAD DE CIENCIAS EXACTAS Y NATURALES Y AGRIMENSURA 1.2. DEPARTAMENTO: Informática. 1.3. AREA: Programación 1.4. ASIGNATURA: Programación I 1.5. CARRERAS: Licenciatura en Sistemas de Información 1.6. Año en que se dicta: 1.7. PROFESOR RESPONSABLE: 1° - 2do Cuatrimestre Apellido y Nombres: Agrim. CASTOR FEDERICO HERRMANN Máximo Título Alcanzado: Agrimensor Nacional 1.8. MODALIDAD: Cuatrimestral 1.9. CARGA HORARIA TOTAL: 1.10. CARGA HORARIA SEMANAL TEORICA/PRACTICA: 9 (3 teóricas y 6 prácticas) 1.11. Obligatoriedad y optividad. Obligatoria. 144 (9 horas semanales) 2. DESCRIPCION El dictado de la materia se realiza en la forma tradicional. Hay clases teórico-práctica y clases prácticas exclusivamente. También esta previsto un horario de clase de laboratorio donde se presentan, explican y se pone en practica la codificación de las soluciones planteadas por los alumnos a cada uno de los problemas que componen la serie de trabajos prácticos en un lenguaje de programación. En las clases teórico-práctica se inculcan sólidos conocimientos para la resolución de problemas complejos utilizando algoritmos para el manejo de distintos tipos de estructuras de la información, incluyendo técnicas para optimización de algoritmos.. El dictado de cada clase teórica se apoya fundamentalmente en el uso del pizarrón y retroproyector en el cual se explican los distintos temas y a la que normalmente se la complementa con las explicaciones y ampliaciones del caso, como así también el uso de computadoras personales con el cañón. En las clases prácticas se resuelven series de ejercicios y luego se explican en el pizarrón a efectos de comprobar los resultados. También se conforman grupos para la resolución de los prácticos. Las clases de laboratorio son desarrolladas utilizando computador personal con el cañón. Fundamentalmente en las clases de laboratorio la actividad que realiza es la codificación en un lenguaje de programación de los ejercicios de cada una de las series a los efectos de que el alumno se vaya familiarizando en el uso de un lenguaje de programación y a partir de las especificaciones de entrada de cada uno de los problemas y aplicando a los mismos los procesos necesarios para la obtención de la salida, ver plasmada esa salida en el ordenador. Se prevé al final del cuatrimestre, exclusivamente para las clases de laboratorio, la entrega de un trabajo integral , que consistirá en la codificación, depuración, implementación y ejecución de varios ejercicios de las series prácticas. La evaluación de los alumnos contempla dos parciales individuales, cada uno de ellos con su respectivo recuperatorio y un examen parcial extraordinario. Universidad Nacional del Nordeste Facultad de Ciencias Exactas y Naturales y Agrimensura El alumno para aprobar la asignatura tiene la siguiente alternativa: a) Regularizar y rendir el examen teórico final: Es decir, aprobar ambos parciales con notas mayores o iguales a seis(6) y aprobar el examen final. b) Aprobar examen final libre (teórico – practico): según programa analítico. En todos los casos las evaluaciones se realizan sobre el programa vigente al momento de la regularidad. Desde la asignatura se intenta que el alumno comprenda la continuidad y articulación con todas y cada una de las asignaturas, que verá posteriormente, del área de Programación. Se trata de que el alumno tenga incorporado en su saber la aplicación de técnicas algorítmicas que posteriormente (como en Programación I y en todas las otras Programaciones) codificara en algún lenguaje pre establecido. A los efectos de promover la articulación del área, desde la asignatura se desarrollan actividades (dictado de cursos y talleres para alumnos y docentes), esto favorece la integración de los docentes y alumnos y permite entrever los puntos de contacto entre las asignaturas. 2.1. OBJETIVO(S) GENERALES Se instruye al alumno sobre los conceptos de algoritmos y estructura de la información. Utiliza algoritmos para el manejo de arreglos, pilas, colas, grafo y árboles. Aprende a solucionar problemas de búsqueda, clasificación e intercalación utilizando algoritmos, como también el uso de algoritmos para el manejo de estructuras recursivas. A través de la aplicación de técnicas de aprendizaje se iinstruye al alumno sobre programación estructurada, formalización. Comprende los algoritmos de cortes de control y de apareamiento de archivos. Como también la utilización de técnicas de optimización de algoritmos e incursiona sobre la resolución de algoritmos mas complejos como ser del tipo poda, voraces, evolutivos, divide y vencerás. Básicamente se pretende que el alumno logre: • Ubicarse en las distintas etapas de la resolución de problemas con computadoras. • Identificar las distintas partes de un programa. • Modelar problemas sencillos dividiéndolos en módulos. • Construir algoritmos utilizando las estructuras de control básicas (secuencia, decisión, selección e iteración) y tipos de datos simples. • Resolver problemas utilizando estructuras de datos compuestas (arreglos , archivos, Pilas, colas, listas) • Depuración de los algoritmos • Reconocer la importancia de utilizar la metodología de Programación Estructurada en el desarrollo de software 2.2. TIPO/S DE ACTIVIDAD/ES: ( marque con una cruz) Clases Utiliza Prácticas X Teóricas X Laboratorio X Universidad Nacional del Nordeste Facultad de Ciencias Exactas y Naturales y Agrimensura Trabajo Campo Seminario Otros 2.2.1. Técnicas o Estrategias didácticas: (Exposición del docente/del alumno, trabajos grupales, estudio independiente, resolución de situaciones problemáticas, resolución de ejercicios de aplicación, presentación de monografías, de informes, etc., presentación y desarrollo de trabajos de laboratorio integral, etc.) La exposición teórica se desarrolla a través de clases expositivas del profesor, complementándose con la lectura previa de materiales puestos a disposición del alumnado. La resolución de ejercicios de tipo práctico es realizada por el alumno en forma grupal y/o en forma individual. Teniendo en cuenta la génesis del tipo de asignatura, lo ideal es fomentar el tratamiento lógico de los problemas por cada uno de los alumnos, por lo que habitualmente la resolución de los problemas si bien pueden ser encarados grupalmente, una vez entendido el mismo se hace hincapié para que la solución sea aportada utilizando el intelecto individual. 2.2.2. Para el aprendizaje autónomo: En el sitio Web de la asignatura: el http://exa.unne.edu.ar/depar/areas/informatica/programacion1/public_html/generalidades.php) alumno encontrará abundante material de estudio, como también, series de trabajos prácticos, el desarrollo de monografías, la codificación en lenguajes de programación de una gama de ejercicios prácticos, bibliografía, sitios en la red relacionados con algoritmos, etc., que le permitirá expandir en forma muy completa su visión en la aplicación de algoritmos de distintos tipos de complejidad También se le brinda información adicional que va desde lo más simple hasta accesos a importantes documentos, libros, herramientas CASE y CASE-I y otras universidades con similares contenidos en asignaturas equivalentes. De igual manera, se recomienda el libro de la cátedra sobre Programación. 2.3. REGIMEN DE REGULARIDAD Se regulariza con los dos parciales aprobados (primer y segundo) con notas mayores o iguales a seis (6) y el 75 % de asistencias a las clases practicas. 2.4. EXAMEN FINAL En el caso de que el alumno regularice la materia (ambos parciales aprobados con notas mayores o iguales a seis(6)), deberá rendir un examen final teórico en el modo convencional. 2.5 PROGRAMA ANALITICO 2.5.1. CONTENIDOS POR UNIDAD: Tema I. Algoritmo y programación Profundización de los conceptos de: análisis del problema; diseño, implementación y depuración del algoritmo; programación; ejecución y pruebas; concepto de algoritmo; sus características; metodologías para resolver un problema; estructuras básicas. Universidad Nacional del Nordeste Facultad de Ciencias Exactas y Naturales y Agrimensura Tema II. Programación en lenguaje estructurado Elementos del lenguaje de programación. Caracteres. Constantes. Variables. Operadores. Expresiones aritméticas. Instrucciones,. Instrucciones de Comienzo y Fin. Instrucciones de transferencia. Aritméticas. Asignación. Instrucciones de entrada (lectura de datos). Instrucciones de salida (escritura de resultados). Instrucciones de control. Condicional. Elementos básicos de programación: Contadores. Acumuladores. Iteración, o Bucle o Rulo. Funciones y Subprogramas . Tema III. Estructura dinámicas de datos lineales: Pilas, colas, listas. Estructuras de datos lineales. Listas. Representación de listas. Operaciones. Listas enlazadas. Listas circulares. Pilas. Representación de pilas. Operaciones. Colas. Representación de colas. Colas circulares. Doble cola. Tema IV. Estructura de datos: No lineales: Grafo, Árboles. Estructura de Datos no lineales. Árboles. Introducción. Representación. Árboles binarios. Árbol binario de búsqueda. Operaciones básicas. Grafos. Introducción. Representación. Operaciones básicas. Tema V. Búsqueda, clasificación e intercalación. (Algoritmos de ordenamientos). Búsqueda. Búsqueda Secuencial. Búsqueda Máximos y Mínimos. Búsqueda Binaria. Clasificación u Ordenación. Métodos Directos. Ordenación por Intercambio Directo (Burbuja). Ordenación por Selección (Obtención sucesivas de menores). Ordenación por Inserción (Baraja). Métodos Logarítmicos. Método de Shell (Inserción con incrementos decrecientes). Método de Clasificación Rápida (QuickSort). Intercalación Tema VI. Programación Estructurada. Subprogramas. Procedimientos y funciones Programación Estructurada. Introducción. Herramientas. Estructuras básicas. Figuras Lógicas. Teorema de la Estructura. Recursos abstractos. Diseño descendente (top-down). Métodos. Método Jackson. Método Bertini. Método Warnier. Comparación con programación tradicional. Ejemplificación. Ventajas. Inconvenientes. Introducción a los subalgoritmos o subprogramas. Funciones. Declaración e invocación de funciones. Procedimientos (subrutina). Procedimiento versus funciones. Sustitución de parámetros. Ámbito: Variables locales y globales. Funciones y procedimientos como parámetros. Efectos laterales. Tema VII. Recursividad. Recursividad. Concepto. Recursividad directa e indirecta. Recursividad versus iteración. Recursividad infinita. Ejemplos de problemas complejos de recursividad. Ventajas y desventajas. Tema VIII. Archivos (ficheros) secuenciales y directos. Noción de archivo. Estructura jerárquica. Concepto y definiciones. Soporte secuenciales y direccionables. Organización de archivos. Operaciones sobre archivos. Gestión de archivos. Eliminación de archivos. Mantenimiento de archivos. Procesamiento de archivos secuenciales. Procesamiento de archivos directos. Procesamiento de archivos secuenciales indexados. Tema IX. Optimización de Algoritmo Concepto. Objetivos. Factibilidad. Reglas de Jackson. Formas de optimización. Por afinación. Por algoritmos. Recursos. Tablas. Parámetros. Matemáticos. Modelos de clasificación. Distintos métodos. Eficiencia de algoritmos. Tema X. Algoritmos complejos. Algoritmos complejos. Descripción. Tipos: Ramificación y poda; Vuelta atrás, (Backtracking); Divide y Vencerás; etc.. Estrategia de resolución. Diseño e implementación. Aplicaciones. Ventajas y desventajas. Concepto de algoritmos evolutivos. Paradigmas de algoritmos evolutivos. Comparación de algoritmos evolutivos. Universidad Nacional del Nordeste Facultad de Ciencias Exactas y Naturales y Agrimensura 2.5.2. BIBLIOGRAFIA: • Especifica: 1. Fundamentos de programación. Algoritmos, estructuras de datos y objetos; Luis Joyanes Aguilar; 2003; Editorial: MCGRAW-HILL. ISBN: 8448136642. 2. ESTRUCTURA DE DATOS; Luis Joyanes Aguilar, 2001,Editorial: MCGRAW-HILL. ISBN:.ISBN: 8448120426. 3. FUNDAMENTOS DE PROGRAMACIÓN. Libro de Problemas en Pascal y Turbo Pascal; Luis Joyanes Aguilar Luis Rodríguez Baena y Matilde Fernandez Azuela; 1999; Editorial: MCGRAW-HILL. ISBN: 844110900. 4. PROGRAMACIÓN; Castor F. Herrmann,María E. Valesani.; 2001; Editorial: MOGLIA S.R.L..ISBN: 9874338326. 5. ESTRUCTURA DE DATOS; Cairó y Guardati; 2002; Editorial: MCGRAW-HILL. ISBN: 9701035348. • General: 1. ESTRUCTURA DE DATOS, Luis Joyanes Aguilar, 1998,Editorial: MCGRAW-HILL. ISBN: 8448120426. 2. ESTRUCTURA DE DATOS Libro de Problemas, Luis Joyanes Aguilar, Fernández Matilde , Rodriguez Luis; 1999; Editorial: MCGRAW-HILL. ISBN: 8448122984. 3. ALGORITMOS DATOS Y PROGRAMAS, De Giusti Armando E.; 2001; Editorial: Prentice Hall. ISBN: 9879460642. 4. FUNDAMENTOS DE PROGRAMACIÓN. Algoritmo y Estructura de Datos; Luis Joyanes Aguilar; 1998; Editorial: MCGRAW-HILL. 8448106032. 5. PROGRAMACIÓN EN TURBO PASCAL; Luis Joyanes Aguilar; 1993; editorial: MCGRAW-HILL. ISBN: 8448101278. 6. ALGORITMOS + ESTRUCTURAS DE DATOS = PROGRAMAS; Niklaus Wirth; 2000; Editorial: C.I.E / DOSSAT. ISBN: 8421901729. 7. METODOLOGÍA DE LA PROGRAMACIÓN: PROGRAMACIÓN ESTRUCTURADA; María Dolores Alonso y Silvia Rumeu; 1994; Editorial Paraninfo. ISBN: 8428319545. 8. METODOLOGÍA DE LA PROGRAMACIÓN; Luis Joyanes Aguilar; 1990; Editorial: MCGRAW-HILL. ISBN: 8476151381. 9. PRINCIPIO DEL DISEÑO DE PROGRAMAS; M.A. Jackson; 1990; Editorial: Pamel SRL. ISBN: 87341155228. 10. INTRODUCCIÓN A LA PROGRAMACIÓN Y A LAS ESTRUCTURAS DE DATOS; Braunstein y Gioia; 1991; Editorial: Universitaria de Buenos Aires. ISBN: 9502302192. 11. PROBLEMAS DE METODOLOGÍA DE LA PROGRAMACIÓN; Luis Joyanes Aguilar; 1990;MCGRA-WHILL. ISBN: 8476154623. 12. TURBO PASCAL FOR PROGRAM DESIGN; John Mallozzi ; 1988; Editorial: MCGRAWHILL. ISBN: 0670398186. 13. ADVANCED PROGRAMMING DESIGN AND STRUCTURE.Using Pascal; Charles E. Miller, William G. McArthur, J. Winston Crawley; 1989; Editorial: Prentice Hall. ISBN: 0138540357. Universidad Nacional del Nordeste Facultad de Ciencias Exactas y Naturales y Agrimensura Material didactico : # Material de estudio y guías de trabajos prácticos para la asignatura Programación I. Cuerpo Docente de la asignatura Programación. Área Programación. Dpto. Informatica. FaCENA. # Material de Estudio y guías de trabajo prácticos para la Asignatura Algoritmos y Programación I. (UBA); 2001; Prof. Cataldi, Z. y Lage, F. • Otros documentos y enlaces: Pagina de la asignatura: http://exa.unne.edu.ar/depar/areas/informatica/programacion1/public_html/generalidades.php) Taller de Programación I (FIUBA): .http://www.fi.uba.ar/materias/7542/ Algoritmos y Programación I. INGENIERÍA INFORMÁTICA Y LICENCIATURA - UBA: http://www.fi.net.ar/materias/7540/cataldi/ Programación I - Conceptos. Básicos. Universidad de Lujan: http://www.unlu.edu.ar/~program1/biblioteca/Clase1.pdf Monografías sobre la temática de algoritmos: http://www.monografias.com/trabajos15/algoritmos/algoritmos.shtml Solución de problemas algorítmicos utilizando distintos lenguajes de programación: http://www.misalgoritmos.com/ Material de estudio del lenguaje Pascal: http://wwwdi.ujaen.es/asignaturas/geometriacomputacional/pdfs/practicas/ccuz19.pdf Artículos y tutoriales de Lenguaje Pascal: http://www.um.es/docencia/barzana/PRACTICAS/Pascal.html 3. PROGRAMA DE EXAMEN: Bolillas Temas Nro. 1 1 5 10 Nro. 2 2 6 9 Nro. 3 3 7 8 Nro. 4 4 8 7 Nro. 5 5 9 6 Nro. 6 6 10 5 Universidad Nacional del Nordeste Facultad de Ciencias Exactas y Naturales y Agrimensura Nro. 7 7 1 4 Nro. 8 8 2 3 Nro. 9 9 3 2 Nro. 10 10 4 1 4. - NOMINA DE TRABAJOS PRACTICOS: Ejercicios de acuerdo a cada contenido temático del programa analítico. Identificación Descripción Contenido Temas teóricos Semanas Clases Serie Nro. 1 Sintaxis del Conceptual lenguaje Pascal Dos (1/2) (1) Serie Nro. 2 Arreglos. Profundización (1/2) (1) Serie Nro. 3 Pilas, Listas Colas y Conceptual Tres (1 y 1/2) (3) Serie Nro. 4 Árboles y Grafo Conceptual Cuatro (1 y 1/2) (3) Serie Nro. 5 Búsqueda, clasificación intercalación (1 y 1/2) (3) Serie Nro. 6 Subprogramas Funciones y procedimientos Seis (1) (2) Serie Nro. 7 Recursividad Algoritmos recursivos Siete (1) (2) Serie Nro. 8 Archivos secuenciales y Leer, escribir, actualizar, etc. eliminar, Ocho (1) (2) Corte de control, apareo, Ocho etc. (1) (2) Conceptual Nueve (1 y 1/2) (3) Poda, divide y Diez (1) (2) Manejos de arreglos Algoritmos de ordenamiento Cinco e y búsquedas directos Serie Nro. 9 Operaciones con Archivos. Serie Nro. 10 Optimización de algoritmos Serie Nro. 11 Algoritmos complejos vencerás, vuelta atrás, etc. Universidad Nacional del Nordeste Facultad de Ciencias Exactas y Naturales y Agrimensura 5. - CRONOGRAMA DE ACTIVIDADES: (Incluir clases teóricas, prácticas, de laboratorio, de campo, de seminario, y toda otra actividad educativa prevista como así también evaluaciones parciales). Teoría Días Miércoles de 09.00 Hs. A 12.00 Hs. (Se repite los Jueves) Practica Grupo 1: Martes de 14.00 Hs. a 17.00 Hs. Viernes de 14.00 Hs. a 17.00 Hs. Grupo 2: Martes de 14.00 Hs. a 17.00 Hs. Viernes de 14.00 Hs. a 17.00 Hs. Grupo 3: Martes de 20.00 Hs. a 23.00 Hs. Viernes de 20.00 Hs. a 23.00 Hs. Laboratorio Lunes: De 08.00 Hs a 11:00 Hs. Toma parciales A determinar según evolución de las clases prácticas. Sugerencia: Primer parcial 9 semana. Recuperatorio Primer Parcial: 10 semana. Segundo Parcial: 17 semana; Recuperatorio Segundo Parcial: 18 semana. Extraordinario a determinar. Tutorías Soporte permanente para consultas de teoría y/o prácticas el día viernes en el Departamento. Talleres A los efectos de fomentar la articulación horizontal dentro del área, desde la asignatura se intenta el desarrollo de extensión, como ser dictado de cursos y talleres para alumnos y para la actualización especifica de docentes del área. Distribución de las actividades en Laboratorio Nº de Módulo/Tema Clase/Sema na Temas teóricos 1 Presentación práctica Lenguaje 2 Codificar y depuración Serie Dos. Profundización de conceptos 3 Codificar y depuración Serie Tres. (3) 4 Codificar y depuración Serie Cuatro. (4) 5 Codificar y depuración Serie Cinco. (5) 6 Practica codificación primer parcial 7 Codificar y depuración Serie Seis. (6) 8 Codificar y depuración Serie Siete. (7) 9 Codificar y depuración Serie Ocho. (8) 10 Codificar y depuración Serie Nueve. (9) 11 Codificar y depuración Serie Diez. (10) 12 Practica codificación segundo parcial 13 Preparación integrador y Pascal presentación y (I) trabajo Universidad Nacional del Nordeste Facultad de Ciencias Exactas y Naturales y Agrimensura 6. - EFECTOS SOBRE la formación integral del alumno. El alumno estará capacitado para reconocer las distintas etapas en la resolución de problemas de la perspectiva del tratamiento de la lógica. Como también estará hábilmente capacitado para identificar las distintas partes de un programa, modelar el mismo y construir los algoritmos necesarios para la obtención de la solución esperada. Teniendo siempre presente la utilización de una metodología determinada para el desarrollo de software. 7. - RECURSOS HUMANOS. 7.1.NOMINA DE ASIGNATURA PERSONAL DOCENTE INTERVINIENTE EN EL DICTADO DE LA Apellido y Nombre Máximo titulo alcanzado Categoría (1) Dedicación (2) Condición (3) Herrmann, Castor Federico Agrimensor Nac. Titular Exclusiva Ordinario González, Miguel Angel Lic. en Sistemas Información Simple Ordinario Vallejos, Oscar Adolfo Mgter. en Informática y JTP Computación Simple Ordinario Zacarias, Ramón Arturo Exp. en Estadística Computación y JTP Simple Ordinario Valesani, Maria Eugenia Mgter. en Informática y JTP Computación Simple Ordinario Alfonso, Pedro Luis Lic. en Sistemas Información Simple Ordinario Núñez Widanka, David Prog. de Aplicaciones Ayudante Universitarias Alumno Simple Contratado de Adjunto de Auxiliar