Algoritmos y Estructuras de Datos I

De Cuba-Wiki
Revisión del 01:27 10 oct 2023 de CubaWiki>FaustoMartinez (→‎Parciales de Haskell)

Introducción a la Programación (anteriormente Algoritmos y Estructuras de Datos I) es una de las materias del Primer año que no tiene correlativas además del CBC.
En ella se introduce el concepto de especificación, que define las precondiciones y poscondiciones de un algoritmo (el "qué" en vez del "cómo") usando lógica de primer orden, ayudando a eliminar la ambigüedad de las palabras. Luego se ve implementación de problemas que consiste en programar algoritmos que cumplan una especificación dada.
Según el Plan de la Carrera (2023) esta es una materia necesaria junto con Álgebra I para cursar Algoritmos y Estructuras de Datos.

Información General sobre la Cursada

Introducción a la Programación consiste de clases teóricas, prácticas y de laboratorio. Para aprobar la materia se deben rendir un examen parcial, un trabajo practico y entregar ejercicios de Laboratorio (CMS). La materia se cursa los Lunes y jueves de 9 a 14 hs, 12 a 17 hs y 17 a 22hs.

Apuntes

Prácticas

Parciales (integrador)

Año Cuatrimestre Fecha Instancia Links
2023 Primer Cuatrimestre 15/06/2023 Parcial Integrador

Enunciado y Solución (PDF).

2023 Primer Cuatrimestre 15/06/2023 Parcial Integrador

Enunciado y Solución (PDF).

2023 Primer Cuatrimestre 22/06/2023 Recuperatorio Integrador Enunciado.
2023 Primer Cuatrimestre 15/06/2023 Parcial Integrador Enunciado y Solución (PDF).
2023 Primer Cuatrimestre 15/06/2023 Parcial

Enunciado (PDF), Solución (PDF).

2023 Segundo Cuatrimestre 18/08/2023 Simulacro de Parcial (Haskell)

Enunciado y Solución.

2023 Segundo Cuatrimestre 18/08/2023 Simulacro de Parcial (Haskell)

Enunciado (PDF) y Solución(.hs).

2023 Segundo Cuatrimestre 25/08/2023 Primer Parcial (Haskell)

Enunciado(PDF) y Solución(.hs).

Algoritmos y estructuras de datos

Contenidos

Parte I - Corrección de programas imperativos:

  • Contratos. Obligaciones y derechos del programador y del usuario
  • Conceptos básicos de los programas imperativos: variables - estructuras de control - funciones - ciclos
  • Corrección de programas:
  1. Especificación formal de contratos: tipos de datos básicos, secuencias, n-uplas, operadores de lógica condicionales (cand y cor) y sus propiedades
  2. Demostración de corrección parcial: precondicicón más débil. Teorema de corrección parcial para ciclos. Invariantes de ciclo.
  3. Demostración de terminación: Función variante

Parte II - Algoritmos sobre secuencias

  • Buenas prácticas para el desarrollo de software. El software pensado para consumo humano.
  • Fundamentos de testing estructural: cubrimiento de líneas, branches, condiciones básicas. Diagramas de flujo de control.
  • Tiempo de ejecución de peor caso de un algoritmo. Notación O grande.
  • Algoritmos de búsqueda sobre secuencias: búsqueda lineal, búsqueda binaria
  • Algoritmos de ordenamiento sobre secuencias: ordenamiento por selección, ordenamiento por inserción, ordenamiento por burbujea, problema de la bandera holandesa
  • Algoritmos sobre secuencias ordenadas: problema de apareo entre secuencias, problema del welfare crook
  • Algoritmos de matching de strings: algoritmo ingenuo de búsqueda de patrones, algoritmo Knuth-Morris-Pratt

Prácticas

Primeros parciales (Especificación)

