Este documento introduce los conceptos de algoritmo y pensamiento algorítmico. Explica que un algoritmo es un conjunto de instrucciones precisas para resolver una tarea, y que el pensamiento algorítmico implica comprender, ejecutar, evaluar y crear algoritmos. También discute propiedades importantes de los algoritmos como la existencia de múltiples algoritmos posibles para una tarea, y la necesidad de modificar algoritmos a lo largo del tiempo. El documento proporciona un ejemplo de algoritmo y describe el software RAPTOR que permite crear y pro
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. ¿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. 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.
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. 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. 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. 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. ¿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. 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. 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. ¿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. 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. 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. 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. 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. 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. 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