SlideShare una empresa de Scribd logo
De los problemas a los programas
                           Modelo Formal
                                Algoritmos
               Lenguajes de Programación




            Curso de Nivelación de Algoritmos
                                        Clase 1


                              Lic. Ernesto Mislej
                             emislej@gmail.com

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
De los problemas a los programas
                      Modelo Formal
                           Algoritmos
          Lenguajes 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
De los problemas a los programas
                            Modelo Formal
                                 Algoritmos
                Lenguajes de Programación




De los problemas a los programas


      Escribir un programa de computadoras comprende varios
      pasos:
           Formulación y especicación del problema.
           Diseño de la solución.
           Implantación.
           Prueba.
           Documentación.
           Evaluación de la solución.
      La mitad del trabajo es saber qué problema se va a resolver.




                         Lic. Ernesto Mislej   Curso de Nivelación de Algoritmos
De los problemas a los programas
                            Modelo Formal
                                 Algoritmos
                Lenguajes de Programación




De los problemas a los programas


      Al abordar los problemas, por lo general, éstos no tienen una
      especicación simple y precisa.
      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.
      Y así aprovechar todo lo que se sabe del modelo.




                         Lic. Ernesto Mislej   Curso de Nivelación de Algoritmos
De los problemas a los programas
                              Modelo Formal
                                   Algoritmos
                  Lenguajes 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
De los problemas a los programas
                             Modelo Formal
                                  Algoritmos
                 Lenguajes 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
De los problemas a los programas
                             Modelo Formal
                                  Algoritmos
                 Lenguajes de Programación




Modelo Formal




  Ejemplo
  Llegar a Ciudad Universitaria desde el centro.




                          Lic. Ernesto Mislej   Curso de Nivelación de Algoritmos
De los problemas a los programas
                             Modelo Formal
                                  Algoritmos
                 Lenguajes de Programación




Modelo Formal




  Ejemplo
  Ir al supermercado con una lista de productos.




                          Lic. Ernesto Mislej   Curso de Nivelación de Algoritmos
De los problemas a los programas
                             Modelo Formal
                                  Algoritmos
                 Lenguajes de Programación




Modelo Formal




  Ejemplo
  Armar las mesas para un casamiento.




                          Lic. Ernesto Mislej   Curso de Nivelación de Algoritmos
De los problemas a los programas
                              Modelo Formal
                                   Algoritmos
                  Lenguajes de Programación




Algoritmos


      Cuando se tiene el modelo adecuado al problema se puede
      buscar una solución en función de ese modelo.
      El objetivo inicial consiste en hallar una solución en forma de
      algoritmo.
      Un algoritmo es una secuencia nita de instrucciones, de
      signicado preciso y puede ejecutarse con una cantidad nita
      de esfuerzo.




                           Lic. Ernesto Mislej   Curso de Nivelación de Algoritmos
De los problemas a los programas
                              Modelo Formal
                                   Algoritmos
                  Lenguajes 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
De los problemas a los programas
                                   Modelo Formal
                                        Algoritmos
                       Lenguajes 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
De los problemas a los programas
                              Modelo Formal
                                   Algoritmos
                  Lenguajes de Programación




Algoritmos


      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.
      El único requisito es que la especicación debe proveer una
      descripción precisa de los pasos a seguir dentro del
      procedimiento.




                           Lic. Ernesto Mislej   Curso de Nivelación de Algoritmos
De los problemas a los programas
                            Modelo Formal
                                 Algoritmos
                Lenguajes de Programación




Los lenguajes de Programación


      ¾Qué lenguajes de programación conocen?
      Nosotros vamos a usar Python:

                             http://www.python.org
      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
De los problemas a los programas
                            Modelo Formal
                                 Algoritmos
                Lenguajes de Programación




Los lenguajes de Programación


      A su vez cada lenguaje de programación denota un paradigma
      de programación.
      Existen lenguajes que son declarativos como el SQL y
      lenguajes que son imperativos (existen aún más distinciones).
      Nosotros vamos por el modelo imperativo.


      Veamos el entorno interactivo Python.




                         Lic. Ernesto Mislej   Curso de Nivelación de Algoritmos

