Ministerio de Cultura y Educación
Universidad Nacional de San Luis
Facultad de Ciencias Físico Matemáticas y Naturales
Departamento: Informatica
Área: Departamental
(Programa del año 2012)
(Programa en trámite de aprobación)
(Programa presentado el 27/04/2013 10:30:00)
I - Oferta Académica
Materia Carrera Plan Año Periodo
RESOLUCIÓN DE PROBLEMAS Y ALGORITMOS ING. EN COMPUT. 28/12 2012 1° cuatrimestre
RESOLUCIÓN DE PROBLEMAS Y ALGORITMOS ING. INFORM. 026/12 2012 1° cuatrimestre
II - Equipo Docente
Docente Función Cargo Dedicación
FERNANDEZ, JACQUELINE MYRIAM Prof. Responsable P.Adj Exc 40 Hs
REYES, NORA SUSANA Prof. Co-Responsable P.Adj Exc 40 Hs
LUDUEÑA, VERONICA DEL ROSARIO Responsable de Práctico JTP Exc 40 Hs
AZAR, ELIANA PAOLA Auxiliar de Práctico A.1ra Semi 20 Hs
KASIAN, FERNANDO ANDRES Auxiliar de Práctico A.1ra Exc 40 Hs
ZENTENO, DANIEL EDUARDO Auxiliar de Práctico A.2da Simp 10 Hs
ZUÑIGA, MARIELA ELISABETH Auxiliar de Práctico A.1ra Exc 40 Hs
III - Características del Curso
Credito Horario Semanal Tipificación Duración
Teórico/Práctico Teóricas Prácticas de Aula Práct. de lab/ camp/ Resid/ PIP, etc. Total B - Teoria con prácticas de aula y laboratorio Desde Hasta Cantidad de Semanas Cantidad en Horas
Periodo
6 Hs. 2 Hs. 3 Hs. 1 Hs. 6 Hs. 1º Cuatrimestre 14/03/2012 22/06/2012 15 90
IV - Fundamentación
La formación de un profesional en Ingeniería en Ciencias de la Computación o Ingeniería en Informática, requiere de un proceso inicial que promueva en el alumno actividades vinculadas a la resolución de problemas de diferentes características cuya solución, en principio, pueda ser expresada de una manera flexible, apelando a enfoques metodológicos novedosos, tales como el Aprendizaje Basado en Resolución de Problemas. Al mismo tiempo, se plantea la necesidad de plantear soluciones siguiendo un enfoque lógico y algorítmico que permitirá dar al alumno una formación sólida en el área de programación de computadoras que será la base fundamental para profundizar en las materias más avanzadas en el aprendizaje y utilización de lenguajes de programación.
V - Objetivos
Se pretende enfrentar al alumno con la problemática de analizar y resolver problemas de carácter general
y la transformación de los mismos para posteriormente poder ser resueltos por una computadora; al mismo tiempo que se lo interioriza de los componentes fundamentales de la misma y de cómo éstos interactúan entre sí.
Las principales expectativas de logro incluyen el desarrollar en el alumno la capacidad de:
- Resolver problemas de tipo general.
- Diseñar e Implementar algoritmos de solución a dichos problemas en forma computacional, utilizando un lenguaje de diseño de algoritmos.
- Usar diferentes herramientas para el análisis, diseño y codificación de las soluciones.
- Integrar conceptualmente los componentes fundamentales de una máquina con el proceso de resolución computacional.
VI - Contenidos
Bolilla I: Arquitectura de las Computadoras.
Las partes de una computadora. Las partes Internas: Unidad Central de Proceso, Unidad de Memoria(Memoria Principal). Las partes Externas: unidad de Entrada (Teclado), Unidad de Salida (Video). Dispositivos Periféricos. Clasificación de los periféricos: tipos. Memoria Auxiliar. Discos magnéticos. Discos Ópticos. Impresoras: clasificación. Procesadores y MicroProcesadores. Procesadores y Coprocesadores. La información (datos) dentro de la computadora. Software de Base y de Aplicación. Concepto de Sistema Operativo.

Bolilla II: Introducción al Cálculo Proposicional
Proposiciones. Funciones proposicionales. Variables proposicionales. Funtores de verdad (a) Conectivos: Conjunción-Disyunción, Condicional, Bicondicional. (b) No-conectivos: Negación. Interpretación y Resolución de problemas lógicos.

