Revisión actual |
Tu texto |
Línea 1: |
Línea 1: |
| __NOTOC__ | | __NOTOC__ |
| {{ Plan 1993 | Introducción a la Programación }}
| | '''Algoritmos I''' es la primera materia propia de la carrera. 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]]. |
|
| |
|
| '''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 == |
| | Algoritmos I consiste de clases teóricas y prácticas. Para aprobar la materia se deben rendir 3 exámenes parciales (especificación, funcional e imperativo) y 3 trabajos prácticos. |
|
| |
|
| == Información General sobre la Cursada ==
| | La materia se cursa los Lunes, Miércoles y Viernes de 17 a 22hs. |
| 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 == | | == Contenidos == |
| <big>'''Parte I - Corrección de programas imperativos:'''</big>
| | * Conceptos básicos de programación funcional. Recursión. |
| *Contratos. Obligaciones y derechos del programador y del usuario | | * Tipos de datos: primitivos, abstractos y algebraicos. |
| *Conceptos básicos de los programas imperativos: variables - estructuras de control - funciones - ciclos | | * El tipo de datos lista. Funciones sobre listas. |
| *Corrección de programas: | | * Lógica proposicional y de predicados como lenguaje de especificación. |
| # Especificación formal de contratos: tipos de datos básicos, secuencias, n-uplas, operadores de lógica condicionales (cand y cor) y sus propiedades
| | * Conceptos básicos de los programas imperativos. Estructuras de control. Variables. |
| # Demostración de corrección parcial: precondicicón más débil. Teorema de corrección parcial para ciclos. Invariantes de ciclo.
| | * Tipo de dato: arreglo. |
| # Demostración de terminación: Función variante
| | * Especificación de programas imperativos. |
| | * Funciones y procedimientos. Pasaje de parámetros. |
| | * Ciclos. Construcción, corrección y terminación. |
| | |
| | ==Prácticas== |
| | *[[Práctica 1: Lógica Proposicional y Tipos Básicos (Algoritmos I)| Práctica 1: Lógica Proposicional y Tipos Básicos]] |
| | *[[Práctica 2: Secuencias (Algoritmos I)|Práctica 2: Secuencias]] |
| | *[[Práctica 3: Cuantificadores (Algoritmos I)|Práctica 3: Cuantificadores]] |
|
| |
|
| <big>'''Parte II - Algoritmos sobre secuencias'''</big>
| | ==Parciales== |
| * Buenas prácticas para el desarrollo de software. El software pensado para consumo humano.
| | ===Especificación=== |
| * Fundamentos de testing estructural: cubrimiento de líneas, branches, condiciones básicas. Diagramas de flujo de control. | | * [[Media:PE 18-04-2008 (Algoritmos I).pdf|Parcial del 18/04/2008]] |
| * Tiempo de ejecución de peor caso de un algoritmo. Notación O grande. | | * [[Media:PE 22-09-2007 (Algoritmos I).pdf|Parcial del 22/09/2007]] ([[Media:PE Solucion 22-09-2007 (Algoritmos I).pdf|solución]]) |
| * Algoritmos de búsqueda sobre secuencias: búsqueda lineal, búsqueda binaria | | * [[Media:PE 13-04-2007 (Algoritmos I).pdf|Parcial del 13/04/2007]] |
| * Algoritmos de ordenamiento sobre secuencias: ordenamiento por selección, ordenamiento por inserción, ordenamiento por burbujea, problema de la bandera holandesa | | * [[Media:PE 16-09-2006 (Algoritmos I).pdf|Parcial del 16/09/2006]] |
| * Algoritmos sobre secuencias ordenadas: problema de apareo entre secuencias, problema del welfare crook
| | * [[Media:PE 21-04-2006 (Algoritmos I).pdf|Parcial del 21/04/2006]] |
| * Algoritmos de matching de strings: algoritmo ingenuo de búsqueda de patrones, algoritmo Knuth-Morris-Pratt | |
|
| |
|
| ==Prácticas==
| | * [[Media:RPE 04-07-2008 (Algoritmos I).pdf|Recuperatorio del 04/07/2008]] |
| *[https://drive.google.com/file/d/14jv-nkS5yzCrp7qTBtlP9mxS7Z4XhTFi/view?usp=sharing| Prácticas 1-9 de 2020 resueltas]
| | * [[Media:RPE 05-12-2007 (Algoritmos I).pdf|Recuperatorio del 05/12/2007]] |
| *[https://github.com/yagopajarino/uba-AyEd1 Prácticas 1er cuatrimestre 2022]
| | * [[Media:RPE 27-06-2007 (Algoritmos I).pdf|Recuperatorio del 27/06/2007]] |
| *[[Media:P1-logica.pdf |Práctica 1: Lógica Proposicional y Tipos Básicos]] | | * [[Media:RPE 27-11-2006 (Algoritmos I).pdf|Recuperatorio del 27/11/2006]] |
| ** [[Práctica 1: Lógica Proposicional y Tipos Básicos (Algoritmos I) | Solución]]
| | * [[Media:RPE 14-07-2006 (Algoritmos I).pdf|Recuperatorio del 14/07/2006]] |
| *[[Media:P2-secuencias.pdf|Práctica 2: Secuencias]] | | |
| ** [[Práctica 2: Secuencias (Algoritmos I) | Solución]]
| | ===Funcional=== |
| *[[Media:P3-cuantificadores.pdf |Práctica 3: Cuantificadores]] | |
| ** [[Práctica 3: Cuantificadores (Algoritmos I) | Solución]]
| |
| *[[Media:P4-espec_problemas.pdf| Práctica 4: Especificación de Problemas]] | |
| ** [[Práctica 4: Especificación de Problemas (Algoritmos I) | Solución]]
| |
| *[[Media:P5-tipos.pdf| Práctica 5: Tipos]] | |
| ** [[Práctica 5: Tipos (Algoritmos I) | Solución]]
| |
| *[[Media:P6-FuncionalBasica.pdf| Práctica 6: Funcional Básica]]
| |
| *[[Media:P7-listas.pdf|Práctica 7: Listas]]
| |
| *[[Media:P8-TiposCompuestos.pdf| Práctica 8: Tipos compuestos]]
| |
|
| |
|
| == Parciales ==
| | *[[Media:PF 23-05-2008 (Algoritmos I).pdf|Parcial del 23/05/2008]] |
| === Primeros parciales (Especificación) ===
| | *[[Media:PF 27-10-2007 (Algoritmos I).pdf|Parcial del 27/10/2007]] |
| {| class="wikitable sortable"
| | *[[Media:PF 18-05-2007 (Algortimos I).pdf|Parcial del 18/05/2007]] ([[Media:PF Solucion 18-05-2007 (Algoritmos I).hs|solución]]) |
| ! Año !! Cuatrimestre !! Fecha !! Instancia !! Links
| | *[[Media:PF 20-10-2006 (Algoritmos I).pdf|Parcial del 20/10/2006]] |
| |-
| | *[[Media:PF 26-05-2006 (Algoritmos I).pdf|Parcial del 26/05/2006]] |
| || 2022 || Segundo Cuatrimestre || 28/11/2022 || Recuperatorio || [[Medio:AED1_1recu_28-11-2022.pdf | enunciado (pdf) ]], [[Medio:AED1_1recu_28-11-2022_r.pdf | resolución (pdf) ]]
| |
| |-
| |
| || 2022 || Segundo Cuatrimestre || 16/09/2022 || Parcial || [[Medio:AED1_1parcial_16-09-22_danteculaciati.pdf| enunciado + resolución (pdf) ]]
| |
| |-
| |
| || 2022 || Segundo Cuatrimestre || 16/09/2022 || Parcial || [[Medio:AED1_1parcial_16-09-22.pdf|enunciado + resolución (pdf) ]]
| |
| |-
| |
| || 2022 || Primer Cuatrimestre || 04/07/2022 || Recuperatorio || [[Medio:AED1_1parcial_04-07-22.pdf|enunciado + resolución (pdf) ]]
| |
| |-
| |
| || 2022 || Primer Cuatrimestre || 16/05/2022 || Parcial || [[Medio:AED1_1parcial_16-05-22_resuelto.pdf|enunciado + resolución (pdf) ]]
| |
| |-
| |
| || 2021 || Segundo Cuatrimestre || 15/10/2021 || Parcial Online || [[Medio:AED1_1parcial_15-10-21_resuelto.pdf|enunciado + resolución (pdf) ]]
| |
| |-
| |
| || 2021 || Primer Cuatrimestre || 28/06/2021 || Recuperatorio Online || [[Medio:AED1_1recu_28-06-21.pdf|enunciado (pdf) ]]
| |
| |-
| |
| || 2021 || Primer Cuatrimestre || 19/05/2021 || Parcial Online || [[Medio:AED1_1parcial_19-05-21.pdf|enunciado (pdf) ]]
| |
| |-
| |
| || 2020 || Segundo Cuatrimestre || 27/11/2020 || Recuperatorio Online || [[Medio:AED1_1recu_27-11-20.pdf|enunciado (pdf) ]]
| |
| |-
| |
| || 2020 || Segundo Cuatrimestre || 21/10/2020 || Parcial Online|| [[Medio:AED1_1parcial_21-10-20.pdf|enunciado (pdf) ]]
| |
| |-
| |
| || 2019 || Primer Cuatrimestre || 10/05/2019 || Parcial || [[Medio:AED1_1parcial_10-5-19.pdf|enunciado + resolución (pdf) ]]
| |
| |-
| |
| || 2018 || Segundo Cuatrimestre || 17/10/2018 || Parcial || [[Medio:AED1_1parcial_17-10-18.pdf| enunciado + resolución (pdf) ]]
| |
| |-
| |
| || 2017 || Segundo Cuatrimestre || 6/10/2017 || Parcial || [[Media:primerParcialAlgo1_6-10-17.pdf|enunciado (pdf) ]]
| |
| |-
| |
| || 2017 || Primer Cuatrimestre || 12/05/2017 || Parcial || [[Media:AED1_1parcial_12-05-17_resuelto.pdf|enunciado + resolución (pdf) ]]
| |
| |-
| |
| || 2016 || Segundo Cuatrimestre || 14/09/2016 || Parcial || [[Media:AED1_1parcial_14-09-16_resuelto.pdf|enunciado + resolución (pdf) ]]
| |
| |-
| |
| || 2016 || Primer Cuatrimestre || 25/04/2016 || Parcial || [[Media:AED1_1parcial_25-04-16_resuelto.pdf|enunciado + resolución (pdf) ]]
| |
| |-
| |
| || 2015 || Segundo Cuatrimestre || 18/09/2015 || Parcial || [[Media:AED1_1parcial_18-09-15.pdf|enunciado (pdf) ]]
| |
| |-
| |
| || 2015 || Primer Cuatrimestre || 24/04/2015 || Parcial || [[Media:AED1_1parcial_24-04-15_resuelto.pdf|enunciado + resolución (pdf) ]]
| |
| |-
| |
| || 2015 || Primer Cuatrimestre || 24/04/2015 || Parcial || [[Media:AED1_1parcial_24-04-15.pdf|enunciado (pdf) ]]
| |
| |-
| |
| || 2013 || Segundo Cuatrimestre || 27/11/2013 || Recuperatorio || [[Media:RPI resuEspe2C2013.pdf|enunciado (pdf) ]]
| |
| |-
| |
| || 2013 || Segundo Cuatrimestre || 13/09/2013 || Parcial || [[Medio:espe2C2013.pdf|enunciado (pdf) ]]
| |
| |-
| |
| || 2013 || Primer Cuatrimestre || 28/06/2013 || Recuperatorio || [[Media:RPI resuEspe1C2013.pdf|enunciado (pdf)]]
| |
| |-
| |
| || 2013 || Primer Cuatrimestre || 17/04/2013 || Parcial || [[Media:img001.pdf|enunciado (pdf) ]]
| |
| |}
| |
|
| |
|
| ===Segundos parciales (Imperativo)===
| | *[[Media:RPF 11-07-2008 (Algoritmos I).pdf|Recuperatorio del 11/07/2008]] ([[Media:RPF Solucion 11-07-2008.txt|solución]]) |
| {| class="wikitable sortable"
| | *[[Media:RPF 12-12-2007 (Algoritmos I).pdf|Recuperatorio del 12/12/2007]] |
| ! Año !! Cuatrimestre !! Fecha !! Instancia !! Links
| | *[[Media:RPF 06-07-2007 (Algoritmos I).pdf|Recuperatorio del 06/07/2007]] |
| |-
| | *[[Media:RPF 04-12-2006 (Algoritmos I).pdf|Recuperatorio del 04/12/2006]] |
| || 2022 || Segundo Cuatrimestre || 23/11/2022 || Parcial || [[Media:AED1_2parcial_23-11-22.pdf | enunciado (pdf) ]], [[Media:AED1_2parcial_23-11-22_r.pdf | resolución (pdf) ]]
| | *[[Media:RPF 21-07-2006 (Algoritmos I).pdf|Recuperatorio del 21/07/2006]] |
| |-
| | *[[Media:RPF 05-12-2005 (Algoritmos I).pdf|Recuperatorio del 05/12/2005]] |
| || 2021 || Segundo Cuatrimestre || 19/11/2021 || Parcial Online || [[Media:AED1_2parcial_19-11-21.pdf |enunciado (pdf) ]], [[Media:AED1_2parcial_res_19-11-21.pdf|resolución (pdf) ]]
| |
| |-
| |
| || 2021 || Primer Cuatrimestre || 23/06/2021 || Parcial Online || [[Media:AED1_2parcial_23-06-21.pdf|enunciado (pdf) ]], [[Media:AED1_2parcialr_23-06-21.pdf|resolución (pdf) ]]
| |
| |-
| |
| || 2020 || Segundo Cuatrimestre || 09/12/2020 || Recuperatorio Online || [[Media:AED1_recup_09-12-20.pdf|enunciado (pdf) ]]
| |
| |-
| |
| || 2020 || Segundo Cuatrimestre || 19/11/2020 || Parcial Online || [[Media:AED1_2parcial_19-11-20.pdf|enunciado (pdf) ]]
| |
| |-
| |
| || 2019 || Segundo Cuatrimestre || 15/11/2019 || Parcial || [[Media:AED1_2parcial_15-11-2019_resuelto.pdf|enunciado + resolución (pdf) ]]
| |
| |-
| |
| || 2019 || Primer Cuatrimestre || 24/06/2019 || Parcial || [[Media:AED1_2parcial_24-06-2019.pdf|enunciado + resolución (pdf) ]]
| |
| |-
| |
| || 2018 || Segundo Cuatrimestre || 23/11/2018 || Parcial || [[Media:AED1_2parcial_23-11-18.jpg|enunciado (pdf) ]]
| |
| |-
| |
| || 2018 || Primer Cuatrimestre || 22/06/2018 || Parcial || [[Media:AED1_2parcial_22-06-18.pdf|enunciado (pdf) ]]
| |
| |-
| |
| || 2017 || Primer Cuatrimestre || 24/11/2017 || Parcial || [[Media:segundoParcialAlgo1_24-11-17.pdf|enunciado (pdf) ]]
| |
| |-
| |
| || 2017 || Primer Cuatrimestre || 14/07/2017 || Recuperatorio || [[Media:recuSegundoParcialAlgo1_14-7-17.pdf|enunciado (pdf) ]]
| |
| |-
| |
| || 2017 || Primer Cuatrimestre || 30/06/2017 || Parcial || [[Media:AED1_2parcial_30-06-17_resuelto.pdf|enunciado + resolución (pdf) ]]
| |
| |-
| |
| || 2016 || Segundo Cuatrimestre || 18/11/2016 || Parcial || [[Media:AED1_2parcial_18-11-16_resuelto.pdf|enunciado + resolución (pdf) ]]
| |
| |-
| |
| || 2016 || Primer Cuatrimestre || 27/06/2016 || Parcial || [[Media:AED1_2parcial_27-06-16_resuelto.pdf|enunciado + resolución (pdf) ]]
| |
| |-
| |
| || 2015 || Segundo Cuatrimestre || 20/11/2015 || Parcial || [[Media:AED1_2parcial_20-11-15.pdf|enunciado (pdf) ]]
| |
| |-
| |
| || 2015 || Primer Cuatrimestre || 26/06/2015 || Parcial || [[Media:AED1_2parcial_26-06-15_resuelto.pdf|enunciado + resolución (pdf) ]]
| |
| |-
| |
| || 2013 || Segundo Cuatrimestre || 18/11/2013 || Parcial || [[Media:imp2C2013.pdf|enunciado (pdf) ]]
| |
| |-
| |
| || 2013 || Primer Cuatrimestre || 24/06/2013 || Parcial || [[Media:imp1C2013.pdf|enunciado (pdf) ]]
| |
| |}
| |
|
| |
|
| ===Parciales de Funcional=== | | ===Imperativo=== |
| *[[Media:ParcialesFuncional.zip|Parciales de funcional]] | | *[[Media:PI 07-07-2006 (Algoritmos I).pdf|Parcial del 07/07/2006]] |
| *[[Media:func1C2013.pdf|Parcial del 20/05/2013]]
| | *[[Media:PI 30-11-2005 (Algoritmos I).pdf|Parcial del 30/11/2005]] |
| *[[Media:recuFunc1C2013.pdf|Recuperatorio del 08/07/2013]]
| | *[[Media:PI 11-07-2005 (Algoritmos I).pdf|Parcial del 11/07/2005]] |
| *[[Media:func2c2013.pdf|Parcial del 09/10/2013]] | |
| *[[Media:recuFunc2C2013.pdf|Recuperatorio del 04/12/2013]] | |
|
| |
|
| ==Finales==
| | *[[Media:RPI 19-07-2006 (Algoritmos I).pdf|Recuperatorio del 19/07/2006]] |
| *[[Media:AED1_final_23-04-2019.jpg|Final del 23-04-2019]] | | *[[Media:RPI 16-12-2005 (Algoritmos I).pdf|Recuperatorio del 16/12/2005]] |
| *[[Media:AED1_final_16-12-2020.pdf|Final Online del 16-12-2020]]
| | *[[Media:RPI 23-07-2005 (Algoritmos I).pdf|Recuperatorio del 23/07/2005]] |
| *[[Media:AED1_final_19-02-2021.pdf|Final Online del 19-02-2021]]
| |
| *[[Media:AED1_final_04-08-2021.jpeg|Final del 04-08-2021 (Marenco)]]
| |
| *[[Media:AED1_final_16-09-2021.jpeg|Final del 15-09-2021]]
| |
| *[[Media:AED1_final_09-12-2021.jpg|Final del 09-12-2021 (Marenco)]], [[Media:AED1_final_09-12-2021_resuelto.pdf|resolución]] | |
| *[[Media:AED1_final_17-02-2022.png|Final del 17-02-2022 (Diego Garbervetsky)]] | |
| *[[Media:AED1_final_15-06-2022.pdf|Final del 15-06-2022]]
| |
| *[[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)]]
| |
|
| |
|
| == Apuntes == | | == Apuntes == |
| *[[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://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]]
| |
| *[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://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== |
| * [https://campus.exactas.uba.ar/course/view.php?id=1479 Página oficial de la materia] | | * [http://www.dc.uba.ar/people/materias/algo1/ Página oficial de la materia] |
|
| |
|
| [[Category:Materias]] | | [[Category:Materias]] |
| [[Category:Computación]] | | [[Category:Computación]] |
| [[Category:Programación]] | | [[Category:Programación]] |