SlideShare uma empresa Scribd logo
1 de 15
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados (20)

Cuestionario de algoritmos
Cuestionario de algoritmosCuestionario de algoritmos
Cuestionario de algoritmos
 
Logica de la Programación Problemas y Soluciones
Logica de la  Programación  Problemas y SolucionesLogica de la  Programación  Problemas y Soluciones
Logica de la Programación Problemas y Soluciones
 
Conceptos basicos algoritmos
Conceptos basicos algoritmosConceptos basicos algoritmos
Conceptos basicos algoritmos
 
Tipos algoritmos
Tipos algoritmosTipos algoritmos
Tipos algoritmos
 
Tarea 3
Tarea  3Tarea  3
Tarea 3
 
Algoritmo Matematicas
Algoritmo MatematicasAlgoritmo Matematicas
Algoritmo Matematicas
 
Algoritmia
AlgoritmiaAlgoritmia
Algoritmia
 
Sosa info 04
Sosa info 04Sosa info 04
Sosa info 04
 
Algoritmo00
Algoritmo00Algoritmo00
Algoritmo00
 
Clase De Elementos De ProgramacióN
Clase De Elementos De ProgramacióNClase De Elementos De ProgramacióN
Clase De Elementos De ProgramacióN
 
Unidad 1, 2 y_3_algoritmos
Unidad 1, 2 y_3_algoritmosUnidad 1, 2 y_3_algoritmos
Unidad 1, 2 y_3_algoritmos
 
Cuestionario de algoritmoss2
Cuestionario de algoritmoss2Cuestionario de algoritmoss2
Cuestionario de algoritmoss2
 
Introducción a la Programación
Introducción a la ProgramaciónIntroducción a la Programación
Introducción a la Programación
 
Diseño Estructurado de Algoritmos
Diseño Estructurado de AlgoritmosDiseño Estructurado de Algoritmos
Diseño Estructurado de Algoritmos
 
Lógica de programación
Lógica de programaciónLógica de programación
Lógica de programación
 
Diagramas De Flujo
Diagramas De FlujoDiagramas De Flujo
Diagramas De Flujo
 
Variables
VariablesVariables
Variables
 
Trabajo dfe informatica
Trabajo dfe informatica Trabajo dfe informatica
Trabajo dfe informatica
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Trabajo de informatica.com
Trabajo de informatica.comTrabajo de informatica.com
Trabajo de informatica.com
 

Destaque

Tópicos de Big Data - Introducción
Tópicos de Big Data - IntroducciónTópicos de Big Data - Introducción
Tópicos de Big Data - IntroducciónErnesto Mislej
 
Tópicos de Big Data - Sistemas de Recomendación
Tópicos de Big Data - Sistemas de RecomendaciónTópicos de Big Data - Sistemas de Recomendación
Tópicos de Big Data - Sistemas de RecomendaciónErnesto Mislej
 
Tópicos de Big Data - Link Analysis
Tópicos de Big Data - Link AnalysisTópicos de Big Data - Link Analysis
Tópicos de Big Data - Link AnalysisErnesto Mislej
 
Tópicos de Big Data - Items Similares
Tópicos de Big Data - Items SimilaresTópicos de Big Data - Items Similares
Tópicos de Big Data - Items SimilaresErnesto Mislej
 
Innovación en Big Data
Innovación en Big DataInnovación en Big Data
Innovación en Big DataErnesto Mislej
 
Data Science & Big Data
Data Science & Big DataData Science & Big Data
Data Science & Big DataErnesto Mislej
 
Opinion Mining #datafestAr
Opinion Mining #datafestArOpinion Mining #datafestAr
Opinion Mining #datafestArErnesto Mislej
 
A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...
A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...
A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...Ernesto Mislej
 
Algoritmos recursivos
Algoritmos recursivosAlgoritmos recursivos
Algoritmos recursivosfeytho
 