Más contenido relacionado

PDF
Curso de Nivelación de Algoritmos - Clase 2
PDF
Curso de Nivelación de Algoritmos - Clase 5
PDF
Curso de Nivelación de Algoritmos - Clase 4
PDF
Curso de Nivelación de Algoritmos - Clase 3
PDF
02 examen parcial n°1-informática ii-vacio
PPTX
Capitulo i modelos_matematicos_y_errores,_parte_1[1]
PPTX
Tarea3.
DOCX
preguntas de algoritmos
Curso de Nivelación de Algoritmos - Clase 2
Curso de Nivelación de Algoritmos - Clase 5
Curso de Nivelación de Algoritmos - Clase 4
Curso de Nivelación de Algoritmos - Clase 3
02 examen parcial n°1-informática ii-vacio
Capitulo i modelos_matematicos_y_errores,_parte_1[1]
Tarea3.
preguntas de algoritmos

La actualidad más candente (20)

DOCX
Cuestionario de algoritmos
PPT
Logica de la Programación Problemas y Soluciones
PDF
Conceptos basicos algoritmos
PDF
Tipos algoritmos
PPTX
PPTX
Algoritmo Matematicas
DOCX
Algoritmia
KEY
Sosa info 04
PPT
Clase De Elementos De ProgramacióN
PPT
Unidad 1, 2 y_3_algoritmos
DOCX
Cuestionario de algoritmoss2
PPTX
Introducción a la Programación
PPTX
Diseño Estructurado de Algoritmos
PPTX
Lógica de programación
PPT
Diagramas De Flujo
DOC
Variables
PPTX
Trabajo dfe informatica
PPTX
Algoritmo
PPTX
Trabajo de informatica.com
Cuestionario de algoritmos
Logica de la Programación Problemas y Soluciones
Conceptos basicos algoritmos
Tipos algoritmos
Algoritmo Matematicas
Algoritmia
Sosa info 04
Clase De Elementos De ProgramacióN
Unidad 1, 2 y_3_algoritmos
Cuestionario de algoritmoss2
Introducción a la Programación
Diseño Estructurado de Algoritmos
Lógica de programación
Diagramas De Flujo
Variables
Trabajo dfe informatica
Algoritmo
Trabajo de informatica.com
Publicidad

Destacado (16)

PDF
Tópicos de Big Data - Introducción
PDF
Tópicos de Big Data - Sistemas de Recomendación
PDF
Tópicos de Big Data - Link Analysis
PDF
Tópicos de Big Data - Items Similares
PDF
Innovación en Big Data
PDF
Data Science & Big Data
PDF
Opinion Mining #datafestAr
PPTX
Heap sort
PDF
Opinion Mining
PDF
A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...
PPTX
Algoritmos recursivos
PPTX
Data Mining
PPTX
PPTX
Lenguajes lógicos definicion y funcion
PDF
Análisis Inteligente de Textos
PDF
TEDx Manchester: AI & The Future of Work
Tópicos de Big Data - Introducción
Tópicos de Big Data - Sistemas de Recomendación
Tópicos de Big Data - Link Analysis
Tópicos de Big Data - Items Similares
Innovación en Big Data
Data Science & Big Data
Opinion Mining #datafestAr
Heap sort
Opinion Mining
A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...
Algoritmos recursivos
Data Mining
Lenguajes lógicos definicion y funcion
Análisis Inteligente de Textos
TEDx Manchester: AI & The Future of Work
Publicidad

Similar a Curso de Nivelación de Algoritmos - Clase 1 (20)