Bolilla III: Resolución de Problemas.
El Proceso de Resolución de Problemas. Etapas de la Resolución de Problemas. Estrategia de resolución. Abstracción de los Problemas. Modelización. Reestructuración de los problemas. Problemas de tipo computacional. El proceso de resolución. Descomposición en Acciones Básicas. Algoritmos. Lenguaje del problema: características generales. Estructura de los problemas: Secuencia, Condición, Repetición. Acciones y Sentencias: Estructuras de control de las acciones. Diagrama de flujo de las acciones.

Bolilla IV: Diseño de Algoritmos
Técnicas Básicas de Diseño de Algoritmos. Lenguaje de Diseño. Datos: manipulación. Sintaxis de las acciones. Estructuración de los datos: concepto de Arreglo. Modularización de los problemas: concepto de Subalgoritmo.

Bolilla V: Introducción al Cálculo de Predicados.
Alfabeto. Vocabulario. Lenguaje: fórmulas atómicas y fórmulas bien formadas. Variables Libres. Rango Cuantificacional. Interpretación.

VII - Plan de Trabajos Prácticos
Las clases prácticas consistirán principalmente de la resolución de prácticos de aula, durante la primera parte de la materia, de manera que el alumno pueda poner en práctica los conocimientos adquiridos. Durante la última etapa de la materia la resolución de los prácticos será en laboratorio, para que los alumnos puedan probar en una computadora si los algoritmos definidos cumplen con las restricciones del lenguaje y resuelven el problema planteado.
Competencias que se desarrollarán en las prácticas de aula y laboratorio:
Resolución de problemas.
Capacidad de análisis y síntesis.
Capacidad para aplicar la teoría a la práctica.
Capacidad de generar nuevas ideas.
Capacidad de razonamiento crítico.
Capacidad de Trabajo en equipo.
Capacidad de abstracción, concreción, concisión, razonamiento, creatividad, síntesis y precisión.

Práctico Nº 1: Familiarización con el equipo.

Objetivos específicos: Poner en contacto al alumno con la terminología específica, que identifique los principales componentes de una computadora y sus funciones y determine su influencia en el proceso de resolución computacional.

El práctico incluye ejercicios de reconocimiento de los principales componentes (monitor, teclado, impresora, etc.) y de clasificación según diferentes criterios (hardware y software, función que cumplen los periféricos de entrada, salida o de entrada/salida, memoria volátil y no volátil, etc.)

Práctico Nº 2: Introducción al Cálculo Proposicional
Objetivos específicos: Introducir al alumno en el mundo de la Lógica a partir de su primer componente,
el sintáctico, mediante el cual se podrán construir enunciados acerca de su entorno (real o imaginario).

El práctico resulta de la combinación de: ejercicios de interpretación de texto y su posterior especificación en forma simbólica, la interpretación en especificaciones en forma simbólica y su expresión en forma verbal, el uso de reglas de equivalencias, etc.

Práctico Nº 3: Resolución de Problemas. (Primera Parte)

Objetivos específicos: La Computadora es el medio y no es el fin para la resolución de problemas. La mayor dificultad radica en el propio proceso de resolver el problema (determinar un algoritmo) más que en escribir un programa en un lenguaje de programación. Se desea introducir al alumno en el análisis de problemas computacionales, en el razonamiento y en la definición de la correspondiente solución algorítmica.

El práctico estará destinado a trabajar con el alumno el cómo razonar una posible solución a un problema determinado. El alumno deberá encontrar algoritmos que resuelvan problemas de orden general, partiendo de problemas cotidianos y simples (por ejemplo cambiar la rueda de un auto) hasta llegar a problemas computacionales más complejos.

Práctico Nº 4: Resolución de Problemas: Refinamiento Sucesivo. (Segunda Parte)

Objetivos específicos: Afianzar en el alumno la capacidad de análisis de problemas para la determinación de una solución algorítmica. Para ello se desea profundizar en el proceso de análisis de problemas computacionales, en el razonamiento y posterior definición del correspondiente algoritmo a través de la aplicación de la Técnica de Refinamiento Sucesivo.