Lenguajes lógicos definicion y funcion
Lenguajes lógicos definicion y funcionLenguajes lógicos definicion y funcion
Lenguajes lógicos definicion y funcionIsrael Castillo Cruz
 
Análisis Inteligente de Textos
Análisis Inteligente de TextosAnálisis Inteligente de Textos
Análisis Inteligente de TextosErnesto Mislej
 
TEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of WorkTEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of WorkVolker Hirsch
 

Destaque (16)

Tópicos de Big Data - Introducción
Tópicos de Big Data - IntroducciónTópicos de Big Data - Introducción
Tópicos de Big Data - Introducción
 
Tópicos de Big Data - Sistemas de Recomendación
Tópicos de Big Data - Sistemas de RecomendaciónTópicos de Big Data - Sistemas de Recomendación
Tópicos de Big Data - Sistemas de Recomendación
 
Tópicos de Big Data - Link Analysis
Tópicos de Big Data - Link AnalysisTópicos de Big Data - Link Analysis
Tópicos de Big Data - Link Analysis
 
Tópicos de Big Data - Items Similares
Tópicos de Big Data - Items SimilaresTópicos de Big Data - Items Similares
Tópicos de Big Data - Items Similares
 
Innovación en Big Data
Innovación en Big DataInnovación en Big Data
Innovación en Big Data
 
Data Science & Big Data
Data Science & Big DataData Science & Big Data
Data Science & Big Data
 
Opinion Mining #datafestAr
Opinion Mining #datafestArOpinion Mining #datafestAr
Opinion Mining #datafestAr
 
Heap sort
Heap sortHeap sort
Heap sort
 
Opinion Mining
Opinion MiningOpinion Mining
Opinion Mining
 
A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...
A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...
A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...
 
Algoritmos recursivos
Algoritmos recursivosAlgoritmos recursivos
Algoritmos recursivos
 
Data Mining
Data MiningData Mining
Data Mining
 
Técnicas de análisis
Técnicas de análisisTécnicas de análisis
Técnicas de análisis
 
Lenguajes lógicos definicion y funcion
Lenguajes lógicos definicion y funcionLenguajes lógicos definicion y funcion
Lenguajes lógicos definicion y funcion
 
Análisis Inteligente de Textos
Análisis Inteligente de TextosAnálisis Inteligente de Textos
Análisis Inteligente de Textos
 
TEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of WorkTEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of Work
 

Semelhante a Curso de Nivelación de Algoritmos - Clase 1

Programacion
ProgramacionProgramacion
Programacionedison
 
Unidad I. Algoritmo y Programas. Parte 1
Unidad I. Algoritmo y Programas. Parte 1Unidad I. Algoritmo y Programas. Parte 1
Unidad I. Algoritmo y Programas. Parte 1LisbleinArismendi
 
C:\Documents And Settings\Alumnos\Escritorio\Programaion1
C:\Documents And Settings\Alumnos\Escritorio\Programaion1C:\Documents And Settings\Alumnos\Escritorio\Programaion1
C:\Documents And Settings\Alumnos\Escritorio\Programaion1kfacu
 
Algoritmos, programas, compiladores y lenguajes de programacion
Algoritmos, programas, compiladores y lenguajes de programacionAlgoritmos, programas, compiladores y lenguajes de programacion
Algoritmos, programas, compiladores y lenguajes de programacionBoris Salleg
 
Herramientas De Programacion De Sistemas
Herramientas De Programacion De SistemasHerramientas De Programacion De Sistemas
Herramientas De Programacion De Sistemaskintskpi
 
Herramientas de programacion de sistemas
Herramientas de programacion de sistemas Herramientas de programacion de sistemas
Herramientas de programacion de sistemas betogongar
 
Herramientas de programacion de sistemas
Herramientas de programacion de sistemas Herramientas de programacion de sistemas
Herramientas de programacion de sistemas jose
 
