Ministerio de Cultura y Educación
Universidad Nacional de San Luis
Facultad de Ciencias Físico Matemáticas y Naturales
Departamento: Informatica
Área: Area de Formacion Inicial en Informatica
(Programa del año 2024)
I - Oferta Académica
Materia Carrera Plan Año Periodo
RESOLUCIÓN DE PROBLEMAS Y ALGORITMOS ING. EN COMPUT. 28/12 2024 2° cuatrimestre
RESOLUCIÓN DE PROBLEMAS Y ALGORITMOS PROF.CS.COMPUT. 02/16 2024 2° cuatrimestre
RESOLUCIÓN DE PROBLEMAS Y ALGORITMOS ING. INFORM. 026/12- 08/15 2024 2° cuatrimestre
II - Equipo Docente
Docente Función Cargo Dedicación
ROSAS, MARIA VERONICA Prof. Responsable P.Adj Exc 40 Hs
ZUÑIGA, MARIELA ELISABETH Responsable de Práctico JTP Exc 40 Hs
RODRIGUEZ COPA, GRACIELA BEATR Auxiliar de Práctico A.1ra Semi 20 Hs
VELA LUENGO, AGUSTIN Auxiliar de Práctico A.2da Simp 10 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
 Hs. 2 Hs. 3 Hs. 1 Hs. 6 Hs. 2º Cuatrimestre 05/08/2024 15/11/2024 15 90
IV - Fundamentación
La formación de un profesional en Ingeniería en Ciencias de la Computación, Ingeniería en Informática y del Profesorado en Cs. de la Computación requiere de un proceso inicial que favorezca el desarrollo del pensamiento computacional, como enfoque para la resolución de problemas, donde el pensamiento crítico es reforzado mediante conceptos computacionales para entender qué aspectos de un problema son aptos para ser resuelto aprovechando el poder de las computadoras y trabajar en pos de su solución.
Al mismo tiempo, surge la necesidad de dar al estudiante una formación sólida en el área de programación de computadoras y del procesamiento de datos, 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 / Resultados de Aprendizaje
Se pretende enfrentar al estudiante con la problemática de analizar y resolver problemas de carácter general y la transformación de los mismos en representaciones o modelos que serán resueltos por una computadora; al mismo tiempo que se desarrolla la conceptualización sobre los componentes fundamentales de la misma, de cómo estos interactúan entre sí y de las características a tener en cuenta en la ejecución de los programas.

Al finalizar el curso, el estudiante debe ser capaz de:
- Interpretar claramente los objetivos del problema y poder resolverlos, es decir, identificar las posibles restricciones o condiciones que deben ser consideradas en la resolución del problema.
- Reconocer, tomando como base los conocimientos previos y nuevos, los datos ingresados del problema y traducirlos a información relevante al procesarlos.
- Aplicar habilidades de Pensamiento Computacional (Abstraer, Descomponer, Generalizar y Desarrollar algoritmos) para la resolución de problemas integrando el pensamiento crítico, la creatividad y el poder de las computadoras.
- Diseñar e implementar algoritmos en un lenguaje de programación para la resolución del problema computacionales.
- Evaluar la factibilidad de las distintas alternativas o soluciones propuestas considerando las restricciones establecidas.
- Interpretar adecuadamente los resultados obtenidos al ejecutar las soluciones definidas.

Durante el dictado de la asignatura se abordan los siguientes ejes transversales:
EJE 1: Identificación, formulación y resolución de problemas.
EJE 4: Utilización de técnicas y herramientas de aplicación en ingeniería.
EJE 7: Fundamentos para una comunicación efectiva.
VI - Contenidos
Sobre el material para los contenidos de la materia.
Para cada unidad se deja disponible el material correspondiente a los contenidos de la unidad: las diapositivas de
clase de teoría, un material de estudio más detallado y su correspondiente trabajo práctico. Todo está disponible tanto en el sitio web de la materia como en el aula virtual.
Además, se presenta un cronograma completo de la cursada, especificando día por día las actividades que se realizan en la materia.

Unidad 1: Arquitectura de la computadora.
Sistemas informáticos. Las partes de una computadora. Esquema funcional y estructural de una computadora. Las partes Internas: Unidad Central de Procesamiento, Unidad y jerarquía de Memorias. Las partes Externas: Dispositivos Periféricos, Clasificación de los periféricos. Memoria Auxiliar. Procesadores y MicroProcesadores. Representación de los datos dentro de la computadora y tabla ASCII. Software de Base y de Aplicación. Concepto de Sistema Operativo y utilitarios.

Unidad 2: Introducción a la Lógica Proposicional y a la Lógica de Predicados.
Proposiciones. 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. Funciones proposicionales. Cuantificadores. Alfabeto. Vocabulario. Lenguaje: fórmulas atómicas y fórmulas bien formadas.

