Curso de Nivelación de Algoritmos - Clase 1

15

Transcript of Curso de Nivelación de Algoritmos - Clase 1

Page 1: Curso de Nivelación de Algoritmos - Clase 1

De los problemas a los programasModelo Formal

AlgoritmosLenguajes de Programación

Curso de Nivelación de Algoritmos

Clase 1

Lic. Ernesto Mislej

[email protected]

Maestría y Carrera de Especialización en Explotación de Datos y Descubrimiento

de Conocimiento

12 de marzo de 2012

Lic. Ernesto Mislej Curso de Nivelación de Algoritmos

Page 2: Curso de Nivelación de Algoritmos - Clase 1

De los problemas a los programasModelo Formal

AlgoritmosLenguajes de Programación

Computer science is no more about computers than

astronomy is about telescopes.

� E. W. Dijkstra

Lic. Ernesto Mislej Curso de Nivelación de Algoritmos

Page 3: Curso de Nivelación de Algoritmos - Clase 1

De los problemas a los programasModelo Formal

AlgoritmosLenguajes de Programación

De los problemas a los programas

I Escribir un programa de computadoras comprende variospasos:

I Formulación y especi�cación del problema.I Diseño de la solución.I Implantación.I Prueba.I Documentación.I Evaluación de la solución.

I La mitad del trabajo es saber qué problema se va a resolver.

Lic. Ernesto Mislej Curso de Nivelación de Algoritmos

Page 4: Curso de Nivelación de Algoritmos - Clase 1

De los problemas a los programasModelo Formal

AlgoritmosLenguajes de Programación

De los problemas a los programas

I Al abordar los problemas, por lo general, éstos no tienen una

especi�cación simple y precisa.

I Una buena estrategia es expresar ciertos aspectos de un

problema con un modelo formal recurriendo a casi cualquier

rama de las matemáticas y de las ciencias.

I Y así aprovechar todo lo que se sabe del modelo.

Lic. Ernesto Mislej Curso de Nivelación de Algoritmos

Page 5: Curso de Nivelación de Algoritmos - Clase 1

De los problemas a los programasModelo Formal

AlgoritmosLenguajes de Programación

Modelo Formal

Ejemplo

Elegir dónde ubicarse al subir a un colectivo lleno.

Lic. Ernesto Mislej Curso de Nivelación de Algoritmos

Page 6: Curso de Nivelación de Algoritmos - Clase 1

De los problemas a los programasModelo Formal

AlgoritmosLenguajes de Programación

Modelo Formal

Ejemplo

Elegir 2 equipos de fútbol parejos, para jugar un picado.

Lic. Ernesto Mislej Curso de Nivelación de Algoritmos

Page 7: Curso de Nivelación de Algoritmos - Clase 1

De los problemas a los programasModelo Formal

AlgoritmosLenguajes de Programación

Modelo Formal

Ejemplo

Llegar a Ciudad Universitaria desde el centro.

Lic. Ernesto Mislej Curso de Nivelación de Algoritmos

Page 8: Curso de Nivelación de Algoritmos - Clase 1

De los problemas a los programasModelo Formal

AlgoritmosLenguajes de Programación

Modelo Formal

Ejemplo

Ir al supermercado con una lista de productos.

Lic. Ernesto Mislej Curso de Nivelación de Algoritmos

Page 9: Curso de Nivelación de Algoritmos - Clase 1

De los problemas a los programasModelo Formal

AlgoritmosLenguajes de Programación

Modelo Formal

Ejemplo

Armar las mesas para un casamiento.

Lic. Ernesto Mislej Curso de Nivelación de Algoritmos

Page 10: Curso de Nivelación de Algoritmos - Clase 1

De los problemas a los programasModelo Formal

AlgoritmosLenguajes de Programación

Algoritmos

I Cuando se tiene el modelo adecuado al problema se puede

buscar una solución en función de ese modelo.

I El objetivo inicial consiste en hallar una solución en forma de

algoritmo.

I Un algoritmo es una secuencia �nita de instrucciones, de

signi�cado preciso y puede ejecutarse con una cantidad �nita

de esfuerzo.

Lic. Ernesto Mislej Curso de Nivelación de Algoritmos

Page 11: Curso de Nivelación de Algoritmos - Clase 1

De los problemas a los programasModelo Formal

AlgoritmosLenguajes de Programación

Algoritmos

Ejemplo

Armar una red tendido de TV por Cable.

Unir todas las casas usando la mínima cantidad de cable.

Lic. Ernesto Mislej Curso de Nivelación de Algoritmos

Page 12: Curso de Nivelación de Algoritmos - Clase 1

De los problemas a los programasModelo Formal

AlgoritmosLenguajes de Programación

Algoritmos

Kruskal (AGN):

1. Sea T un conjunto vacío.

2. Sea E el conjunto de ejes.

3. Extraer e el eje más pequeño de E .

4. Si T ∪ {e} tiene un ciclo, descartar e;

sino agregar e a T .

5. Si T no une a todos los nodos, ir a 3.

6. Devolver T .

http://www-b2.is.tokushima-u.ac.jp/ ikeda/suuri/kruskal/KruskalApp.shtml?demo1

Lic. Ernesto Mislej Curso de Nivelación de Algoritmos

Page 13: Curso de Nivelación de Algoritmos - Clase 1

De los problemas a los programasModelo Formal

AlgoritmosLenguajes de Programación

Algoritmos

I Los algoritmos pueden estar expresados en lenguaje natural,

como el español, en un lenguaje de programación o incluso por

diseño de hardware.

I El único requisito es que la especi�cación debe proveer una

descripción precisa de los pasos a seguir dentro del

procedimiento.

Lic. Ernesto Mislej Curso de Nivelación de Algoritmos

Page 14: Curso de Nivelación de Algoritmos - Clase 1

De los problemas a los programasModelo Formal

AlgoritmosLenguajes de Programación

Los lenguajes de Programación

I ¾Qué lenguajes de programación conocen?

I Nosotros vamos a usar Python:

http://www.python.org

I Cada lenguaje tiene una sintaxis y una semántica en particular,

es decir, el conjunto de instrucciones que admite como válidas

y la manera particular de utilizarlas.

Lic. Ernesto Mislej Curso de Nivelación de Algoritmos

Page 15: Curso de Nivelación de Algoritmos - Clase 1

De los problemas a los programasModelo Formal

AlgoritmosLenguajes de Programación

Los lenguajes de Programación

I A su vez cada lenguaje de programación denota un paradigma

de programación.

I Existen lenguajes que son declarativos �como el SQL� y

lenguajes que son imperativos (existen aún más distinciones).

I Nosotros vamos por el modelo imperativo.

I Veamos el entorno interactivo Python.

Lic. Ernesto Mislej Curso de Nivelación de Algoritmos