INTRODUCCION AL PENSAMIENTO ALGORITMICO

### ntroduccion al Pensamiento Algoritmico

1. 1. Introducción al Pensamiento algorítmico Dr. Wilian Bravo Escuela de Ciencias Químicas ESPOCH
2. 2. CONTENIDO ¿Qué es un algoritmo? ¿Qué es el pensamiento algorítmico? ¿Cómo se comunican los algoritmos? ¿Por qué son importantes los algoritmos? ¿Cuáles son las propiedades importantes de algoritmos? Un ejemplo - cómo crear un algoritmo
3. 3. ¿Qué es un algoritmo?  Un algoritmo es un conjunto de instrucciones paso a paso precisas para la solución de una tarea. Un algoritmo no resuelve una tarea; ella le da una serie de pasos que, si se ejecuta correctamente, se traducirá en una solución a una tarea. Utilizamos algoritmos cada día, pero que a menudo no hacemos explícitamente pensando acerca de los pasos individuales del algoritmo. Por ejemplo, a partir de su coche, vestirse, iniciando sesión en su ordenador, o para cocinar un plato de comida, están todos a cabo usando un algoritmo, una serie paso a paso de las acciones.
4. 4.  Para un algoritmo sea válida, cada paso (o instrucción) deben ser:  No ambiguo- la instrucción sólo puede ser interpretado de una manera única  Ejecutable - la persona o dispositivo de ejecutar la instrucción deben saber cómo llevar a cabo la instrucción sin ninguna información adicional.  Ordenado - los pasos de un algoritmo deben ser ordenados en una secuencia adecuada para llevar a cabo correctamente la tarea.
5. 5. EJEMPLO DE ALGORITMO…???
6. 6. ¿Qué es el pensamiento algorítmico?  Pensamiento algorítmico es la capacidad de entender, ejecutar, evaluar y crear algoritmos. Vamos a discutir cada una de estas ideas por separado.  Ser un PENSADOR ALGORÍTMICO necesita la capacidad de comprender y ejecutar algoritmos. Para algunas personas es fácil de seguir una serie de instrucciones precisas, mientras que otras personas les resulta muy difícil. Algunas personas parecen carecer de la paciencia y la diligencia necesaria para seguir un plan paso a paso. Sin embargo, esta es una habilidad valiosa que todas las personas deben dominar. Pensamiento algorítmico requiere paciencia debido a que cada instrucción se debe ejecutar en su secuencia correcta sin saltar por delante o "pasando por alto" algunos de la s instrucciones. Además, pensamiento algorítmico requiere diligencia y perseverancia. A menudo es tedioso para seguir los pasos de un algoritmo complejo y la gente a veces no logra completar un algoritmo porque, simplemente, "se dan por vencidos."
7. 7.  El Pensamiento algorítmico también requiere la capacidad de evaluar algoritmos. Esto implica la determinación de si un algoritmo realmente resuelve una tarea dada.
8. 8.  For example, a "preflight check list" is an algorithm for preparing an aircraft for take off. Suppose you were given the job of determining if a new "preflight check list" for the F35 (Joint Strike Fighter) is correct (checks all systems on the aircraft properly) and complete (does not leave out any important checks). Hopefully you would agree that this is an important job – pilot's lives are dependent on getting it right – and that getting the check list correct and complete will not be easy. (As a side note, one way to create the preflight check list is to determine the fault of each new aircraft crash and add a new check to the list to prevent future crashes. But the cost in lives and money is too great. We need to get the algorithm correct and complete before the first plane takes to flight to prevent a single aircraft loss!)
9. 9.  Y finalmente, el pensamiento algorítmico incluye la capacidad de crear nuevos algoritmos. Este es probablemente el aspecto más desafiante del pensamiento algorítmico. Dada una tarea, se puede crear una serie de precisas, instrucciones paso a paso que siempre resuelve la tarea correctamente? Obviamente, la complejidad de la tarea tiene un gran impacto en la complejidad de un algoritmo que cumplir con la tarea. Las tareas simples puede típicamente llevarse a cabo con algoritmos simples, mientras que las tareas complejas requieren típicamente algoritmos más complejos.
10. 10. ¿Cómo se comunican los algoritmos?  Cada paso (instrucción) de un algoritmo debe indicarse con precisión. Es muy difícil de explicar algoritmos precisamente utilizando sólo el idioma Inglés. Por ejemplo, por favor vuelva a leer el ejemplo algoritmo para la fabricación de "pastel cuadrado de limón congelado " y luego responder a las siguientes preguntas:  ¿La leche vienen en envases de diferentes tamaños? ¿Cuánta leche contiene 1 lata"?  ¿Importa qué tipos de batidores se utiliza para batir a la leche?  Es "cucharadita" una cucharadita o una cuchara de mesa?
11. 11.  Muchos lenguajes de programación se han desarrollado a lo largo de los años y cada idioma tiene sus propias características y beneficios especiales. Usted probablemente ha oído hablar de algunos de estos lenguajes, como C, C ++, Pascal, Basic, Java, Perl, Python, y Ada. Se requiere una cantidad significativa de tiempo para aprender un nuevo lenguaje de programación.  Queremos principiantes para convertirse en mejores solucionadores de problemas al convertirse en pensadores algorítmicos.  Una de las formas más comunes para expresar algoritmos sin necesidad de utilizar un lenguaje de programación que se llama diagramas de flujo . Los diagramas de flujo proporcionan una descripción visual de un proceso paso a paso. El principal inconveniente de utilizar diagramas de flujo es que son tedioso para dibujar y difícil de modificar si se dibujan mano en papel.
12. 12. RAPTOR  A computer program called RAPTOR was developed by Dr. Carlisle here at USAFA which allows a person to create an algorithm in flowchart form and then actually execute the flowchart to test its validity. Pretty cool! We will discuss the details of how to use RAPTOR in future lessons. United States Air Force Academy
13. 13. ¿Cuáles son las propiedades importantes de algoritmos?  La siguiente es una lista de algunas de las propiedades importantes de los algoritmos.  Propiedad 1: Para una tarea no trivial dada (o conjunto de tareas relacionadas), hay muchos algoritmos posibles para llevar a cabo la tarea.  Esto confunde mucho a muchos estudiantes. "¿Quieres decir que hay más de una respuesta correcta?" La respuesta es SÍ! Recuerde, un algoritmo no es la solución a un problema; es un conjunto de instrucciones paso para encontrar una solución.
14. 14.  Propiedad 2: Un algoritmo no codifica la teoría que subyace detrás de los pasos de la INSTRUCCIÓN.  Un algoritmo explica cómo realizar una tarea. Si el algoritmo es correcto, y usted sigue las instrucciones exactamente, usted logrará la tarea. Pero es posible que no entienda el porqué de algunos de los pasos.
15. 15.  Propiedad 3: Algunos algoritmos son más eficientes que otros algoritmos.  La ejecución de un algoritmo requiere una cierta cantidad de tiempo. Si se utiliza un algoritmo menudo, su eficiencia se convierte en un problema. Es común para crear múltiples algoritmos para llevar a cabo una tarea en particular y luego seleccionar el algoritmo más rápido para incluir en un producto final. Uno de los RETOS es de desarrollo de software es decidir cuánto tiempo y esfuerzo que usted debe gastar en la búsqueda y desarrollo de más algoritmos eficientes.
16. 16.  Propiedad 4: Programas de ordenador que se utilizan desde hace muchos años por lo general deben ser modificadas con el tiempo para adaptarse a los cambios en los requisitos de la tarea.  Los programas de ordenador no son típicamente objetos estáticos. Ellos requieren de "mantenimiento" para mantenerlos con cambios en los requisitos de la tarea. Por ejemplo, un programa informático que calcula los impuestos de renta debe cambiar todos los años a medida que cambian las leyes de impuesto sobre la renta. Algunos estudios han demostrado que hasta un 75% de los costos de desarrollo de software son consumidos por el mantenimiento de los programas informáticos existentes.
17. 17.  En conclusión, cuando desarrollamos nuevos algoritmos, tratamos de crear una de las muchas posibles secuencias de instrucciones que va a resolver nuestra tarea en cuestión. Idealmente nos gustaría que el algoritmo se ejecute rápidamente, que este bien "comentado" y que puede mantener fácilmente en el tiempo.
18. 18. Practica No 1. Creando Algoritmos básicos  Crear un algoritmo utilizado el software RAPTOR, mismo que debe resolver un problema básico utilizando ecuaciones.  Crear ejemplos de la solución a la ecuación cuadrática  Crear ejemplos de la media de elementos en un array.  Enviar el archivo junto con el tutorial correspondiente.
19. 19. Lección número 1 Escriba la clasificación de modelos(modelación) ¿Qué es un algoritmo? Porque cree que es importante la modelación en sistemas ambientales? Proponga un algoritmo para una tarea sencilla, puede ser incluso que no se requiera una ecuación para resolverlo