El práctico estará destinado a trabajar con el alumno el cómo razonar una posible solución a un problema determinado. El alumno deberá encontrar algoritmos que resuelvan problemas de orden general, partiendo de problemas cotidianos y simples (por ejemplo cambiar la rueda de un auto) hasta llegar a problemas computacionales más complejos.

Práctico Nº 5: Lenguaje TIMBA.
Objetivos específicos: Profundizar en el desarrollo de la capacidad de análisis de problemas y en el razonamiento de la posible solución algorítmica a los mismos determinando las estructuras de control necesarias a partir de las características del proceso definido.

La práctica está destinada a determinar el algoritmo y su posterior codificación en Lenguaje de Timba de ejercicios puntuales.

Práctico Nº 6: Diagramas de Flujo.
Objetivos específicos: Introducir al alumno en la definición de la representación gráfica de los algoritmos.

La práctica consistirá en la realización de los diagramas de flujo de los algoritmos definidos en los prácticos anteriores.

Práctico Nº 7: Diseño de Algoritmos: Introducción al Lenguaje de Diseño.

Objetivos específicos: Profundizar en el alumno la capacidad de elaborar soluciones generales a diferentes clases de problemas e introducirlo en el manejo de una herramienta que ayude a complementar el proceso de resolución, en forma independiente de restricciones específicas (un procesador) y que facilite el entendimiento de conceptos fundamentales en el proceso de programar (variables, atributos de la variable, etc.)

La práctica involucra actividad en el aula y de laboratorio. La práctica áulica consistirá en: codificar en lenguaje de diseño ejercicios puntuales del práctico anterior, desarrollar algoritmos de problemas nuevos para reforzar la metodología de trabajo planteada en el práctico anterior, representación gráfica de los algoritmos, detección de errores en algoritmos propuestos por el docente y su posterior corrección.

La práctica de laboratorio consistirá en introducir al alumno en el manejo de un ambiente determinado que le permitirá, a partir de este momento, probar en una computadora si los algoritmos definidos cumplen con las restricciones del lenguaje y resuelven el problema planteado.

Práctico Nº 8: Diseño de Algoritmos: Estructuración de Datos.

Objetivos específicos: Introducir el concepto de manipulación colectiva de datos: estructuras de datos, sus características, ventajas de su uso y su implementación en Lenguaje de Diseño.
La práctica involucra actividad en el aula y de laboratorio. La práctica áulica consistirá en desarrollar nuevos algoritmos de problemas y su codificación en lenguaje de diseño, la detección de errores en algoritmos propuestos y su posterior corrección. Para la resolución de los ejercicios se deberá aplicar la metodología de trabajo planteada a partir del Práctico 4 y la realización de los diagramas de flujos respectivos.

La práctica de laboratorio consistirá en probar, en computadora, si los algoritmos desarrollados en la práctica áulica cumplen con las restricciones del lenguaje y resuelven el problema planteado.

Práctico Nº 9 : Diseño de Algoritmos: modularización.

Objetivos específicos: Introducir el concepto de modularización, concepto de parámetros, tipos de parámetros, ventajas de su uso y su implementación en Lenguaje de Diseño.

La práctica áulica consistirá en desarrollar nuevos algoritmos de problemas y su codificación en lenguaje de diseño, detección de errores en algoritmos propuestos y su posterior corrección. Para la resolución de los ejercicios se deberá aplicar la metodología de trabajo planteada a partir del práctico 4 y la realización de los diagramas de flujos respectivos.

Práctico Nº 9: Introducción al Cálculo de Predicados.
Objetivos específicos: Introducir los conceptos referentes al Cálculo de Predicados, lo cual no es más que una extensión del Cálculo Proposicional. Se pretende poner en contacto al alumno con un lenguaje formal, acotado y más limitado que el lenguaje natural, mediante el cual es posible expresar enunciados (simples o compuestos) con los que se denotarán relaciones (predicados) existentes entre los diferentes objetos (y sus atributos) de un dominio determinado.

