Sei sulla pagina 1di 18

Introduccin al

Pensamiento
algortmico

Dr. Wilian Bravo


Escuela de Ciencias Qumicas
ESPOCH

CONTENIDO

Qu es un algoritmo?
Qu es el pensamiento algortmico?
Cmo se comunican los algoritmos?
Por qu son importantes los algoritmos?
Cules son las propiedades importantes de
algoritmos?
Un ejemplo - cmo crear un algoritmo

Qu es un algoritmo?

Un algoritmo es un conjunto de instrucciones paso a


paso precisas para la solucin 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 solucin a una tarea. Utilizamos algoritmos cada
da, pero que a menudo no hacemos explcitamente
pensando acerca de los pasos individuales del algoritmo.
Por ejemplo, a partir de su coche, vestirse, iniciando sesin
en su ordenador, o para cocinar un plato de comida, estn
todos a cabo usando un algoritmo, una serie paso a
paso de las acciones.

Para un algoritmo sea vlida, cada paso (o


instruccin) deben ser:
No ambiguo- la instruccin slo puede ser
interpretado de una manera nica
Ejecutable - la persona o dispositivo de ejecutar la
instruccin deben saber cmo llevar a cabo la
instruccin sin ninguna informacin adicional.
Ordenado - los pasos de un algoritmo deben ser
ordenados en una secuencia adecuada para llevar a
cabo correctamente la tarea.

EJEMPLO DE ALGORITMO???

Qu es el pensamiento
algortmico?
Pensamiento algortmico es la capacidad de entender, ejecutar, evaluar
y crear algoritmos. Vamos a discutir cada una de estas ideas por
separado.
Ser un PENSADOR ALGORTMICO necesita la capacidad de
comprender y ejecutar algoritmos. Para algunas personas es fcil de
seguir una serie de instrucciones precisas, mientras que otras personas les
resulta muy difcil. 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 algortmico requiere paciencia debido a que cada
instruccin se debe ejecutar en su secuencia correcta sin saltar por
delante o "pasando por alto" algunos de la s instrucciones. Adems,
pensamiento algortmico 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."

El Pensamiento algortmico tambin requiere la capacidad de evaluar


algoritmos. Esto implica la determinacin de si un algoritmo realmente
resuelve una tarea dada.

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!)

Y finalmente, el pensamiento algortmico incluye la


capacidad de crear nuevos algoritmos. Este es
probablemente el aspecto ms desafiante del
pensamiento algortmico. 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
tpicamente llevarse a cabo con algoritmos simples,
mientras que las tareas complejas requieren
tpicamente algoritmos ms complejos.

Cmo se comunican los


algoritmos?

Cada paso (instruccin) de un algoritmo debe indicarse con precisin.


Es muy difcil de explicar algoritmos precisamente utilizando slo el
idioma Ingls. Por ejemplo, por favor vuelva a leer el ejemplo algoritmo
para la fabricacin de "pastel cuadrado de limn congelado " y luego
responder a las siguientes preguntas:

La leche vienen en envases de diferentes tamaos? Cunta 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?

Muchos lenguajes de programacin se han desarrollado a lo largo de los aos y


cada idioma tiene sus propias caractersticas y beneficios especiales. Usted
probablemente ha odo 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 programacin.

Queremos principiantes para convertirse en mejores solucionadores de problemas


al convertirse en pensadores algortmicos.

Una de las formas ms comunes para expresar algoritmos sin necesidad de utilizar
un lenguaje de programacin que se llama diagramas de flujo . Los diagramas de
flujo proporcionan una descripcin visual de un proceso paso a paso. El
principal inconveniente de utilizar diagramas de flujo es que son tedioso para
dibujar y difcil de modificar si se dibujan mano en papel.

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

Cules 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


ms de una respuesta correcta?" La respuesta es S! Recuerde, un
algoritmo no es la solucin a un problema; es un conjunto de
instrucciones paso para encontrar una solucin.

Propiedad 2: Un algoritmo no codifica la teora que subyace detrs de


los pasos de la INSTRUCCIN.

Un algoritmo explica cmo 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.

Propiedad 3: Algunos algoritmos son ms eficientes que otros


algoritmos.

La ejecucin de un algoritmo requiere una cierta cantidad de tiempo. Si


se utiliza un algoritmo menudo, su eficiencia se convierte en un
problema. Es comn para crear mltiples algoritmos para llevar a cabo
una tarea en particular y luego seleccionar el algoritmo ms rpido
para incluir en un producto final. Uno de los RETOS es de desarrollo
de software es decidir cunto tiempo y esfuerzo que usted debe gastar
en la bsqueda y desarrollo de ms algoritmos eficientes.

Propiedad 4: Programas de ordenador que se utilizan desde hace


muchos aos 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 tpicamente objetos estticos. Ellos


requieren de "mantenimiento" para mantenerlos con cambios en los
requisitos de la tarea. Por ejemplo, un programa informtico que calcula
los impuestos de renta debe cambiar todos los aos 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
informticos existentes.

En conclusin, cuando desarrollamos nuevos


algoritmos, tratamos de crear una de las muchas
posibles secuencias de instrucciones que va a
resolver nuestra tarea en cuestin. Idealmente
nos gustara que el algoritmo se ejecute rpidamente,
que este bien "comentado" y que puede mantener
fcilmente en el tiempo.

Practica No 3. Creando Algoritmos


bsicos

Crear un algoritmo utilizado el software RAPTOR, mismo que debe


resolver un problema bsico utilizando ecuaciones.

Enviar el archivo junto con el tutorial correspondiente.