Diferencia entre revisiones de «Algoritmos y Estructuras de Datos I»
CubaWiki>Nachodall |
|||
(No se muestran 37 ediciones intermedias de 16 usuarios) | |||
Línea 1: | Línea 1: | ||
__NOTOC__ | __NOTOC__ | ||
{{ Plan 1993 | Introducción a la Programación }} | |||
Según el [[Plan de la Carrera]] | '''Algoritmos I''' es la primera materia propia de la carrera. En la primera parte, se introduce el concepto de especificación que define el qué y no el cómo de un problema, ayudando a eliminar la ambigüedad de las palabras, usando lógica de primer orden. En la segunda parte, se ve implementación de problemas que consiste en programar algoritmos en C++ que cumplan una especificación dada. Según el [[Plan de la Carrera]] es una materia a ser cursada en [[Plan de la Carrera#Primer año|Primer año]]. Es correlativa con [[Álgebra I]] y necesaria para cursar [[Algoritmos y Estructuras de Datos II]], [https://www.cubawiki.com.ar/index.php/Organizaci%C3%B3n_del_Computador_I Organización del Computador l] y [https://www.cubawiki.com.ar/index.php/M%C3%A9todos_Num%C3%A9ricos Métodos Numéricos]. | ||
== Información General sobre la Cursada == | == Información General sobre la Cursada == | ||
Algoritmos I consiste de clases teóricas, prácticas y de laboratorio. Para aprobar la materia se deben rendir 2 exámenes parciales (especificación e implementación) y 2 trabajos prácticos. | |||
La materia se cursa los Lunes y | La materia se cursa los Lunes, Miércoles y Viernes de 17 a 22hs. Puede puede cursarse a la mañana también. | ||
== Contenidos == | == Contenidos == | ||
Línea 27: | Línea 27: | ||
==Prácticas== | ==Prácticas== | ||
*[https://drive.google.com/file/d/14jv-nkS5yzCrp7qTBtlP9mxS7Z4XhTFi/view?usp=sharing| Prácticas 1-9 de 2020 resueltas] | *[https://drive.google.com/file/d/14jv-nkS5yzCrp7qTBtlP9mxS7Z4XhTFi/view?usp=sharing| Prácticas 1-9 de 2020 resueltas] | ||
*[https://github.com/yagopajarino/uba-AyEd1 Prácticas 1er cuatrimestre 2022] | *[https://github.com/yagopajarino/uba-AyEd1 Prácticas 1er cuatrimestre 2022] | ||
Línea 45: | Línea 43: | ||
*[[Media:P8-TiposCompuestos.pdf| Práctica 8: Tipos compuestos]] | *[[Media:P8-TiposCompuestos.pdf| Práctica 8: Tipos compuestos]] | ||
==Parciales== | == Parciales == | ||
=== Primeros parciales (Especificación) === | === Primeros parciales (Especificación) === | ||
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
Línea 156: | Línea 154: | ||
*[[Media:AED1_final_02-08-2022.pdf|Final del 02-08-2022 (Diego Garbervetsky)]] | *[[Media:AED1_final_02-08-2022.pdf|Final del 02-08-2022 (Diego Garbervetsky)]] | ||
*[[Media:algo1_final_14-12-22.jpg|Final del 14-12-2022 (Diego Garbervetsky - Martín Urtasun)]] | *[[Media:algo1_final_14-12-22.jpg|Final del 14-12-2022 (Diego Garbervetsky - Martín Urtasun)]] | ||
*[[Media:AED1_final_07-03-2024.pdf|Final del 07-03-2024]] | |||
*[[Media:AED1 final 06-06-2024.pdf|Final del 06-06-2024]] | |||
== Apuntes == | == Apuntes == | ||
*[[Media:Labo01_CLionInstallation.pdf|Guía de Instalación de CLion IDE C++ con Licencia Estudiantil]] | *[[Media:Labo01_CLionInstallation.pdf|Guía de Instalación de CLion IDE C++ con Licencia Estudiantil]] | ||
*[https://docs.google.com/document/d/1b8vm_PoiRftVKyE-9Tlwa-VAs9AobXe0GOpHJkO4rEg/edit?usp=sharing Resumen de Clases Teóricas y Practicas - 1C Online 2020] | *[https://docs.google.com/document/d/1b8vm_PoiRftVKyE-9Tlwa-VAs9AobXe0GOpHJkO4rEg/edit?usp=sharing Resumen de Clases Teóricas y Practicas - 1C Online 2020] | ||
*[https://elrepositoriodefede.wordpress.com/materias/materias-de-computacion/algoritmos-y-estructura-de-datos-i/ El Respositorio de Fede]: Apuntes de las Clases Teóricas, Ejercicios y Parciales Resueltos y Material Adicional - Segundo Cuatrimestre 2019 | *[https://elrepositoriodefede.wordpress.com/materias/materias-de-computacion/algoritmos-y-estructura-de-datos-i/ El Respositorio de Fede]: Apuntes de las Clases Teóricas, Ejercicios y Parciales Resueltos y Material Adicional - Segundo Cuatrimestre 2019 | ||
*[[Media:LengDeEspecificacion.pdf|Apuntes del lenguaje de especificación]] | *[[Media:LengDeEspecificacion.pdf|Apuntes del lenguaje de especificación]] | ||
*[https://github.com/SebasAndres/Introduccion-a-la-programacion-UBA Un repositorio de la materia + algunas guias resueltas (2023)] | |||
*[[Apuntes de Funcional (Algoritmos I)| Apuntes de funcional]]: Apuntes y resumenes de programacion en funcional. | *[[Apuntes de Funcional (Algoritmos I)| Apuntes de funcional]]: Apuntes y resumenes de programacion en funcional. | ||
*[https://docs.google.com/document/d/13LdC39MdqZ24atcsCaBHQylSCUIdMCNivzh8xxKeEOY/edit?usp=sharing Resumen Teórico (Incompleto)] | *[https://docs.google.com/document/d/13LdC39MdqZ24atcsCaBHQylSCUIdMCNivzh8xxKeEOY/edit?usp=sharing Resumen Teórico (Incompleto)] | ||
*[https://drive.google.com/file/d/1qt1R9clSGQJEhDvrFYCzSOc1orrlNiUi/view?usp=sharing Apunte de Testing] | *[https://drive.google.com/file/d/1qt1R9clSGQJEhDvrFYCzSOc1orrlNiUi/view?usp=sharing Apunte de Testing] | ||
*[https://github.com/igruntplay/IAP-1C2023/blob/main/NOTAS-IP.pdf Notas de introducción a la programación 1C 2023] | |||
==Enlaces Externos== | ==Enlaces Externos== |
Revisión actual - 06:04 7 jun 2024
Algoritmos I es la primera materia propia de la carrera. En la primera parte, se introduce el concepto de especificación que define el qué y no el cómo de un problema, ayudando a eliminar la ambigüedad de las palabras, usando lógica de primer orden. En la segunda parte, se ve implementación de problemas que consiste en programar algoritmos en C++ que cumplan una especificación dada. Según el Plan de la Carrera es una materia a ser cursada en Primer año. Es correlativa con Álgebra I y necesaria para cursar Algoritmos y Estructuras de Datos II, Organización del Computador l y Métodos Numéricos.
Información General sobre la Cursada
Algoritmos I consiste de clases teóricas, prácticas y de laboratorio. Para aprobar la materia se deben rendir 2 exámenes parciales (especificación e implementación) y 2 trabajos prácticos. La materia se cursa los Lunes, Miércoles y Viernes de 17 a 22hs. Puede puede cursarse a la mañana también.
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:
- Especificación formal de contratos: tipos de datos básicos, secuencias, n-uplas, operadores de lógica condicionales (cand y cor) y sus propiedades
- Demostración de corrección parcial: precondicicón más débil. Teorema de corrección parcial para ciclos. Invariantes de ciclo.
- 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
- Prácticas 1-9 de 2020 resueltas
- Prácticas 1er cuatrimestre 2022
- Práctica 1: Lógica Proposicional y Tipos Básicos
- Práctica 2: Secuencias
- Práctica 3: Cuantificadores
- Práctica 4: Especificación de Problemas
- Práctica 5: Tipos
- Práctica 6: Funcional Básica
- Práctica 7: Listas
- Práctica 8: Tipos compuestos
Parciales
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
- Parciales de funcional
- Parcial del 20/05/2013
- Recuperatorio del 08/07/2013
- Parcial del 09/10/2013
- Recuperatorio del 04/12/2013
Finales
- Final del 23-04-2019
- Final Online del 16-12-2020
- Final Online del 19-02-2021
- Final del 04-08-2021 (Marenco)
- Final del 15-09-2021
- Final del 09-12-2021 (Marenco), resolución
- Final del 17-02-2022 (Diego Garbervetsky)
- Final del 15-06-2022
- Final del 02-08-2022 (Diego Garbervetsky)
- Final del 14-12-2022 (Diego Garbervetsky - Martín Urtasun)
- Final del 07-03-2024
- Final del 06-06-2024
Apuntes
- Guía de Instalación de CLion IDE C++ con Licencia Estudiantil
- Resumen de Clases Teóricas y Practicas - 1C Online 2020
- El Respositorio de Fede: Apuntes de las Clases Teóricas, Ejercicios y Parciales Resueltos y Material Adicional - Segundo Cuatrimestre 2019
- Apuntes del lenguaje de especificación
- Un repositorio de la materia + algunas guias resueltas (2023)
- Apuntes de funcional: Apuntes y resumenes de programacion en funcional.
- Resumen Teórico (Incompleto)
- Apunte de Testing
- Notas de introducción a la programación 1C 2023