PPT
1 eda teo
PPS
Programacion
PDF
Unidad I. Algoritmo y Programas. Parte 1
PPT
Generacionlenguajes
PPT
C:\Documents And Settings\Alumnos\Escritorio\Programaion1
PPT
Introduccion a los algoritmos
DOCX
Algoritmos, programas, compiladores y lenguajes de programacion
PPTX
Herramientas de programacion de sistemas
PPTX
Herramientas De Programacion De Sistemas
PPTX
Herramientas de programacion de sistemas
PDF
Conceptos basicos de lenguajes de programacion
PPT
Unidad 1-continacion
PPT
Unidad 1-continacion
PPT
Unidad 1-continacion
PDF
Desarrollo de habilidades de pensamiento
PPTX
Unidad 1
PDF
T1.B. nuevos Procedimientos programacion.pdf
PPT
2 Conceptos De Programacion
DOCX
Fundamentos de programación
1 eda teo
Programacion
Unidad I. Algoritmo y Programas. Parte 1
Generacionlenguajes
C:\Documents And Settings\Alumnos\Escritorio\Programaion1
Introduccion a los algoritmos
Algoritmos, programas, compiladores y lenguajes de programacion
Herramientas de programacion de sistemas
Herramientas De Programacion De Sistemas
Herramientas de programacion de sistemas
Conceptos basicos de lenguajes de programacion
Unidad 1-continacion
Unidad 1-continacion
Unidad 1-continacion
Desarrollo de habilidades de pensamiento
Unidad 1
T1.B. nuevos Procedimientos programacion.pdf
2 Conceptos De Programacion
Fundamentos de programación

Curso de Nivelación de Algoritmos - Clase 1

  • 1. De los problemas a los programas Modelo Formal Algoritmos Lenguajes de Programación Curso de Nivelación de Algoritmos Clase 1 Lic. Ernesto Mislej emislej@gmail.com 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
  • 2. De los problemas a los programas Modelo Formal Algoritmos Lenguajes 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
  • 3. De los problemas a los programas Modelo Formal Algoritmos Lenguajes de Programación De los problemas a los programas Escribir un programa de computadoras comprende varios pasos: Formulación y especicación del problema. Diseño de la solución. Implantación. Prueba. Documentación. Evaluación de la solución. La mitad del trabajo es saber qué problema se va a resolver. Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
  • 4. De los problemas a los programas Modelo Formal Algoritmos Lenguajes de Programación De los problemas a los programas Al abordar los problemas, por lo general, éstos no tienen una especicación simple y precisa. 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. Y así aprovechar todo lo que se sabe del modelo. Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
  • 5. De los problemas a los programas Modelo Formal Algoritmos Lenguajes 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
  • 6. De los problemas a los programas Modelo Formal Algoritmos Lenguajes 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
  • 7. De los problemas a los programas Modelo Formal Algoritmos Lenguajes de Programación Modelo Formal Ejemplo Llegar a Ciudad Universitaria desde el centro. Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
  • 8. De los problemas a los programas Modelo Formal Algoritmos Lenguajes de Programación Modelo Formal Ejemplo Ir al supermercado con una lista de productos. Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
  • 9. De los problemas a los programas Modelo Formal Algoritmos Lenguajes de Programación Modelo Formal Ejemplo Armar las mesas para un casamiento. Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
  • 10. De los problemas a los programas Modelo Formal Algoritmos Lenguajes de Programación Algoritmos Cuando se tiene el modelo adecuado al problema se puede buscar una solución en función de ese modelo. El objetivo inicial consiste en hallar una solución en forma de algoritmo. Un algoritmo es una secuencia nita de instrucciones, de signicado preciso y puede ejecutarse con una cantidad nita de esfuerzo. Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
  • 11. De los problemas a los programas Modelo Formal Algoritmos Lenguajes 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
  • 12. De los problemas a los programas Modelo Formal Algoritmos Lenguajes 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
  • 13. De los problemas a los programas Modelo Formal Algoritmos Lenguajes de Programación Algoritmos 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. El único requisito es que la especicación debe proveer una descripción precisa de los pasos a seguir dentro del procedimiento. Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
  • 14. De los problemas a los programas Modelo Formal Algoritmos Lenguajes de Programación Los lenguajes de Programación ¾Qué lenguajes de programación conocen? Nosotros vamos a usar Python: http://www.python.org 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
  • 15. De los problemas a los programas Modelo Formal Algoritmos Lenguajes de Programación Los lenguajes de Programación A su vez cada lenguaje de programación denota un paradigma de programación. Existen lenguajes que son declarativos como el SQL y lenguajes que son imperativos (existen aún más distinciones). Nosotros vamos por el modelo imperativo. Veamos el entorno interactivo Python. Lic. Ernesto Mislej Curso de Nivelación de Algoritmos