Unidad 3: Resolución de Problemas.
Estrategia de resolución. Búsqueda de soluciones a problemas: inferencia, analogía, similitud entre problemas, detección de patrones, particularización y generalización. Abstracción de los Problemas. Modelización. Representación y estructuración
de los problemas. Problemas de tipo computacional. Etapas de la Resolución de Problemas: El proceso de resolución según G. Polya. Descomposición en Acciones Básicas. Técnica del Refinamiento Sucesivo.

Unidad 4: Algoritmos.
Concepto de algoritmo y programa. Algoritmos computacionales. Lenguajes algorítmicos, gráficos y no gráficos. Lenguaje algorítmico no gráfico: Lenguaje del problema. Acciones. Estructuras de control: Secuencia, Condicional, Repetición o iteración. Lenguaje algorítmico gráfico: Diagrama de flujo.

Unidad 5: Lenguaje de Diseño de Algoritmos: introducción.
Lenguaje de Diseño PSeInt. Tipos de Datos, Operaciones, Expresiones y Entrada y Salida de Datos. Sintaxis de las acciones. Estructuras de control: Secuencia, Condicional, Repetición o iteración. Pautas para seleccionar la estructura repetitiva más adecuada. Anidamiento de estructuras de control.

Unidad 6: Lenguaje de Diseño de Algoritmos: estructuración de datos y modularización.
Definición de estructura de datos. Tipo de datos estructurados versus tipos de datos simples. Concepto de arreglo lineal. Índice y componentes. Operaciones sobre arreglos lineales: asignación, recuperación y recorrido. Modularización de los problemas. Definición de subalgoritmos. Ambiente de un subalgoritmo. Funciones y procedimientos. Parámetros actuales y formales. Tipo de pasaje de parámetros. Invocación de subalgoritmos.

VII - Plan de Trabajos Prácticos
Metodología de enseñanza.
Al finalizar cada trabajo práctico, los estudiantes revisan sus conocimientos rindiendo un cuestionario online con ejercicios de múltiple opción o a completar, la aprobación de este parcialito (o sus respectivas recuperaciones) forma parte del régimen de aprobación de la materia. Los docentes proporcionan retroalimentación detallada de los ejercicios entregados para revisión durante la clase práctica y comparten posibles soluciones para incentivar la autoevaluación y mostrar diferentes métodos de resolución. En los últimos trabajos prácticos, que incluyen la representación de algoritmos en PSeInt, en las clases que se desarrollan en los laboratorios se emplea esta herramienta para validar soluciones y facilitar la introducción a la programación. Además, consultas adicionales están disponibles para apoyar a los estudiantes, resolver dudas y promover la colaboración con sus compañeros y docentes.
De esta manera, las clases prácticas consistirán principalmente de la resolución de ejercicios prácticos, para que el estudiante pueda poner en práctica los conocimientos adquiridos y de un trabajo en laboratorio donde podrán comprobar, con la computadora, si los algoritmos definidos cumplen con las restricciones del lenguaje y resuelven el problema planteado.
La práctica áulica consistirá en desarrollar nuevos algoritmos para la resolución 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 de la descomposición en tareas de un enunciado y desagregación de la resolución planteada. La versión final de esta resolución debe poder ser representada en forma gráfica o no gráfica.

Las competencias que se esperan desarrollar al terminar la materia son:
- Resolver problemas.
- Análisis y síntesis.
- Integrar la teoría con la práctica.
- Generar nuevas ideas (creatividad).
- Desarrollar y/o fortalecer el razonamiento crítico.
- Trabajar en equipo.
- Abstraer, concreción, concisión, razonar, reconocer patrones, generalizar, ser preciso.
- Comparar y verificar el valor de las evidencias al ejecutar las soluciones propuestas.

Práctico 1: Arquitectura de las computadoras.
Objetivos específicos:
-Poner en contacto al estudiante con la terminología específica, de tal manera que identifique los principales componentes de una computadora y sus funciones.
-Dejar en evidencia al estudiante su influencia en el proceso de resolución computacional, como parte del sistema informático.
El práctico incluye ejercicios de reconocimiento de los principales componentes (monitor, teclado, impresora, etc.) y su
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 2: Introducción a la lógica Proposicional y a la lógica de Predicados
Objetivos específicos:
-Introducir al estudiante en el mundo de la Lógica proposicional a partir de su primer componente, el sintáctico.
-Lograr que el estudiante sea capaz de identificar las limitaciones de la Lógica Proposicional, identificar el alfabeto, términos y predicados de la lógica de predicados y la utilización de cuantificadores para construir fórmulas bien formadas que especifiquen las restricciones del problema.
El práctico resulta de la combinación de: ejercicios de interpretación de texto y su posterior especificación en forma simbólica, en lenguaje de lógica proposicional y lógica de predicados.

