Diferencia entre revisiones de «Algoritmos y Estructuras de Datos I»

De Cuba-Wiki
CubaWiki>Sebas Andres
 
(No se muestran 31 ediciones intermedias de 15 usuarios)
Línea 1: Línea 1:
__NOTOC__
__NOTOC__
'''Introducción a la Programación''' (anteriormente Algoritmos y Estructuras de Datos I) es una de las materias del [[Plan de la Carrera#Primer año|Primer año]] que no tiene correlativas además del [[Lista de materias de computación#Materias del CBC|CBC]].
{{ Plan 1993 | Introducción a la Programación }}
<br> 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.</br>
 
Según el [[Plan de la Carrera]] (2023) esta es una materia necesaria junto con [[Álgebra I]] para cursar [[Algoritmos y Estructuras de Datos II|Algoritmos y Estructuras de Datos]].
'''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 ==
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).
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 jueves de 9 a 14 hs, 12 a 17 hs y 17 a 22hs.
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://github.com/Luloide/IP Prácticas 1er cuatrimestre 2023]
*[https://github.com/nachodall/UBA-FCEN-IP-AyED1 Prácticas 1C 2023]
*[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 44: Línea 42:
*[[Media:P7-listas.pdf|Práctica 7: Listas]]
*[[Media:P7-listas.pdf|Práctica 7: Listas]]
*[[Media:P8-TiposCompuestos.pdf| Práctica 8: Tipos compuestos]]
*[[Media:P8-TiposCompuestos.pdf| Práctica 8: Tipos compuestos]]
== Parciales (integrador) ==
{| class="wikitable sortable"
! Año  !! Cuatrimestre        !! Fecha      !! Instancia    !! Links
|-
|| 2023 || Primer Cuatrimestre || 15/6/2023 || Parcial || [[Medio:IAP_parcial_15-06-23.pdf | Enunciado (PDF)]], [[Medio:IP_parcial_15-06-23_resuelto.pdf| Solucion (PDF)]].
|-
|}


== Parciales de AED1 ==
== Parciales ==
=== Primeros parciales (Especificación) ===
=== Primeros parciales (Especificación) ===
{| class="wikitable sortable"
{| class="wikitable sortable"
Línea 163: 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 ==
*[https://yielding-eyeliner-2a6.notion.site/9bd81790733c47bdb6162a3989ffc236?v=7504303d05bb4b86910f032f33b540c4 Apuntes de Luloide (1er cuatrimestre 2023)]
*[https://github.com/SebasAndres/Introduccion-a-la-programacion-UBA Repositorio de la materia + guias resueltas (2023)]
*[https://drive.google.com/drive/folders/13cQvqBbh3apPau5SSzvSCAGjocQKRjOg?usp=sharing Slides de teóricas y prácticas - 1C 2023]
*[[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

Esta página es sobre la materia del plan de estudios 1993. Para ver la materia del plan 2023, consultar Introducción a la Programación .

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:
  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

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

Finales

Apuntes


Enlaces Externos