Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1
Introducción a la Programación - AED I
2
Introducción a la Programación - AED I
I Especificar problemas.
I Describirlos en un lenguaje semiformal.
I Pensar algoritmos para resolver los problemas.
I En esta materia nos concentramos en programas para tratamiento de
secuencias principalmente.
I Empezar a Razonar acerca de estos algoritmos y programas.
I Veremos conceptos de testing.
I Veremos nociones de complejidad.
2
IP - AED I: Régimen de aprobación
I Con nota numérica
I 1 parcial integrador con su recuperatorio (al final de la cursada)
I 1 trabajo práctico grupal (4 integrantes)
I Aprobado / No aprobado
I 3 trabajos prácticos individuales
I Consistirán en programar ejercicios y subirlos a una plataforma
(CMS)
I TP 1: funcional (no lo tienen que entrgar los estudiantes que
aprobaron el Taller de Álgebra I)
I TP 2 y TP 3: python
I Régimen de promoción
I Todas las instancias de evaluación deben estar aprobadas
I Si el promedio de notas general es mayor o igual a 8: promoción
directa
I Si el promedio de notas general está entre 6 y 8: coloquio (sólo
válido en el cuatrimestre en curso)
I Si el promedio de notas general está entre 4 y 6: final escrito
(tradicional)
3
¿Qué es una computadora?
4
¿Qué es una computadora?
4
¿Qué es una computadora?
1. Es una máquina.
4
¿Qué es una computadora?
1. Es una máquina.
2. Su función es procesar información, y estos términos deben
entenderse en sentido amplio.
4
¿Qué es una computadora?
1. Es una máquina.
2. Su función es procesar información, y estos términos deben
entenderse en sentido amplio.
3. El procesamiento se realiza en forma automática.
4
¿Qué es una computadora?
1. Es una máquina.
2. Su función es procesar información, y estos términos deben
entenderse en sentido amplio.
3. El procesamiento se realiza en forma automática.
4. El procesamiento se realiza siguiendo un programa.
4
¿Qué es una computadora?
1. Es una máquina.
2. Su función es procesar información, y estos términos deben
entenderse en sentido amplio.
3. El procesamiento se realiza en forma automática.
4. El procesamiento se realiza siguiendo un programa.
5. Este programa está almacenado en una memoria interna de la misma
computadora.
4
¿Qué es un algoritmo?
5
¿Qué es un algoritmo?
5
¿Qué es un algoritmo?
5
¿Qué es un algoritmo?
5
¿Qué es un algoritmo?
5
¿Qué es un algoritmo?
5
Ejemplo: Un Algoritmo
6
¿Qué es un programa?
7
¿Qué es un programa?
7
¿Qué es un programa?
7
¿Qué es un programa?
7
Ejemplo: Un Programa (en Haskell)
8
Especificación, algoritmo, programa
1. Especificación:
9
Especificación, algoritmo, programa
9
Especificación, algoritmo, programa
2. Algoritmo:
9
Especificación, algoritmo, programa
9
Especificación, algoritmo, programa
3. Programa:
9
Especificación, algoritmo, programa
9
Problema, especificación, algoritmo, programa
11
Diferenciaremos el QUÉ del CÓMO
12
Especificación de problemas
13
Especificación de problemas
13
Especificación de problemas
1. testing,
2. verificación formal de corrección,
3. derivación formal (construir un programa a partir de la
especificación).
13
Lenguaje naturales y lenguajes formales
Lenguajes naturales
I Idiomas (castellano)
I Mucho poder expresivo (modos verbales –potencial, imperativo–, tiempos
verbales –pasado, presente, futuro—, metáforas, etc. )
I Con un plus (conocimiento del contexto, suposiciones, etc)
I No se usan para especificar porque pueden ser ambiguos, y no tienen un
cálculo formal.
Lenguajes formales
I Sintaxis sencilla
I Limitan lo que se puede expresar
I Explicitan las suposiciones
I Relación formal entre lo escrito (sintaxis) y su significado (semántica)
I Tienen cálculo para transformar expresiones válidas en otras válidas
14
Lenguajes formales. Ejemplos
15
Contratos
16
Contratos
16
Contratos
16
Contratos
16
Contratos
16
Partes de una especificación (contrato)
1. Encabezado
17
Partes de una especificación (contrato)
1. Encabezado
2. Precondiciones o cláusulas “requiere”
I Condición sobre los argumentos, que el programador da por cierta.
I Especifica lo que requiere la función para hacer su tarea.
I Por ejemplo: “el valor de entrada es un real no negativo”
17
Partes de una especificación (contrato)
1. Encabezado
2. Precondiciones o cláusulas “requiere”
I Condición sobre los argumentos, que el programador da por cierta.
I Especifica lo que requiere la función para hacer su tarea.
I Por ejemplo: “el valor de entrada es un real no negativo”
3. Postcondiciones o cláusulas “asegura”
I Condiciones sobre el resultado, que deben ser cumplidas por el
programador siempre y cuando el usuario haya cumplido las
precondiciones.
I Especifica lo que la función asegura que se va a cumplir después de
llamarla (si se cumplı́a la precondición).
I Por ejemplo: “la salida es la raı́z cuadrada del valor de entrada”
17
Parámetros y tipos de datos
18
Parámetros y tipos de datos
18
Parámetros y tipos de datos
18
Parámetros y tipos de datos
18
¿Por qué escribir la especificación del problema?
19
¿Por qué cometemos errores?
Los humanos cometemos errores, también cuando escribimos programas.
20
¿Qué ocurre cuando hay errores en los programas?
21
Le Bug: El caso del Ariane 5
22
Le Bug: El caso del Ariane 5
23
Therac-25
24
¿Preguntas?
25