Práctico 3: Resolución de Problemas y Algoritmos.
Objetivos:
-Lograr que el estudiante sea capaz de interpretar claramente los objetivos del problema y poder resolverlo, es decir, identificar las posibles restricciones o condiciones que deben ser consideradas en la resolución.
-Lograr que el estudiante sea capaz de aplicar una adecuada metodología de trabajo para la resolución de los problemas, introduciendo diferentes estrategias para resolverlos.
-Lograr que el estudiante sea capaz de crear modelos y abstracciones de problemas de la vida cotidiana. Dado un problema que pueda identificar los datos de entrada y los datos de salida como así también las restricciones del mismo.
-Lograr que el estudiante sea capaz de descomponer problemas complejos en tareas más sencillas con el objeto de resolver el problema (refinamientos sucesivos).
El práctico abarca ejercicios que plantean diferentes problemas computacionales y no computacionales presentes en el mundo real, los cuales deben ser resueltos aplicando la metodología propuesta de resolución de problemas: analizar el problema, diseñar una solución, ejecutar el plan, mirar hacia atrás. La construcción de la representación gráfica de la solución planteada.

Práctico 4: Lenguaje de Diseño de Algoritmos PSeInt.
Objetivos específicos:
-Desarrollar en el estudiante la capacidad de elaborar soluciones generales a diferentes clases de problemas.
-Desarrollar en el estudiante la habilidad en el buen manejo de una herramienta que ayude a complementar el proceso de resolución, en forma independiente de restricciones específicas y que facilite el entendimiento de conceptos fundamentales en el proceso de programar (variables, atributos de la variable, etc.).
-Lograr que el estudiante sea capaz de construir la representación gráfica de soluciones planteadas.
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 de prácticos anteriores, 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 estudiante 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. Además, la realización de los diagramas de flujo de los algoritmos definidos en ejercicios anteriores. En el laboratorio se trabajará con herramientas que permite realizar los diagramas de flujo correspondientes a ciertos algoritmos.

Práctico 5: Lenguaje de Diseño de Algoritmos PSeInt: estructuración de datos.
Objetivos específicos:
-Introducir a los estudiantes en el concepto de manipulación colectiva de datos: estructuras de datos, sus características, ventajas de su uso e implementación de arreglos 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.

Práctico 6: Lenguaje de Diseño de Algoritmos PSeInt: modularización.
Objetivos específicos:
-Determinar la necesidad de implementar el concepto de modularización en la resolución de problemas planteados.
-Reconocer la utilidad de subalgoritmos en lenguaje de diseño.
-Realizar ejecuciones teniendo en cuenta el ambiente o ámbito de un subalgoritmo.
-Diferenciar parámetros actuales y formales.
-Implementar correctamente el lenguaje de diseño, las invocaciones a subalgoritmos.


EJES TRANSVERSALES, SU ABORDAJE Y APLICACIÓN

EJE 1: Identificación, formulación y resolución de problemas de ingeniería.
La formulación de algoritmos y representación de estructuras de datos durante la materia prepara a los estudiantes para
abordar los desafíos específicos de la ingeniería, como la planificación, control y representación de datos.
La aplicación práctica de los conceptos de programación en la resolución de problemas proporciona a los estudiantes herramientas efectivas para diseñar y desarrollar soluciones innovadoras.

EJE 4: Utilización de técnicas y herramientas de aplicación en ingeniería.
La materia proporciona a los estudiantes de ingeniería habilidades y herramientas intuitivas y sencillas para desarrollar software especializado en el análisis y procesamiento de datos, que permiten luego un aprendizaje autonómo y más especializado. La aplicación de técnicas de programación permite luego su replicación en la solución de problemas más complejos.

EJE 7: Fundamentos para una comunicación efectiva.
El estudio de los fundamentos de la programación fortalece la capacidad para comunicar de manera efectiva conceptos técnicos y soluciones informáticas a través de la escritura clara y la documentación detallada de código. La escritura de soluciones a problemas mediante algoritmos incluye el desarrollo de habilidades para dar solución de manera lógica y estructurada, lo que contribuye a una comunicación más efectiva entre los ingenieros al discutir estrategias de solución y analizar resultados. Así como también, facilitar la colaboración en proyectos interdisciplinarios de ingeniería.