Conceptos basicos de lenguajes de programacion
Conceptos basicos de lenguajes de programacionConceptos basicos de lenguajes de programacion
Conceptos basicos de lenguajes de programacionAshley Stronghold Witwicky
 
Unidad 1-continacion
Unidad 1-continacionUnidad 1-continacion
Unidad 1-continacionCecilia Díaz
 
Unidad 1-continacion
Unidad 1-continacionUnidad 1-continacion
Unidad 1-continaciondetlefsen
 
Unidad 1-continacion
Unidad 1-continacionUnidad 1-continacion
Unidad 1-continaciondetlefsen
 
Desarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamientoDesarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamientococomarin2
 
2 Conceptos De Programacion
2 Conceptos De Programacion2 Conceptos De Programacion
2 Conceptos De ProgramacionRubén Márquez
 
Fundamentos de programación
Fundamentos de programaciónFundamentos de programación
Fundamentos de programaciónMaritere Cruz
 
TEMA A TRATARSE: Fundamento de programación
TEMA A TRATARSE: Fundamento de programaciónTEMA A TRATARSE: Fundamento de programación
TEMA A TRATARSE: Fundamento de programaciónNOE NUÑEZ CONGACHE
 

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

1 eda teo
1 eda teo1 eda teo
1 eda teo
 
Programacion
ProgramacionProgramacion
Programacion
 
Unidad I. Algoritmo y Programas. Parte 1
Unidad I. Algoritmo y Programas. Parte 1Unidad I. Algoritmo y Programas. Parte 1
Unidad I. Algoritmo y Programas. Parte 1
 
C:\Documents And Settings\Alumnos\Escritorio\Programaion1
C:\Documents And Settings\Alumnos\Escritorio\Programaion1C:\Documents And Settings\Alumnos\Escritorio\Programaion1
C:\Documents And Settings\Alumnos\Escritorio\Programaion1
 
Generacionlenguajes
GeneracionlenguajesGeneracionlenguajes
Generacionlenguajes
 
Introduccion a los algoritmos
Introduccion a los algoritmosIntroduccion a los algoritmos
Introduccion a los algoritmos
 
Algoritmos, programas, compiladores y lenguajes de programacion
Algoritmos, programas, compiladores y lenguajes de programacionAlgoritmos, programas, compiladores y lenguajes de programacion
Algoritmos, programas, compiladores y lenguajes de programacion
 
Fp03
Fp03Fp03
Fp03
 
Herramientas De Programacion De Sistemas
Herramientas De Programacion De SistemasHerramientas De Programacion De Sistemas
Herramientas De Programacion De Sistemas
 
Herramientas de programacion de sistemas
Herramientas de programacion de sistemas Herramientas de programacion de sistemas
Herramientas de programacion de sistemas
 
Herramientas de programacion de sistemas
Herramientas de programacion de sistemas Herramientas de programacion de sistemas
Herramientas de programacion de sistemas
 
Conceptos basicos de lenguajes de programacion
Conceptos basicos de lenguajes de programacionConceptos basicos de lenguajes de programacion
Conceptos basicos de lenguajes de programacion
 
Unidad 1-continacion
Unidad 1-continacionUnidad 1-continacion
Unidad 1-continacion
 
Unidad 1-continacion
Unidad 1-continacionUnidad 1-continacion
Unidad 1-continacion
 
Unidad 1-continacion
Unidad 1-continacionUnidad 1-continacion
Unidad 1-continacion
 
Desarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamientoDesarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamiento
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
2 Conceptos De Programacion
2 Conceptos De Programacion2 Conceptos De Programacion
2 Conceptos De Programacion
 
Fundamentos de programación
Fundamentos de programaciónFundamentos de programación
Fundamentos de programación
 
TEMA A TRATARSE: Fundamento de programación
TEMA A TRATARSE: Fundamento de programaciónTEMA A TRATARSE: Fundamento de programación
TEMA A TRATARSE: Fundamento 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