El práctico resulta de la combinación de ejercicios de interpretación de texto y su posterior especificación en forma simbólica y la interpretación en especificaciones en forma simbólica y su expresión en forma verbal, el uso de reglas de equivalencias, etc.
VIII - Regimen de Aprobación
La materia se divide en 3 ejes temáticos: Lógica, Resolución de Problemas y Diseño de Algoritmos, los cuales se evalúan en forma independiente. La asistencia y el trabajo en clase también serán considerados como elementos de evaluación. Las evaluaciones parciales serán de tipo teórico-prácticas.
Régimen de Promoción
- Asistencia al 80% en todas las actividades.
- Aprobar 2 evaluaciones parciales o sus recuperaciones con una nota de 7 o más.
- Aprobar una evaluación adicional teórica en carácter de integración, a fin de cuatrimestre, la cual se debe aprobar con un mínimo del 70%

Régimen de Regularización
- Asistencia al 70% de las clases prácticas.
- Aprobar 2 evaluaciones parciales, o sus recuperaciones con una nota mínima de 7.
- Los alumnos que hayan cumplimentado los requisitos anteriormente citados podrán presentarse a rendir examen final en cualquiera de los turnos establecidos por la reglamentación de facultad.

Régimen de Alumnos que trabajan
Los alumnos que trabajan dispondrán de una recuperación adicional a fin de cuatrimestre, la cual puede utilizarse sólo para una de las 2 evaluaciones parciales.

Régimen de Alumnos Libres
Dada la necesidad de un constante seguimiento del alumno en clase, la materia no se puede rendir en calidad de libre.
IX - Bibliografía Básica
[1] Notas de Clases. (http://www.dirinfo.unsl.edu.ar/servicios/Materias/ResolucionDeProblemas)
[2] “Fundamentos de Algoritmia”, Brassard, Gilles y Bratley, Paul, Prentice Hall, 1a. edición, 2000, ISBN: 84-89660-00-X, Ubicación en Biblioteca: 004.021.B823f
[3] “Lógica simbólica y elementos de metodología de la ciencia”, Gianella de Salama, Alicia; Roulet, Margarita - Publicación Buenos Aires: El Ateneo , 1996.
[4] “Organización y Arquitectura de Computadores - Diseño para optimizar prestaciones” – William Stallings - Prentice Hall -5ta Edición - ISBN: 84-205-2993-1, 2004.
[5] “Introducción a la Informática”, Prieto Espinosa, Alberto, LLoris Ruiz, Antonio – Torres Cantero, Juan Carlos. McGraw-Hill Interamericana de España; 3ra Edición. ISBN: 8448132173, 2001.
[6] “Lógica Computacional”, Paniagua Arís, Enrique, Sánches Gonzalez, Juan Luis, Rubio, Fernando Martín. Thomson; ISBN: 8497321820, 2003.
[7] “Algoritmos + Estructuras de Datos = Programas”, N. Wirth, Ed. Dossat - ISBN: 8421901729, 1999.
[8] “Peter Norton's New Inside the PC”, Peter Norton, Ed. Sams, ISBN 0672322897, 2002.
[9] Material adicional actualizado sobre algunos de los temas.
X - Bibliografia Complementaria
[1] “Puzzle-based Learning: Introduction to critical thinking, mathematics, and problem solving”, Z. Michalewicz y M. Michalewicz, (Paperback). Hybrid Publishers; 1ra Edición (21 de Mayo, 2008).
[2] “Introduction to Mathematical Logic, Third Edition”, Elliott Mendelson - Van Nostrand Reinhold Company - ISBN-10: 0534066240, ISBN-13: 978-0534066246, 1987.
[3] “Structured Programming”, O.-J. Dahl, E. W. Dijkstra, C. A. R. Hoare, Academic Press, London, ISBN 0-12-200550-3, 1972.
XI - Resumen de Objetivos
Desarrollar en el alumno la capacidad de:
-Resolver problemas de tipo general.
-Diseñar e Implementar algoritmos de solución a dichos problemas en forma computacional.
-Usar diferentes herramientas para el análisis, diseño y codificación de las soluciones.
XII - Resumen del Programa
Bolilla I: Arquitectura de las Computadoras.
Bolilla II: Introducción al Cálculo Proposicional
Bolilla III: Resolución de Problemas.
Bolilla IV: Diseño de Algoritmos
Bolilla V: Introducción al Cálculo de Predicados.
XIII - Imprevistos