Los ejes 1, 4 y 7 se evaluarán en forma continua durante la cursada.
VIII - Regimen de Aprobación
Régimen de Promoción.
- Asistencia al 80% o más de las clases.
- Aprobar las dos evaluaciones parciales con un 80% o más. Cada una de las evaluaciones parciales tiene dos recuperaciones. Para el régimen de promoción se deben aprobar ambas evaluaciones parciales en primera instancia o en la primera recuperación.
- Aprobar, en su primera instancia o en alguna de sus dos recuperaciones, todos los parcialitos con nota 6 o más.
- Aprobar una evaluación final integradora de promoción con un 80% o más.
La nota final resultará de la nota obtenida en la evaluación final y no podrá ser menor a 7.

Régimen de Regularización.
- Asistencia al 70% o más de las clases.
- Aprobar las dos evaluaciones parciales con un 70% o más. Cada una de las evaluaciones parciales tiene dos recuperaciones.
- Aprobar, en su primera instancia o en alguna de sus dos recuperaciones, todos los parcialitos con nota 6 o más.
- Los estudiantes que hayan cumplido con los requisitos anteriormente citados podrán presentarse a rendir examen final oral o escrito en cualquiera de los turnos establecidos por la reglamentación de facultad.


Régimen de Alumnos Libres
Dada la necesidad de un constante seguimiento del estudiante en clase, la materia no se puede rendir en calidad de libre.
IX - Bibliografía Básica
[1] Material de estudio del curso. http://www.dirinfo.unsl.edu.ar
[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] "Cómo plantear y resolver problemas", G. Polya, Editorial Trillas, ISBN-10 968-24-00643, ISBN-13 978-9682400643, 2011.
[4] "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.
[5] "Introducción a la Computación", Andrés Gómez de Silva Garza, Ignacio de Jesús Ania Briseño - Editorial Cengage Learning, ISBN-13: 978-970-686-768-1, 2008, Ubicación en Biblioteca: 004.I61. (Nº inventario 85884).
[6] "Organización y Arquitectura de Computadores - Diseño para optimizar prestaciones" – William Stallings - Prentice Hall -5ta Edición - ISBN: 84-205-2993-1, 2004.
[7] "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.
[8] "Lógica Computacional", Paniagua Arís, Enrique, Sánches Gonzalez, Juan Luis, Rubio, Fernando Martín. Thomson; ISBN: 8497321820, 2003.
[9] PSeInt (http://pseint.sourceforge.net)
[10] "Algoritmos + Estructuras de Datos = Programas", N. Wirth, Ed. Dossat - ISBN: 8421901729, 1999.
[11] "Peter Norton's New Inside the PC", Peter Norton, Ed. Sams, ISBN 0672322897, 2002.
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] "Problem Solving & Computer Programming", P. Grogono y S. Nelson, Addison-Wesley Publishing Company – ISBN 0-201-02460-8, 1982.
[3] "Algorithmic Problem Solving", R. Backhouse, Wiley, ISBN: 978-0-470-68453-5, 2011.
[4] "Computational Thinking For The Modern Problem Solver" D. Riley y K. Hunt, CRC Press - ISBN: 978-1-4665-8777-9, 2014.
[5] "Introduction to Mathematical Logic, Third Edition", Elliott Mendelson - Van Nostrand Reinhold Company - ISBN-10:0534066240, ISBN-13: 978-0534066246, 1987.
[6] "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 estudiante las capacidades de:
-Resolver problemas.
-Diseñar e implementar algoritmos de solución a problemas en forma computacional.
-Usar diferentes herramientas para el diseño y codificación de las soluciones.
-Evaluar y analizar la viabilidad de las soluciones planteadas.
XII - Resumen del Programa
Unidad 1: Arquitectura de las Computadoras.
Unidad 2: Introducción a la Lógica Proposicional y a la Lógica de Predicados.
Unidad 3: Resolución de Problemas.
Unidad 4: Algoritmos.
Unidad 5: Lenguaje de Diseño de Algoritmos: introducción.
Unidad 6: Lenguaje de Diseño de Algoritmos: estructuras de datos y modularización.
XIII - Imprevistos
El seguimiento continuo de los estudiantes se realiza a través de reuniones periódicas, entrega de ejercicios prácticos resueltos, trabajo colaborativo con herramientas Google y a través de un aula virtual en el Campus Virtual de la UNSL. Además, en este espacio se pueden descargar las teorías, trabajos prácticos, avisos importantes, material de estudio, cronograma, efectuar entregas de tareas, hacer consultas o comentarios, etc.

Mail de Contacto: rpyaunsl@gmail.com
Página: http://servicios.dirinfo.unsl.edu.ar/index.php
XIV - Otros
Las vías de comunicación con los estudiantes son:
-el sitio web de la materia http://servicios.dirinfo.unsl.edu.ar
-el email de la materia rpyaunsl@gmail.com
-el aula virtual en el campus de la UNSL https://moodle4vz.unsl.edu.ar/moodle/