Año Cuatrimestre Fecha Instancia Links
2022 Segundo Cuatrimestre 28/11/2022 Recuperatorio enunciado (pdf) , resolución (pdf)
2022 Segundo Cuatrimestre 16/09/2022 Parcial enunciado + resolución (pdf)
2022 Segundo Cuatrimestre 16/09/2022 Parcial enunciado + resolución (pdf)
2022 Primer Cuatrimestre 04/07/2022 Recuperatorio enunciado + resolución (pdf)
2022 Primer Cuatrimestre 16/05/2022 Parcial enunciado + resolución (pdf)
2021 Segundo Cuatrimestre 15/10/2021 Parcial Online enunciado + resolución (pdf)
2021 Primer Cuatrimestre 28/06/2021 Recuperatorio Online enunciado (pdf)
2021 Primer Cuatrimestre 19/05/2021 Parcial Online enunciado (pdf)
2020 Segundo Cuatrimestre 27/11/2020 Recuperatorio Online enunciado (pdf)
2020 Segundo Cuatrimestre 21/10/2020 Parcial Online enunciado (pdf)
2019 Primer Cuatrimestre 10/05/2019 Parcial enunciado + resolución (pdf)
2018 Segundo Cuatrimestre 17/10/2018 Parcial enunciado + resolución (pdf)
2017 Segundo Cuatrimestre 6/10/2017 Parcial enunciado (pdf)
2017 Primer Cuatrimestre 12/05/2017 Parcial enunciado + resolución (pdf)
2016 Segundo Cuatrimestre 14/09/2016 Parcial enunciado + resolución (pdf)
2016 Primer Cuatrimestre 25/04/2016 Parcial enunciado + resolución (pdf)
2015 Segundo Cuatrimestre 18/09/2015 Parcial enunciado (pdf)
2015 Primer Cuatrimestre 24/04/2015 Parcial enunciado + resolución (pdf)
2015 Primer Cuatrimestre 24/04/2015 Parcial enunciado (pdf)
2013 Segundo Cuatrimestre 27/11/2013 Recuperatorio enunciado (pdf)
2013 Segundo Cuatrimestre 13/09/2013 Parcial enunciado (pdf)
2013 Primer Cuatrimestre 28/06/2013 Recuperatorio enunciado (pdf)
2013 Primer Cuatrimestre 17/04/2013 Parcial enunciado (pdf)

Segundos parciales (Imperativo)

Año Cuatrimestre Fecha Instancia Links
2022 Segundo Cuatrimestre 23/11/2022 Parcial enunciado (pdf) , resolución (pdf)
2021 Segundo Cuatrimestre 19/11/2021 Parcial Online enunciado (pdf) , resolución (pdf)
2021 Primer Cuatrimestre 23/06/2021 Parcial Online enunciado (pdf) , resolución (pdf)
2020 Segundo Cuatrimestre 09/12/2020 Recuperatorio Online enunciado (pdf)
2020 Segundo Cuatrimestre 19/11/2020 Parcial Online enunciado (pdf)
2019 Segundo Cuatrimestre 15/11/2019 Parcial enunciado + resolución (pdf)
2019 Primer Cuatrimestre 24/06/2019 Parcial enunciado + resolución (pdf)
2018 Segundo Cuatrimestre 23/11/2018 Parcial enunciado (pdf)
2018 Primer Cuatrimestre 22/06/2018 Parcial enunciado (pdf)
2017 Primer Cuatrimestre 24/11/2017 Parcial enunciado (pdf)
2017 Primer Cuatrimestre 14/07/2017 Recuperatorio enunciado (pdf)
2017 Primer Cuatrimestre 30/06/2017 Parcial enunciado + resolución (pdf)
2016 Segundo Cuatrimestre 18/11/2016 Parcial enunciado + resolución (pdf)
2016 Primer Cuatrimestre 27/06/2016 Parcial enunciado + resolución (pdf)
2015 Segundo Cuatrimestre 20/11/2015 Parcial enunciado (pdf)
2015 Primer Cuatrimestre 26/06/2015 Parcial enunciado + resolución (pdf)
2013 Segundo Cuatrimestre 18/11/2013 Parcial enunciado (pdf)
2013 Primer Cuatrimestre 24/06/2013 Parcial enunciado (pdf)

Parciales de Funcional

Finales

Apuntes

Enlaces Externos