Diferencia entre revisiones de «Introducción a la Programación»

De Cuba-Wiki
 
(No se muestran 157 ediciones intermedias de 51 usuarios)
Línea 1: Línea 1:
__NOTOC__
{{Plan 2023 | Algoritmos y Estructuras de Datos I}}
'''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]] y [[Métodos Numéricos]].


== Información General sobre la Cursada ==
{{Materia
Algoritmos I consiste de clases teóricas y prácticas. Para aprobar la materia se deben rendir 2 exámenes parciales (especificación e imperativo) y 2 trabajos prácticos.
  | anoCursada=Primer año
  | cargaHoraria=10 horas semanales
  | correlativas=[[Lista de materias de computación#Materias del CBC|CBC]]
  | correlativaDe=[[Algoritmos y Estructuras de Datos]] y [[Sistemas Digitales]]
}}


La materia se cursa los Lunes, Miércoles y Viernes de 17 a 22hs.
'''Introducción a la Programación''' es una materia obligatoria de la [[Licenciatura en Ciencias de la Computación]], incluida también en su título intermedio [[Bachiller Universitario en Computación]]. Su objetivo es presentar el pensamiento algorítmico, y describir conceptos y estructuras algorítmicas fundamentales a través del estudio de la programación imperativa y funcional.


== Contenidos ==
== Información general sobre la cursada ==
<big>'''Parte I - Corrección de programas imperativos:'''</big>
Introducción a la Programación consiste de clases teóricas, prácticas y de laboratorio. Para aprobar la materia se deben rendir dos examenes parciales y un trabajo practico.
*Contratos. Obligaciones y derechos del programador y del usuario
La materia se cursa los Lunes y Miércoles (laboratorios), de 9:00 a 11:30, 11:30 a 14:00, 17:00 a 19:30 o 19:30 a 22:00; y Jueves (teóricas) de 9:00 a 14:00 o 17:00 a 22:00
*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


<big>'''Parte II - Algoritmos sobre secuencias'''</big>
== Apuntes ==
* Buenas prácticas para el desarrollo de software. El software pensado para consumo humano.
*[https://yielding-eyeliner-2a6.notion.site/9bd81790733c47bdb6162a3989ffc236?v=7504303d05bb4b86910f032f33b540c4 Apuntes de Luloide (1er cuatrimestre 2023)]
* Fundamentos de testing estructural: cubrimiento de líneas, branches, condiciones básicas. Diagramas de flujo de control.  
*[https://drive.google.com/drive/folders/13cQvqBbh3apPau5SSzvSCAGjocQKRjOg?usp=sharing Slides de teóricas y prácticas - 1C 2023]
* 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==
*[https://drive.google.com/file/d/1w8S7avISqJ6sMK2bfzw21U_Qc8Bms1bE/view?usp=sharing| Prácticas 1-9 de 2020 resueltas]
*[https://github.com/Luloide/IP Prácticas 1er cuatrimestre 2023]
*[[Media:P1-logica.pdf |Práctica 1: Lógica Proposicional y Tipos Básicos]]
*[https://github.com/nachodall/UBA-FCEN-IP-AyED1 Prácticas 1er cuatrimestre 2023]
** [[Práctica 1: Lógica Proposicional y Tipos Básicos (Algoritmos I) | Solución]]
*[https://gitlab.com/faustomartinez/uba-algoritmos-y-estructuras-de-datos-i Prácticas 2do cuatrimestre 2023]
*[[Media:P2-secuencias.pdf|Práctica 2: Secuencias]]
*[https://github.com/laurabllrs/introprogramacion Prácticas y simulacros de parcial 2do cuatrimestre 2023]
** [[Práctica 2: Secuencias (Algoritmos I) | Solución]]
*[https://github.com/franballerio/IntroProg-Algo1 Prácticas 2do cuatrimestre 2023]
*[[Media:P3-cuantificadores.pdf |Práctica 3: Cuantificadores]]
*[https://gitlab.com/valn/uba/-/tree/main/Introducci%C3%B3n%20a%20la%20programaci%C3%B3n%20(ex%20Algo%20I) CMSs de Python + prácticas resueltas + clases teóricas (PDFs) por valn / valnrms]
** [[Práctica 3: Cuantificadores (Algoritmos I) | Solución]]
*[https://github.com/blatth/introprog 1C2024: Guías, clases teóricas y prácticas, TP y parciales]
*[[Media:P4-espec_problemas.pdf| Práctica 4: Especificación de Problemas]]
*[https://github.com/agustinacf/IntroduccionALaProgramacion Prácticas 1er cuatrimestre 2024]
** [[Práctica 4: Especificación de Problemas (Algoritmos I) | Solución]]
*[https://github.com/dZev1/IntroProgGuias Prácticas 1er cuatrimestre 2024]
*[[Media:P5-tipos.pdf| Práctica 5: Tipos]]
 
** [[Práctica 5: Tipos (Algoritmos I) | Solución]]
== Parciales ==
*[[Media:P6-FuncionalBasica.pdf| Práctica 6: Funcional Básica]]
 
*[[Media:P7-listas.pdf|Práctica 7: Listas]]
=== Parciales integradores (se dieron en el 1ºC 2023) ===
*[[Media:P8-TiposCompuestos.pdf| Práctica 8: Tipos compuestos]]
 
{| class="wikitable sortable"
! Año  !! Cuatrimestre        !! Fecha      !! Instancia    !! Links
|-
|| 2023 || Primer Cuatrimestre || 15/06/2023 || Parcial Integrador ||
[[Medio:MOA - Parcial de IP (1C-2023).2.pdf | Enunciado y Solución (PDF)]].
|-
|| 2023 || Primer Cuatrimestre || 15/06/2023 || Parcial Integrador ||
[[Medio:IAP_parcial_Latex_15-06-23.pdf | Enunciado y Solución (PDF)]].
|-
|| 2023 || Primer Cuatrimestre || 22/06/2023 || Recuperatorio Integrador || [[Medio:Iap-recuperatorio-1c-2023-consignas.pdf | Enunciado]].
|-
|| 2023 || Primer Cuatrimestre || 15/06/2023 || Parcial Integrador || [[Medio:IAP_parcial_15-06-23_Dafer.pdf | Enunciado y Solución (PDF)]].
|-
|| 2023 || Primer Cuatrimestre || 15/06/2023 || Parcial ||
[[Medio:IAP_parcial_15-06-23.pdf | Enunciado (PDF)]],
[[Medio:IP_parcial_15-06-23_resuelto.pdf| Solución (PDF)]].
|-
|-
|}


==Parciales==
=== Primeros parciales (Haskell) ===
=== Primeros parciales (Especificación) ===
*[[Media:ParcialesEspecificacion.zip|Parciales de especificacion]]
*[[Media:img001.pdf|Parcial del 17/04/2013]]
*[[Media:RPI resuEspe1C2013.pdf|Recuperatorio del 28/06/2013]]
*[[Medio:espe2C2013.pdf|Parcial del 13/09/2013]]
*[[Media:RPI resuEspe2C2013.pdf|Recuperatorio del 27/11/2013]]
*[[Media:AED1_1parcial_24-04-15.pdf|Parcial del 24/04/2015]]
*[[Media:AED1_1parcial_24-04-15_resuelto.pdf|Parcial del 24/04/2015 (Resuelto)]]
*[[Media:AED1_1parcial_18-09-15.pdf|Parcial del 18/09/2015]]
*[[Media:AED1_1parcial_25-04-16_resuelto.pdf|Parcial del 25/04/2016 (Resuelto)]]
*[[Media:AED1_1parcial_14-09-16_resuelto.pdf|Parcial del 14/09/2016 (Resuelto)]]
*[[Media:AED1_1parcial_12-05-17_resuelto.pdf|Parcial del 12/05/2017 (Resuelto)]]
*[[Media:recuPrimerParcialAlgo1_7-7-17.pdf|Recuperatorio del 7/07/2017 (enunciado)]]
*[[Media:primerParcialAlgo1_6-10-17.pdf|Parcial del 6/10/2017 (enunciado)]]
*[[Medio:AED1_1parcial_17-10-18.pdf| Parcial del 17/10/2018 (Resuelto)]]
*[[Medio:AED1_1parcial_10-5-19.pdf| Parcial del 10/05/2019 (Resuelto)]]
*[[Medio:AED1_1parcial_21-10-20.pdf| Parcial del 21/10/2020 (Enunciado)]]
*[[Medio:AED1_1recu_27-11-20.pdf|Recuperatorio del 27/11/2020 (Enunciado)]]
*[[Medio:AED1_1parcial_19-05-21.pdf|Parcial del 19/05/2021 (Enunciado)]]
*[[Medio:AED1_1recu_28-06-21.pdf|Recuperatorio del 28/06/2021 (Enunciado)]]


===Segundos parciales (Imperativo)===
{| class="wikitable sortable"
*[[Media:PI 07-07-2006 (Algoritmos I).pdf|Parcial del 07/07/2006]]
! Año  !! Cuatrimestre        !! Fecha      !! Instancia    !! Links
*[[Media:PI 30-11-2005 (Algoritmos I).pdf|Parcial del 30/11/2005]]
|-
*[[Media:PI 11-07-2005 (Algoritmos I).pdf|Parcial del 11/07/2005]]
|| 2023 || Segundo Cuatrimestre || 18/08/2023 || Simulacro de Parcial (Haskell) ||
*[[Media:RPI 19-07-2006 (Algoritmos I).pdf|Recuperatorio del 19/07/2006]]
[https://github.com/laurabllrs/introprogramacion/blob/main/simulacroParcialHaskell.hs Enunciado y Solución].
*[[Media:RPI 16-12-2005 (Algoritmos I).pdf|Recuperatorio del 16/12/2005]]
|-
*[[Media:RPI 23-07-2005 (Algoritmos I).pdf|Recuperatorio del 23/07/2005]]
|| 2023 || Segundo Cuatrimestre || 18/08/2023 || Simulacro de Parcial (Haskell) ||
*[[Media:imp1C2013.pdf|Parcial del 24/06/2013]]
[https://gitlab.com/faustomartinez/uba-algoritmos-y-estructuras-de-datos-i/-/blob/main/simulacro-1er-parcial/enunciado.pdf Enunciado (PDF)] y [https://gitlab.com/faustomartinez/uba-algoritmos-y-estructuras-de-datos-i/-/blob/main/simulacro-1er-parcial/Simulacro.hs Solución(.hs)].
*[[Media:imp2C2013.pdf|Parcial del 18/11/2013]]
|-
*[[Media:AED1_2parcial_26-06-15_resuelto.pdf|Parcial del 26/06/2015 (Resuelto)]]
|| 2023 || Segundo Cuatrimestre || 25/08/2023 || Primer Parcial (Haskell) ||
*[[Media:AED1_2parcial_20-11-15.pdf|Parcial del 20/11/2015]]
[https://gitlab.com/faustomartinez/uba-algoritmos-y-estructuras-de-datos-i/-/blob/main/1er-parcial/PrimerParcial.pdf Enunciado(PDF)] y
*[[Media:AED1_2parcial_27-06-16_resuelto.pdf|Parcial del 27/06/2016 (Resuelto)]]
[https://gitlab.com/faustomartinez/uba-algoritmos-y-estructuras-de-datos-i/-/blob/main/1er-parcial/PrimerParcial.hs Solución(.hs)].
*[[Media:AED1_2parcial_18-11-16_resuelto.pdf|Parcial del 18/11/2016 (Resuelto)]]
|-
*[[Media:AED1_2parcial_30-06-17_resuelto.pdf|Parcial del 30/06/2017 (Resuelto)]]
|| 2023 || Segundo Cuatrimestre || 25/09/2023 || Primer Parcial (Haskell) ||
*[[Media:recuSegundoParcialAlgo1_14-7-17.pdf|Recuperatorio del 14/07/2017 (enunciado)]]
[https://github.com/laurabllrs/introprogramacion/blob/main/consignaParcialHaskell.txt Enunciado] y [https://github.com/laurabllrs/introprogramacion/blob/main/parcialHaskell.hs Solución]
*[[Media:segundoParcialAlgo1_24-11-17.pdf|Parcial del 24/11/2017 (enunciado)]]
|-
*[[Media:AED1_2parcial_22-06-18.pdf|Parcial del 22/06/2018]]
|| 2023 || Segundo Cuatrimestre || 25/09/2023 || Primer Parcial (Haskell) ||
*[[Media:AED1_2parcial_24-06-2019.pdf|Parcial del 24-06-2019 - Primer cuatrimestre (Resuelto)]]
[https://github.com/aguswake1/Computer-Science-UBA/blob/main/year2.1/introduccionALaProgramacion/parcial/primer_parcial.hs Enunciado y Solución]
*[[Media:AED1_2parcial_15-11-2019_resuelto.pdf|Parcial del 15-11-2019 (Resuelto)]]
|-
*[[Media:AED1_2parcial_19-11-20.pdf|Parcial del 19-11-2020 (Enunciado)]]
|| 2024 || Primer Cuatrimestre || 06/05/2024 || Primer Parcial (Haskell) || [https://github.com/blatth/introprog/blob/master/Parciales/Parcial%20Haskell/Parcial2024TN.hs Enunciado y solución]
|-
|| 2024 || Primer Cuatrimestre || 2023 - 2024 || Primer Parcial (Haskell) || [https://github.com/agustinacf/RepasoPrimerParcial Enunciados y soluciones]
|-
|| 2024 || Primer Cuatrimestre || 08/05/2024 || Primer Parcial (Haskell) ||
[[Medio:IAP_parcial_08-05-24_(1C-2024).pdf | Enunciado y Solución (PDF)]] y [[Medio:IAP FuncionesValidas (1C2024).pdf | Funciones Validas (PDF)]].
|-
|-
|}


===Parciales de Funcional===
=== Segundos parciales (Python) ===
*[[Media:ParcialesFuncional.zip|Parciales de funcional]]
*[[Media:func1C2013.pdf|Parcial del 20/05/2013]]
*[[Media:recuFunc1C2013.pdf|Recuperatorio del 08/07/2013]]
*[[Media:func2c2013.pdf|Parcial del 09/10/2013]]
*[[Media:recuFunc2C2013.pdf|Recuperatorio del 04/12/2013]]


==Finales==
{| class="wikitable sortable"
*[[Media:AED1_final_23-04-2019.jpg|Final del 23-04-2019]]
! Año  !! Cuatrimestre        !! Fecha      !! Instancia    !! Links
*[[Media:AED1_final_16-12-2020.pdf|Final Online del 16-12-2020]]
|-
|| 2023 || Segundo Cuatrimestre || 30/10/2023 || Simulacro de Parcial (Python) ||
[https://github.com/laurabailleres/introprogramacion/blob/main/simulacroParcialPython.py Enunciado y Solución]
|-
|| 2023 || Segundo Cuatrimestre || 06/11/2023 || Segundo Parcial (Python) ||
[https://github.com/aguswake1/Computer-Science-UBA/blob/main/year2.1/introduccionALaProgramacion/parcial/segundo_parcial.py Enunciado y Solución]
|-
|| 2023 || Segundo Cuatrimestre || 06/11/2023 || Segundo Parcial (Python) ||
[https://github.com/laurabailleres/introprogramacion/blob/main/parcialPython.py Enunciado y Solución]
|-
|| 2024 || Primer Cuatrimestre || 12/06/2024 || Segundo Parcial (Python) || [https://github.com/MartoNievas/Python-Parcial-1C- Enunciado y solución]
|-
|| 2024 || Primer Cuatrimestre || 12/06/2024 || Segundo Parcial (Python) || [https://github.com/blatth/introprog/blob/master/Parciales/Parcial%20Python/Parcial2024.py Enunciado y solución]
|-
|| 2024 || Primer Cuatrimestre || 2023 - 2024 || Segundo Parcial (Python) || [https://github.com/agustinacf/RepasoSegundoParcialIP.git Enunciados y soluciones]
|-
|-
|}


== Apuntes ==
=== Finales escritos ===
*[https://drive.google.com/file/d/1qt1R9clSGQJEhDvrFYCzSOc1orrlNiUi/view?usp=sharing Apunte de Testing]
 
*[https://docs.google.com/document/d/1b8vm_PoiRftVKyE-9Tlwa-VAs9AobXe0GOpHJkO4rEg/edit?usp=sharing Resumen de Clases Teóricas y Practicas - 1C Online 2020]
{| class="wikitable sortable"
*[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
! Año  !! Cuatrimestre        !! Fecha      !! Instancia    !! Links
*[[Media:LengDeEspecificacion.pdf|Apuntes del lenguaje de especificación]]
|-
*[[Apuntes de Funcional (Algoritmos I)| Apuntes de funcional]]: Apuntes y resumenes de programacion en funcional.
|| 2024 || Primer Cuatrimestre || 18/07/2024 || Final || [[Media: IP_Final_18-07-24.jpg | Enunciado (jpg)]]
*[https://docs.google.com/document/d/13LdC39MdqZ24atcsCaBHQylSCUIdMCNivzh8xxKeEOY/edit?usp=sharing Resumen Teórico (Incompleto)]
|-
*[[Media:Labo01_CLionInstallation.pdf|Guía de Instalación de CLion IDE C++ con Licencia Estudiantil]]
|| 2024 || Primer Cuatrimestre || 25/07/2024 || Final || [[Media: IP_Final_25-07-24.jpg | Enunciado (jpg)]]
|-|
|| 2024 || Primer Cuatrimestre || 01/08/2024 || Final || [[Media: IP_Final_01-08-24.jpg | Enunciado (jpg)]]
|-
|-
|}


==Enlaces Externos==
* [https://campus.exactas.uba.ar/course/view.php?id=1479 Página oficial de la materia]


[[Category:Materias]]
[[Category:Materias]]
[[Category:Computación]]
[[Category:Computación]]
[[Category:Programación]]
[[Category:Programación]]

Revisión actual - 15:21 17 ago 2024

Esta página es sobre la materia del plan de estudios 2023. Para ver la materia del plan 1993, consultar Algoritmos y Estructuras de Datos I.
Introducción a la Programación
Año Primer año
Carga horaria 10 horas semanales
Correlativas CBC
Correlativa de Algoritmos y Estructuras de Datos y Sistemas Digitales

Introducción a la Programación es una materia obligatoria de la Licenciatura en Ciencias de la Computación, incluida también en su título intermedio Bachiller Universitario en Computación. Su objetivo es presentar el pensamiento algorítmico, y describir conceptos y estructuras algorítmicas fundamentales a través del estudio de la programación imperativa y funcional.

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 dos examenes parciales y un trabajo practico. La materia se cursa los Lunes y Miércoles (laboratorios), de 9:00 a 11:30, 11:30 a 14:00, 17:00 a 19:30 o 19:30 a 22:00; y Jueves (teóricas) de 9:00 a 14:00 o 17:00 a 22:00

Apuntes

Prácticas

Parciales

Parciales integradores (se dieron en el 1ºC 2023)

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).

Primeros parciales (Haskell)

Año Cuatrimestre Fecha Instancia Links
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).

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

Enunciado y Solución

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

Enunciado y Solución

2024 Primer Cuatrimestre 06/05/2024 Primer Parcial (Haskell) Enunciado y solución
2024 Primer Cuatrimestre 2023 - 2024 Primer Parcial (Haskell) Enunciados y soluciones
2024 Primer Cuatrimestre 08/05/2024 Primer Parcial (Haskell)

Enunciado y Solución (PDF) y Funciones Validas (PDF).

Segundos parciales (Python)

Año Cuatrimestre Fecha Instancia Links
2023 Segundo Cuatrimestre 30/10/2023 Simulacro de Parcial (Python)

Enunciado y Solución

2023 Segundo Cuatrimestre 06/11/2023 Segundo Parcial (Python)

Enunciado y Solución

2023 Segundo Cuatrimestre 06/11/2023 Segundo Parcial (Python)

Enunciado y Solución

2024 Primer Cuatrimestre 12/06/2024 Segundo Parcial (Python) Enunciado y solución
2024 Primer Cuatrimestre 12/06/2024 Segundo Parcial (Python) Enunciado y solución
2024 Primer Cuatrimestre 2023 - 2024 Segundo Parcial (Python) Enunciados y soluciones

Finales escritos

Año Cuatrimestre Fecha Instancia Links
2024 Primer Cuatrimestre 18/07/2024 Final Enunciado (jpg)
2024 Primer Cuatrimestre 25/07/2024 Final Enunciado (jpg)
2024 Primer Cuatrimestre 01/08/2024 Final Enunciado (jpg)