Algoritmos Programacion

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 103

EDUCACIÓN BÁSICA

ALGORITMOS Y
PROGRAMACIÓN
GUÍA
PARA DOCENTES

Pág.1 Descargue gratuitamente esta Guía:


JUAN CARLOS LÓPEZ GARCÍA Fundación Gabriel

Segunda Edición Piedrahita Uribe www.eduteka.org

- 7-abr-10 - Segunda Edición - http://www.eduteka.org/GuiaAlgoritmos.php

ALGORITMOS Y PROGRAMACIÓN (GUÍA PARA DOCENTES)


SEGUNDA EDICIÓN, 2007, 2009. Juan Carlos López García
http://www.eduteka.org

El autor otorga permiso para utilizar este documento bajo la licencia Creative Commons “Reconocimiento-NoComercial-SinObraDerivada 3.0 Genérica”
(http://creativecommons.org/licenses/by-nc-nd/3.0/deed.es)

Usted es libre de: copiar, distribuir y comunicar públicamente esta Guía de Algoritmos y Programación para
docentes.

Bajo las condiciones siguientes:


Reconocimiento. Debe reconocer los créditos de la obra mencionando al autor y a Eduteka (pero no de una manera que sugiera que tiene su
apoyo o apoyan el uso que hace de su obra).

No comercial. No puede utilizar esta obra para fines comerciales.

Pág.2 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


Sin obras derivadas. No se puede alterar, transformar o generar una obra derivada a partir de esta obra.

• Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra.
• Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor
• Nada en esta licencia menoscaba o restringe los derechos morales del autor.

Se otorga permiso para enlazar este documento desde cualquier


sitio Web, con la siguiente dirección: http://www.eduteka.org/GuiaAlgoritmos.php

A este documento lo acompaña un Cuaderno de Trabajo para estudiantes que se puede descargar gratuitamente de:
http://www.eduteka.org/GuiaAlgoritmos.php

El autor agradece el envío de cualquier comentario sobre esta Guía a los correos: editor@eduteka.org; jualop@gmail.com

La segunda edición de esta Guía se elaboró gracias al apoyo de Motorola Foundation, Motorola de
Colombia Ltda. y la gestión de la ONG Give to Colombia.

PROGRAMACIÓN DE COMPUTADORES
EN EDUCACIÓN ESCOLAR
4. UNIDAD 1: DESARROLLO DE HABILIDADES DE PENSAMIENTO
4. Desarrollo de habilidades de pensamiento de orden superior
5. Programación y Matemáticas
5. Programación y Ciencias Naturales
6. Solución de problemas
9. Solución de problemas y programación
11. Analizar el problema (entenderlo)
12. Formular el problema
12. Precisar los resultados esperados
12. Identificar datos disponibles
13. Determinar las restricciones
13. Establecer procesos
14. Diseñar, traducir y depurar un algoritmo
17. Creatividad
18. Desarrollo de la creatividad
19. Espiral del pensamiento creativo
21. UNIDAD 2: ALGORITMOS, CONCEPTOS BÁSICOS 21. ¿Qué es un algoritmo?
22. Pensamiento Algoritmico
23. Aprestamiento
26. Representación
27. Simbología de los diagramas de flujo
28. Reglas para la elaboración de diagramas de flujo
29. Conceptos básicos de programación
29. Variables
30. Constantes
31. Contadores
31. Acumuladores
32. Identificadores
32. Palabras reservadas
33. Funciones matemáticas
34. Tipos de datos
35. Operadores
35. Orden de evaluación de los operadores
36. Expresiones
Pág.3 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
37. UNIDAD 3: ESTRUCTURAS BÁSICAS
37. Las estructuras
38. Conceptos básicos de programación
39. Fundamentos de programación
39. Comentarios
40. Procesos
41. Interactividad
42. Procedimientos
46. Estructura secuencial
51. Estructura iterativa (repetición)
58. Estructura condicional
69. UNIDAD 4: DEPURACIÓN
69. Cuando se presentan problemas
69. Depuración
69. Fallas de sintaxis
72. Fallas de lógica
72. Anexo 1: Resumen de comandos de MicroMundos y de Scratch
76. Anexo 2: Esquema de contenidos de esta Guía
77. Anexo 3: Plan de trabajo con Estudiantes
78. Anexo 4: Una propuesta de currículo para enseñar Scratch
84. Anexo 5: Una propuesta de currículo para enseñar MicroMundos
91. Anexo 6: Plantilla para análisis de problemas
92. Anexo 7: Plantilla para diagramas de flujo
93. Anexo 8: Interfaz de Scratch, versión 1.4
94. Bibliografía citada o consultada

UNIDAD 1: DESARROLLO DE HABILIDADES DE PENSAMIENTO

DESARROLLO DE HABILIDADES DE PENSAMIENTO DE ORDEN SUPERIOR


enseñar los vericuetos de lenguajes de programación
Existe actualmente un consenso general dentro de la profesionales tales como Java, C++, Visual Basic, etc.
comunidad educativa mundial sobre la necesidad de Hablar hoy de aprender a diseñar y construir
superar el tipo de enseñanza basada en la transmisión aplicaciones (programas) complejas, implica una labor
de contenidos para apuntarle en su lugar al desarrollo de titánica que en la mayoría de los casos está fuera del
capacidades. Investigaciones y estudios recientes alcance de la Educación Básica ya que demanda
proponen diversos conjuntos de habilidades que la necesariamente enfoques de programación como el
educación debe fomentar para que los estudiantes orientado a objetos al que apuntan la mayoría de
puedan tener éxito en el mundo digital y globalizado en el tendencias en Ingeniería de Sistemas.
que van a vivir. Este planteamiento exige, sin dilaciones,
implementar estrategias que contribuyan efectivamente Por esta razón, en la Educación Básica es altamente
en el desarrollo de esas habilidades planteadas como recomendable utilizar ambientes de programación
fundamentales para la educación en el Siglo XXI (21st basados en Logo, fáciles de utilizar y que permitan
Century Skills, 2004). realizar procedimientos que contengan estructuras
básicas (secuencial, decisión y repetición), pero siempre
En la mayoría de conjuntos de habilidades propuestos conducentes al desarrollo de habilidades del Siglo XXI.
figuran las habilidades de pensamiento de orden superior Solo en los últimos grados de básica secundaria o en la
entre las que se incluye la destreza para solucionar Media Técnica sería aconsejable introducir a los
problemas; por esta razón, se requiere seleccionar estudiantes a la programación orientada a objetos
estrategias efectivas para ayudar a que los estudiantes mediante entornos de programación visuales y
las desarrollen. Para atender esta necesidad, la amigables como Alice, KPL o Processing.
programación de computadores constituye una buena
alternativa, siempre y cuando se la enfoque al logro de Desde el punto de vista educativo, la programación de
esta destreza y no a la formación de programadores. Es computadores posibilita no solo activar una amplia
importante insistir en esta orientación debido a que las variedad de estilos de aprendizaje (Stager, 2003) sino
metodologías utilizadas en Educación Básica para llevar desarrollar el pensamiento algorítmico. Adicionalmente,
a cabo cursos de Algoritmos y Programación, son compromete a los estudiantes en la consideración de
heredadas de la educación superior y muchos de los varios aspectos importantes para la solución de
docentes que las utilizan se dedican principalmente a problemas: decidir sobre la naturaleza del problema,

Pág.4 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


seleccionar una representación que ayude a resolverlo y, sociedad griega en tiempos de Alejandro el Grande era
monitorear sus propios pensamientos (metacognición) y prioridad que las personas desarrollaran su cuerpo como
estrategias de solución. Este último, es un aspecto que preparación para los quehaceres del campo de batalla,
deben desarrollar desde edades tempranas. No para la sociedad actual es prioritario que las personas
debemos olvidar que solucionar problemas con ayuda desarrollen sus habilidades de pensamiento de orden
del computador puede convertirse en una excelente superior para que pueden desempeñarse con éxito en
herramienta para adquirir la costumbre de enfrentar ella. Pero, dado que el desarrollo de estas habilidades se
problemas predefinidos de manera rigurosa y debe iniciar desde edad temprana, la educación debe
sistemática, aun, cuando no se utilice un computador asumir su cuota de responsabilidad en esta importante
para solucionarlo. tarea.

Esto en cuanto a la solución de problemas, pero hay otra Desde este punto de vista, la presente “Guía de
habilidad de pensamiento que también se puede ayudar Algoritmos y Programación”, dirigida a docentes de
a desarrollar con un cursos de Algoritmos y Educación Básica, se concentra en el desarrollo de la
Programación: La Creatividad. creatividad y de habilidades para solucionar problemas
predefinidos. Para facilitar a los docentes su utilización
En los últimos años, la creatividad forma parte de las en el aula, los ejemplos que se proponen corresponden a
prioridades de los sistemas educativos en varios países, temas de Matemáticas y Ciencias Naturales para grados
junto a otras habilidades de pensamiento de orden cuarto y quinto de Básica Primaria.
superior. Al punto que los Estándares Nacionales
Norteamericanos de TIC para Estudiantes (NETS-S)
formulados en 1998, estaban encabezados por Programación y Matemáticas
“Operaciones y conceptos básicos de las TIC” y la
Son varios los temas de las matemáticas cuya
Creatividad no figuraba. Sin embargo, en la nueva
comprensión se puede mejorar mediante la integración
versión de estos Estándares, liberada en 2008, la
de esta asignatura con un curso de algoritmos y
creatividad encabeza los seis grupos de estándares. Otro
programación:
ejemplo muy diciente es la creación en Inglaterra del
Consorcio para la Creatividad que busca promover en la
• Concepto de variable. Una variable es una ubicación
educación el desarrollo de habilidades de pensamiento
de memoria en el computador o en la calculadora
que conduzcan la formación de personas orientadas a la
que tiene un nombre (identificador) y en la que se
creatividad y a la innovación.
pueden almacenar diferentes valores.
• Concepto de función. La mayoría de calculadoras
Una de las razones para que la creatividad se hubiese
científicas vienen de fabrica con cientos de funciones
convertido en tema prioritario es que tiene un alto
y los estudiantes pueden crear procedimientos que
impacto en la generación de riqueza por parte de las
se comportan como funciones (aceptan parámetros,
empresas de la Sociedad de la Creatividad. En esta
realizan cálculos y reportan un resultado).
empresas, los reconocimientos profesionales se dan
• Manejo de ecuaciones y graficación.
gracias al talento, la creatividad y la inteligencia. La
• Modelado matemático. Algunas de las ideas clave de
creatividad reemplazó las materias primas como fuente
los modelos matemáticos están presentes en los
fundamental de crecimiento económico. Para tener éxito
manipulables virtuales (simulaciones y
en esta nueva Sociedad, las regiones deben desarrollar,
micromundos). Estos manipulables se pueden
atraer y retener a personas talentosas y creativas que
emplear tanto en procesos de entrenamiento (drill
generen innovaciones (Banaji & Burn, 2006). Cada vez
and practice) como de educación matemática. Sin
es mayor el número de empresas que fundamentan su
embargo, la tendencia es a utilizarlos en ambientes
modelo de negocio en la creatividad y la innovación; para
en los que los estudiantes se convierten en
ellas, son indispensables personas que además de tener
diseñadores y no en simples consumidores.
los conocimientos requeridos para desempeñarse en los
• Evaluación. En la mayoría de las situaciones
diferentes cargos, tengan habilidad para pensar y actuar
extraescolares, las personas que necesitan utilizar
creativamente.
matemáticas regularmente tienden a usar
calculadoras, computadores y otros dispositivos
Ejemplo tangible de esto es el que la Comisión Europea,
especializados (GPS, medición con láser, etc) como
consciente de la importancia que tienen la creatividad y
ayuda en la solución de problemas. Esto sugiere que
la innovación para el desarrollo social y económico de los
una evaluación autentica en matemáticas debe
países del viejo continente, decidiera proclamar el 2009
realizarse con libro y cuaderno abiertos, permitir el
como el “Año de la Creatividad y la Innovación”
uso de calculadora y computador; en cuyo caso el
(http://create2009.europa.eu/).
computador puede aportar un ambiente de
aprendizaje y evaluación enriquecidos.
El reto enorme que recae hoy sobre los sistemas
educativos consiste en lograr que se generen las • Adicionalmente, hay otros campos más avanzados
estrategias adecuadas para que los estudiantes se de las matemáticas que también se pueden impactar
desarrollen como pensadores creativos. Así como para la con un curso de algoritmos y programación:

Pág.5 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


Inteligencia artificial, robótica, aprendizaje asistido Adicionalmente, la elaboración de simulaciones es un
por computador (CAL), aprendizaje asistido por veta muy rica para formular proyectos en Ciencias
computador altamente interactivo e inteligente Naturales. Estas sin duda contribuyen a la comprensión
(HIICAL), etc. de fenómenos naturales ya que en este tipo de
actividades los estudiantes actúan como diseñadores. No
Es muy importante tener presente que resolver se debe pasar por alto que los estudiantes aprendan más
problemas matemáticos mediante procedimientos tiene construyendo materiales de instrucción que
dos ciclos: uno en el cual se resuelve el problema estudiándolos (Jonassen, Carr & Yue, 1998).
matemático en sí (con papel y lápiz) y otro en el que esa
solución se automatiza en el computador. Crear un Para poder construir las simulaciones los estudiantes
procedimiento para calcular el área de cualquier deben coordinar periodicidad y reglas de interacción
rectángulo a partir de las dimensiones de sus lados, entre varios objetos móviles programables (tortugas y
requiere que el estudiante primero resuelva el problema objetos). Además, la posibilidad de programar
matemático (entender el problema, trazar un plan, interacciones con el usuario de la simulación ofrece
ejecutar el plan y revisar) y luego elabore el oportunidades valiosas para comprometer al estudiante
procedimiento que pida los datos de entrada, realice los “diseñador” en la reflexión sobre detección de actividad,
cálculos y muestre el resultado (analizar el problema, retroalimentación, usabilidad y otros elementos
diseñar un algoritmo, traducir el algoritmo a un lenguaje presentes en los sistemas de computo que se utilizan
de programación y depurar el programa). diariamente en empresas y hogares.

Los siguientes son algunos ejemplos de proyectos cuyo


producto final consiste en una simulación sobre diversos
Programación y Ciencias Naturales temas que son fundamentales en Ciencias Naturales:
En Ciencias Naturales también hay temas en los cuales
realizar actividades de programación de computadores
• Imitación del comportamiento de seres vivos en
puede ayudar a mejorar su comprensión por parte de los
ecosistemas, teniendo en cuenta necesidades y
estudiantes.
cantidades disponibles de energía y nutrientes
(cadena alimentaria).
Mediante el trabajo con entornos de programación como • Representación del fenómeno migratorio de varias
Scratch o MicroMundos, los estudiantes aprenden a especies de animales como respuesta a cambios en
seleccionar, crear y manejar múltiples formas de medios el ambiente y en los ecosistemas en los que viven.
(texto, imágenes y grabaciones de audio). La • Ilustración interactiva de la adaptación de los seres
comunicación efectiva requiere hoy en día, para ser vivos a variaciones en el entorno en que viven.
creativa y persuasiva, la escogencia y manipulación de • Demostración del funcionamiento de circuitos
los mismos tipos de medios que estos entornos de eléctricos en serie y en paralelo.
programación ponen al alcance de los estudiantes. Se
• Imitación del efecto de la transferencia de energía
espera que a medida que ellos ganan experiencia
térmica en los cambios de estado de algunas
creando con medios, se vuelvan más perceptivos y
sustancias.
críticos en el análisis de los que tienen a su alcance en el
• Representación del ciclo de vida de una planta
mundo que los rodea (Rusk, Resnick & Maloney, 2007).
teniendo en cuenta factores ambientales (semilla –
siembra – desarrollo planta – florecimiento –
Por ejemplo, realizar proyectos cuyo producto final sea la polinización – semilla).
comunicación de resultados obtenidos en procesos de • Diseño de experimentos en los cuales se deba
indagación y/o experimentación en clase de Ciencias: modificar una variable para dar respuesta a
preguntas.
• Explicación de las partes de una célula y su • Imitación de fenómenos de camuflaje con un entorno
importancia como unidad básica de los seres vivos. y relacionarlos con ciertas necesidades en algunos
• Exposición de los diversos sistemas de órganos del seres vivos.
ser humano con la respectiva explicación de su
función.
• Clasificación de los seres vivos en diversos grupos
• Representación del movimiento y desplazamiento de
taxonómicos (plantas, animales, microorganismos,
objetos con diferentes velocidades.
etc).
• Ilustración interactiva del sistema solar.
• Descripción y comparación de diversos tipos de
neuronas.
En el caso de las Ciencias Naturales es fundamental
• Explicación de las funciones de los diversos
tener en cuenta que los proyectos que se realicen
componentes de un circuito eléctrico.
utilizando entornos de programación como Scratch o
• Descripción de los principales elementos del sistema
MicroMundos pueden requerirse conocimiento básico del
solar que incluya las relaciones de tamaño,
tema por parte de los estudiantes. En este caso, los
movimiento y posición.
proyectos se convierten en profundización para la
comprensión de esos temas.
Pág.6 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
hacer y/o utilizar; y un dominio, el estado actual de
De lo contrario, se debe incluir en cada proyecto un conocimientos, habilidades y energía de quien va a
componente previo de investigación en el cual los resolverlo (Moursund, 1999).
estudiantes puedan alcanzar los conocimientos básicos
conceptuales requeridos para llevar a cabo el proyecto. Casi todos los problemas requieren, que quien los
La mayoría de estos proyectos de este tipo se enfocan resuelve, los divida en submetas que, cuando son
en la comunicación de hallazgos de indagaciones y/o dominadas (por lo regular en orden), llevan a alcanzar el
experimentaciones. objetivo. La solución de problemas también requiere que
se realicen operaciones durante el estado inicial y las
Una tercera opción es trabajar con el entorno de submetas, actividades (conductuales, cognoscitivas) que
programación como actividad exploratoria a un tema alteran la naturaleza de tales estados (Schunk, 1997).
dado en Ciencias Naturales; sin embargo, este enfoque
requiere una planeación cuidadosa para que se logre el Cada disciplina dispone de estrategias específicas para
objetivo de aprendizaje y la actividad no se quede resolver problemas de su ámbito; por ejemplo, resolver
únicamente en lo lúdico. problemas matemáticos implica utilizar estrategias
propias de las matemáticas. Sin embargo, algunos
psicólogos opinan que es posible utilizar con éxito
estrategias generales, útiles para resolver problemas en
muchas áreas. A través del tiempo, la humanidad ha
utilizado diversas estrategias generales para resolver
problemas. Schunk (1997), Woolfolk (1999) y otros,
destacan los siguientes métodos o estrategias de tipo
general:
• Ensayo y error : Consiste en actuar hasta que algo
funcione. Puede tomar mucho tiempo y no es seguro
que se llegue a una solución. Es una estrategia
apropiada cuando las soluciones posibles son pocas
y se pueden probar todas, empezando por la que
ofrece mayor probabilidad de resolver el problema.
Por ejemplo, una bombilla que no prende: revisar la
bombilla, verificar la corriente eléctrica, verificar el
interruptor.
• Iluminación : Implica la súbita conciencia de una
solución que sea viable. Es muy utilizado el modelo
de cuatro pasos formulado por Wallas (1921):
preparación, incubación, iluminación y verificación.
Estos cuatro momentos también se conocen como
proceso creativo. Algunas investigaciones han
determinado que cuando en el periodo de incubación
se incluye una interrupción en el trabajo sobre un
problema se logran mejores resultados desde el
punto de vista de la creatividad. La incubación ayuda
a "olvidar" falsas pistas, mientras que no hacer
interrupciones o descansos puede hacer que la
persona que trata de encontrar una solución creativa
se estanque en estrategias inapropiadas.
• Heurística : Se basa en la utilización de reglas
empíricas para llegar a una solución. El método
SOLUCIÓN DE PROBLEMAS
heurístico conocido como “IDEAL”, formulado por
Una de las acepciones que trae el Diccionario de Real Bransford y Stein (1984), incluye cinco pasos:
Academia de la Lengua Española (RAE) respecto a la Identificar el problema; definir y presentar el
palabra Problema es “Planteamiento de una situación problema; explorar las estrategias viables; avanzar en
cuya respuesta desconocida debe obtenerse a través de las estrategias; y lograr la solución y volver para
métodos científicos”. Con miras a lograr esa respuesta, evaluar los efectos de las actividades (Bransford &
un problema se puede definir como una situación en la Stein, 1984). El matemático Polya (1957) también
cual se trata de alcanzar una meta y para lograrlo se formuló un método heurístico para resolver problemas
deben hallar y utilizar unos medios y unas estrategias. La que se aproxima mucho al ciclo utilizado para
mayoría de problemas tienen algunos elementos en programar computadores. A lo largo de esta Guía se
común: un estado inicial; una meta, lo que se pretende utilizará este método propuesto por Polya. •
lograr; un conjunto de recursos, lo que está permitido Algoritmos : Consiste en aplicar adecuadamente una
serie de pasos detallados que aseguran una solución
Pág.7 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
correcta. Por lo general, cada algoritmo es específico Según Polya (1957), cuando se resuelven problemas,
de un dominio del conocimiento. La programación de intervienen cuatro operaciones mentales:
computadores se apoya en este método, tal como 1. Entender el problema
veremos en la Unidad 2. • Modelo de 2. Trazar un plan
procesamiento de información : El modelo 3. Ejecutar el plan (resolver)
propuesto por Newell y Simon (1972) se basa en 4. Revisar
plantear varios momentos para un problema (estado
inicial, estado final y vías de solución). Las posibles Numerosos autores de textos escolares de matemáticas
soluciones avanzan por subtemas y requieren que se hacen referencia a estas cuatro etapas planteadas por
realicen operaciones en cada uno de ellos. Polya. Sin embargo, es importante notar que estas son
• Análisis de medios y fines : Se funda en la flexibles y no una simple lista de pasos como a menudo
comparación del estado inicial con la meta que se se plantea en muchos de esos textos (Wilson, Fernández
pretende alcanzar para identificar las diferencias. & Hadaway, 1993). Cuando estas etapas se siguen como
Luego se establecen submetas y se aplican las un modelo lineal, resulta contraproducente para cualquier
operaciones necesarias para alcanzar cada submeta actividad encaminada a resolver problemas.
hasta que se alcance la meta global. Con este
método se puede proceder en retrospectiva (desde la
meta hacia el estado inicial) o en prospectiva (desde
el estado inicial hacia la meta).
• Razonamiento analógico : Se apoya en el
establecimiento de una analogía entre una situación
que resulte familiar y la situación problema. Requiere
conocimientos suficientes de ambas situaciones. •
Lluvia de ideas : Consiste en formular soluciones
viables a un problema. El modelo propuesto por
Mayer (1992) plantea: definir el problema; generar Ilustración 1-1: Interpretación dinámica y cíclica de las
muchas soluciones (sin evaluarlas); decidir los etapas planteadas por Polya para resolver
criterios para estimar las soluciones generadas; y problemas.
emplear esos criterios para seleccionar la mejor
solución. Requiere que los estudiantes no emitan Es necesario hacer énfasis en la naturaleza dinámica y
juicios con respecto a las posibles soluciones hasta cíclica de la solución de problemas. En el intento de
que terminen de formularlas. trazar un plan, los estudiantes pueden concluir que
• Sistemas de producción : Se basa en la aplicación necesitan entender mejor el problema y deben regresar a
de una red de secuencias de condición y acción la etapa anterior; o cuando han trazado un plan y tratan
(Anderson, 1990). de ejecutarlo, no encuentran cómo hacerlo; entonces, la
• Pensamiento lateral : Se apoya en el pensamiento actividad siguiente puede ser intentar con un nuevo plan
creativo, formulado por Edwar de Bono (1970), el cual o regresar y desarrollar una nueva comprensión del
difiere completamente del pensamiento lineal (lógico). problema (Wilson, Fernández & Hadaway, 1993; Guzdial,
El pensamiento lateral requiere que se exploren y 2000).
consideren la mayor cantidad posible de alternativas
para solucionar un problema. Su importancia para la TIP
educación radica en permitir que el estudiante: La mayoría de los textos escolares de matemáticas abordan la
explore (escuche y acepte puntos de vista diferentes, Solución de Problemas bajo el enfoque planteado por Polya.
busque alternativas); avive (promueva el uso de la Por ejemplo, en “Recreo Matemático 5” (Díaz, 1993) y en
fantasía y del humor); libere (use la discontinuidad y “Dominios 5” (Melo, 2001) se pueden identificar las siguientes
escape de ideas preestablecidas); y contrarreste la sugerencias propuestas a los estudiantes para llegar a la
rigidez (vea las cosas desde diferentes ángulos y solución de un problema matemático:
evite dogmatismos). Este es un método adecuado 1. COMPRENDER EL PROBLEMA.
cuando el problema que se desea resolver no
requiere información adicional, sino un • Leer el problema varias veces
reordenamiento de la información disponible; cuando • Establecer los datos del problema
hay ausencia del problema y es necesario apercibirse
• Aclarar lo que se va a resolver (¿Cuál es la pregunta?)
de que hay un problema; o cuando se debe reconocer
la posibilidad de perfeccionamiento y redefinir esa • Precisar el resultado que se desea lograr
posibilidad como un problema (De Bono, 1970). • Determinar la incógnita del problema
• Organizar la información
Como se puede apreciar, hay muchas estrategias para
solucionar problemas; sin embargo, esta Guía se enfoca • Agrupar los datos en categorías
principalmente en dos de estas estrategias: Heurística y • Trazar una figura o diagrama.
Algorítmica. 2. HACER EL PLAN.
• Escoger y decidir las operaciones a efectuar.
Pág.8 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
• Eliminar los datos inútiles. las etapas que contenga la estrategia de solución
• Descomponer el problema en otros más pequeños. empleada.
3. EJECUTAR EL PLAN (Resolver).
ACTIVIDAD
• Ejecutar en detalle cada operación. En la academia de las ciencias sociales hay dos grupos de
• Simplificar antes de calcular. materias:
• Realizar un dibujo o diagrama 4. ANALIZAR LA Geografía, con 124 alumnos; Historia, con 220; y Educación
SOLUCIÓN (Revisar). Ambiental, con 185. Si hay 25 alumnos que estudian Geografía
y
• Dar una respuesta completa
Educación Ambiental, 37 que estudian Educación Ambiental e
• Hallar el mismo resultado de otra manera. Historia, y ninguno toma las tres materias, ¿cuántos alumnos
• Verificar por apreciación que la respuesta es tiene la academia? (Adaptado de Melo, 2001, página 46).
adecuada.
El estudiante debe tener en cuenta (y anotar) las actividades
EJEMPLO que realiza para resolver este problema y agruparlas en cada
una de las cuatro etapas propuestas por Polya (comprende,
En un juego, el ganador obtiene una ficha roja; el segundo,
planea, resuelve y revisa). Para resolver este problema, los
una ficha azul; y el tercero, una amarilla. Al final de varias
estudiantes deben tener conocimientos sobre conjuntos
rondas, el puntaje se calcula de la siguiente manera: Al cubo
(representación, clasificación e intersección). Es buena idea
de la cantidad de fichas rojas se adiciona el doble de fichas
que construyan una tabla para organizar la información y un
azules y se descuenta el cuadrado de las fichas amarillas. Si
diagrama de Venn para representar los datos.
Andrés llegó 3 veces en primer lugar, 4 veces de último y 6
veces de intermedio, ¿Qué puntaje obtuvo? (Adaptado de
Melo (2001), página 30).
Establecer un modelo para solucionar problemas es un
R/.
paso fundamental pero no suficiente. Según Clements &
COMPRENDE Meredith (1992) y Zemelman, Daniels & Hyde (1998) y
• Leer detenidamente el problema otros, los docentes deben adoptar una serie de buenas
• ¿Cuántos colores de fichas se reparten? prácticas con el fin de ayudar a los estudiantes a
• ¿Cuántas fichas rojas, azules y amarillas obtuvo Andrés? desarrollar habilidades para resolver problemas:
• ¿Qué pregunta el problema? • Plantear verbalmente problemas con variedad de
PLANEA estructuras y de formas de solución.
• Para hallar el puntaje que obtiene Andrés por sus llegadas • Presentar diversas estrategias de solución de
de primero, calcular el cubo de la cantidad de fichas rojas. problemas.
• Para hallar el puntaje por sus llegadas en segundo lugar, • Asignar problemas que tengan aplicación en la vida
calcular el doble de la cantidad de fichas azules. diaria.
• Para hallar el puntaje que pierde por sus llegadas en • Ofrecer experiencias que estimulen la curiosidad de
último lugar, calcular el cuadrado de la cantidad de fichas los estudiantes y construyan confianza en la
investigación, la solución de problemas y la
amarillas.
comunicación.
• Para hallar el puntaje total, calcular la suma de los
• Permitir a los estudiantes tomar la iniciativa en el
puntajes por las fichas rojas y azules, restarle los puntos de
planteamiento de preguntas e investigaciones que les
las fichas amarillas. interesen.
RESUELVE • Hacer preguntas que involucren pensamiento de
• Por tres fichas rojas: 33 = 27 puntos orden superior.
• Por seis fichas azules: 6 x 2 = 12 puntos • Verificar que los estudiantes son conscientes de las
• Por cuatro fichas amarillas: 42 = 16 puntos estrategias que deben utilizar y de los procesos que
• Para obtener el puntaje final de Andrés, sumar los puntos deben aprender.
obtenidos con las fichas rojas y azules (27 + 12 = 39 • Plantear problemas que proporcionen contextos en
puntos) y de este resultado restar los puntos los que se aprendan conceptos y habilidades.
representados por las fichas amarillas (39 – 16 = 23 • Proveer ejemplos de cómo los conceptos y
puntos). habilidades utilizados podrían aplicarse en otros
REVISA contextos.
• El puntaje que obtuvo Andrés es 23 puntos. • Promover, de manera creciente, la abstracción y la
• Verificar las operaciones y comparar los cálculos con la generalización mediante la reflexión y la
experimentación.
solución estimada.
• Fomentar la utilización de representaciones visuales
que favorezcan la comprensión de conceptos
El anterior es un problema típico en clase de
(diagramas de flujo, mapas conceptuales, diagramas
matemáticas. Es muy importante que los estudiantes
de Venn, etc).
reflexionen sobre las actividades que realizan para
solucionarlo (metacognición) y las agrupen de acuerdo a

Pág.9 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


• Dar retroalimentación personalizada en consideración
al esfuerzo hecho por los estudiantes para solucionar
problemas.
• Verificar que una cantidad importante de la instrucción
ocurra en grupos pequeños o en situaciones de uno a
uno.
• Ventilar los errores y malentendidos más comunes.
• Promover la interacción tanto estudiante-docente,
como estudiante-estudiante. Los niños son los
mejores maestros de otros niños en cosas tan
importantes para ellos como el aprendizaje de
diversos juegos (Savater, 1996).
• Ofrecer actividades que den oportunidad a los
estudiantes de discutir, hacer conjeturas, sacar
conclusiones, defender ideas y escribir
conceptualizaciones.
• Proporcionar oportunidades para realizar trabajo
reflexivo y colaborativo entre estudiantes.

Solución de problemas y programación


Desde el punto de vista educativo, la solución de
problemas mediante la programación de computadores
posibilita la activación de una amplia variedad de estilos
de aprendizaje. Los estudiantes pueden encontrar
diversas maneras de abordar problemas y plantear
soluciones, al tiempo que desarrollan habilidades para:
visualizar caminos de razonamiento divergentes,
anticipar errores, y evaluar rápidamente diferentes
escenarios mentales (Stager, 2003).

Ilustración 1-2(a): Área de trabajo de MicroMundos EX


(interfaz del programa)

Quienes han utilizado Logo con estudiantes de básica


primaria (especialmente con grados 3º a 5º - 8 a 11

Pág.10 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


años) habrán podido observar la facilidad con que ellos se el computador ejecuta automáticamente, una tras otra,
familiarizan con la interfaz del programa y la utilizan para hasta encontrar el comando “fin”. Emplear Logo de esta
darle instrucciones a la tortuga. Por ejemplo, utilizan el manera exige que el estudiante piense en todos los
“centro de mando” (área de comandos) para introducir comandos que conforman un procedimiento antes de
manualmente, una a una, las instrucciones para construir escribirlo, ejecutarlo y comprobar si produce el resultado
un rectángulo. Esta forma de utilizar Logo promueve la esperado. Así, Logo promueve lo que Piaget (1964)
exploración y permite al estudiante ver inmediatamente denominó “la conquista de la difícil conducta de la
cuál es el efecto que produce cada instrucción ejecutada. reflexión” que se inicia a partir de los siete u ocho años
cuando niños y niñas dejan de actuar por impulso y
empiezan a pensar antes de proceder. Además,
demanda de los estudiantes planificar, formular hipótesis y
anticipar qué sucederá.

EJEMPLO
Pedir a los estudiantes que escriban un procedimiento para
dibujar un rectángulo con unas medidas determinadas (Lado1=
80; Lado2=120), implica que ellos deben pensar en algo muy
parecido a lo siguiente (y escribirlo):

MicroMundos Scratch

para rectángulo
cp
adelante 80
derecha 90
Ilustración 1-2(b): Área de trabajo de Scratch Versión 1.4 adelante 120
derecha 90
(interfaz del programa)
adelante 80
derecha 90
adelante 120
EJEMPLO Fin
Pedir a los estudiantes que escriban en el “Centro de Mando”
las instrucciones para dibujar un rectángulo con las siguientes
medidas: Cuando se invoca este procedimiento escribiendo “rectángulo”
Lado1= 80; Lado2=120. en el “Centro de Mando” de MicroMundos o haciendo clic en la
bandera verde de Scratch, el computador ejecuta
automáticamente y en orden consecutiva, las instrucciones que
MicroMundos Scratch
se encuentran entre “para rectángulo” [to rectangulo] y “fin”
cp adelante El Centro de Mando de
[end] (MicroMundos) o debajo de la instrucción [al presionar
80 derecha MicroMundos no tiene
bandera verde]. Antes de escribir el anterior procedimiento,
90 adelante equivalente en Scratch. los estudiantes deben analizar la figura geométrica que desean
120 construir, describirla y reflexionar acerca de cómo se unen sus
derecha 90 partes (dos pares de lados paralelos de igual longitud y cuatro
adelante 80 ángulos iguales de 90 grados). Deben explicar el todo mediante
derecha 90 la composición de las partes, y esta composición supone, por
adelante tanto, la existencia de autenticas operaciones de segmentación
120 o partición y de operaciones inversas de reunión o adición, así
como desplazamientos por separación o concentración (Piaget,
A medida que el estudiante introduce cada una de estas 1964).
instrucciones se dibuja cada uno de los lados que
conforman el rectángulo. Pedir a los estudiantes que escriban un procedimiento
NOTA: Ver en el Anexo 1 un resumen de las primitivas más general para dibujar cualquier rectángulo, significa
(comandos e instrucciones) de MicroMundos y de Scratch que ellos deben tratar las dimensiones de la figura como
utilizadas en esta guía. variables (Lado1= ?; Lado2= ?) y no como constantes
(Lado1= 80; Lado2= 120). Además, deben construir una
Sin embargo, en esta guía se utilizará el “área de definición de rectángulo que el computador entienda; de
procedimientos” de MicroMundos para programar el esta manera, empiezan a construir conocimiento intuitivo
computador. Los procedimientos son módulos con acerca de la definición de esta figura geométrica,
instrucciones que se inician con el comando “para” y que conocimiento que luego pueden formalizar en una

Pág.11 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


definición abstracta de la misma (Clements & Meredith, Ilustración 1-3: fases para elaborar un programa de
1992). computador.

Adicionalmente, la programación de computadores


compromete a los estudiantes en varios aspectos
importantes de la solución de problemas: decidir sobre la
naturaleza del problema, seleccionar una representación
que les ayude a resolverlo, y monitorear sus propios
pensamientos (metacognición) y estrategias de solución.
Este último, es un aspecto que ellos deben desarrollar
desde edades tempranas y solucionar problemas con
ayuda del computador puede convertirse en una Analizar el problema (entenderlo)
excelente herramienta para adquirir la costumbre de tratar
cualquier problema de manera rigurosa y sistemática,
aun, cuando no se vaya a utilizar un computador para
solucionarlo.

De hecho, para muchos educadores, el uso apropiado de


la tecnología en la educación tiene un significado similar a
la solución de problemas matemáticos. La programación
de computadores para llevar a cabo tareas matemáticas
retadoras puede mejorar la comprensión del estudiante
“programador” sobre las matemáticas relacionadas con
una solución. Esto implica abrirle un espacio a la
programación en el estudio de las matemáticas, pero Ilustración 1-4: Primera fase del ciclo de programación.
enfocándose en los problemas matemáticos y en el uso
del computador como una herramienta para solucionar Los programas de computador tienen como finalidad
problemas de esta área (Wilson, Fernández & Hadaway, resolver problemas específicos y el primer paso consiste
1993). en definir con precisión el problema hasta lograr la mejor
comprensión posible. Una forma de realizar esta actividad
Numerosos autores de libros sobre programación, se basa en formular claramente el problema,
plantean cuatro fases para elaborar un procedimiento que especificar los resultados que se desean obtener,
realice una tarea específica. Estas fases concuerdan con identificar la información disponible (datos), determinar
las operaciones mentales descritas por Polya para las restricciones y definir los procesos necesarios para
resolver problemas: convertir los datos disponibles (materia prima) en la
1. Analizar el problema (Entender el problema) información requerida (resultados).
2. Diseñar un algoritmo (Trazar un plan)
3. Traducir el algoritmo a un lenguaje de programación Estas etapas coinciden parcialmente con los elementos
(Ejecutar el plan) generales que, según Schunk (1997), están presentes en
4. Depurar el programa (Revisar) todos los problemas:
1. Especificar claramente los resultados que se desean
Como se puede apreciar, hay una similitud entre las obtener (meta y submetas)
metodologías propuestas para solucionar problemas 2. Identificar la información disponible (estado inicial)
matemáticos (Clements & Meredith, 1992; Díaz, 1993; 3. Definir los procesos que llevan desde los datos
Melo, 2001; NAP, 2004) y las cuatro fases para solucionar disponibles hasta el resultado deseado (operaciones)
problemas específicos de áreas diversas, mediante la
programación de computadores.

Pág.12 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


próxima. El jefe de producción le informó ayer a Juan Felipe
que la producción diaria será de 744 pañales y en cada caja
cabe una docena de ellos.
¿Qué debe hacer Felipe?

La Opción 1 plantea directamente el problema que el


estudiante debe resolver. Mientras que la Opción 2 plantea una
situación y la pregunta es ¿Qué debe hacer Felipe?. La Opción
2 demanda al estudiante leer muy bien el texto para
comprender la situación y así poder formular el problema de
Juan Felipe. Es algo similar a preguntar al estudiante “cuánto es
7 menos 3” versus preguntar “sí Rosa tiene 7 naranjas y Julio
tiene 3, cuántas naranjas de más tiene Rosa”.

La comprensión lingüística del problema (entender el


significado de cada enunciado) es muy importante. El
estudiante debe realizar una lectura previa del problema
Ilustración 1-5: Etapas a desarrollar en la fase de análisis de con el fin de obtener una visión general de lo que se le
un problema (entenderlo) pide y una segunda lectura para poder responder
preguntas como:
Para establecer un modelo que los estudiantes puedan • ¿Puedo definir mejor el problema?
utilizar en la fase de análisis del problema, debemos • ¿Qué palabras del problema me son desconocidas?
agregar dos temas a los elementos expuestos por Schunk • ¿Cuáles son las palabras clave del problema?
(1997): formular el problema y determinar las • ¿He resuelto antes algún problema similar?
restricciones. • ¿Qué información es importante?
• ¿Qué información puedo omitir?
Ahora veamos con mayor detalle cada una de las etapas
del análisis de un problema. Además, es conveniente que los estudiantes se habitúen
a analizar los problemas desde diferentes puntos de vista
y a categorizar la información dispersa que reciben como
Formular el problema materia prima (Schunk, 1997).
La solución de un problema debe iniciar por determinar y
comprender exactamente en qué consiste ese problema. En programación es frecuente que quien programa deba
La mayoría de los problemas que se resuelven en el aula formular el problema a partir de los resultados esperados.
de clase llegan a manos de los estudiantes perfectamente Es muy importante que el estudiante sea consciente de
formulados. Esta etapa es una buena oportunidad para que cuando las especificaciones de un programa se
plantear situaciones en forma verbal o escrita que comunican mediante lenguaje natural, estas pueden ser
vinculen la enseñanza de las matemáticas con el entorno ambiguas, incompletas e incongruentes. En esta etapa se
en el que vive el estudiante y que tengan una variedad de debe hacer una representación precisa del problema
estructuras y de formas de solución (Zemelman, Daniels & (Rumbaugh, 1996); especificar lo más exactamente
Hayde, 1998). posible lo que hay que hacer (no cómo hay que hacerlo).

Esta metodología obliga al estudiante a formular el EJEMPLO


problema a partir de la situación real planteada. De esta Doña Ruby necesita decidir cómo comprar un televisor que
manera se contrarresta la costumbre tan común en el aula cuesta 850.000 de contado o 960.000 a crédito. Ella tiene
de que los problemas sean formulados por el profesor o 600.000 pesos en efectivo.
tomados de los libros de texto (Brown & Walter, 1990). R/.
Como el efectivo que tiene doña Ruby no le alcanza para
EJEMPLO comprar el televisor de contado, ella tiene dos opciones:
OPCIÓN 1: comprarlo totalmente a crédito o pagar una parte de contado
Juan Felipe es jefe de bodega en una fabrica de pañales (cuota inicial) y el resto a crédito.
desechables y sabe que la producción diaria es de 744 pañales
Para poder resolver el problema se debe conocer el número de
y que en cada caja donde se empacan para la venta caben 12
pañales. ¿Cuántas cajas debe conseguir Juan Felipe para cuotas si desea pagarlo totalmente a crédito o conocer el
empacar los pañales fabricados en una semana? número de cuotas y el valor total del televisor si se da una
OPCIÓN 2: cuota inicial de 600.000 pesos.
Juan Felipe es jefe de bodega en una fabrica de pañales
desechables y una de las tares del día consiste en llamar al
proveedor de los empaques y ordenarle la cantidad suficiente
de cajas para empacar los pañales fabricados en la semana

Pág.13 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


Precisar los resultados esperados durante 7 semanas. Por lavar el auto de su tío tres veces recibió
(meta y submetas) 8.000 pesos. Su hermano ganó 10.000 pesos por hacer los
Para establecer los resultados que se esperan (meta) es mandados de su mamá y 4.000 por sacar a pasear el perro.
necesario identificar la información relevante, ignorar los ¿Esteban tiene ahorrado el dinero suficiente para comprar la
detalles sin importancia, entender los elementos del patineta o aún le falta?
problema y activar el esquema correcto que permita (Adaptado de Casasbuenas & Cifuentes (1998b), página 23).
comprenderlo en su totalidad (Woolfolk, 1999). R/.
Formular el problema: Ya se encuentra claramente
Determinar con claridad cuál es el resultado final planteado. Resultados esperados: Si o no tiene Esteban
(producto) que debe devolver el programa es algo que ahorrado el dinero suficiente para comprar una patineta que
ayuda a establecer la meta. Es necesario analizar qué vale 55.000 pesos. Datos disponibles: Los ingresos de
resultados se solicitan y qué formato deben tener esos Esteban: 5.000 pesos por 7 semanas + 8.000 pesos. Los
resultados (impresos, en pantalla, diagramación, orden,
10.000 y 4.000 pesos qué ganó el hermano de Esteban son
etc). El estudiante debe preguntarse:
irrelevantes para la solución de este problema y se pueden
• ¿Qué información me solicitan?
omitir.
• ¿Qué formato debe tener esta información?

Determinar las restricciones


Identificar datos disponibles Resulta fundamental que los estudiantes determinen
(estado inicial) aquello que está permitido o prohibido hacer y/o utilizar
Otro aspecto muy importante en la etapa de análisis del para llegar a una solución. En este punto se deben
problema consiste en determinar cuál es la información exponer las necesidades y restricciones (no una
disponible. El estudiante debe preguntarse: propuesta de solución). El estudiante debe preguntarse:
• ¿Qué información es importante? • ¿Qué condiciones me plantea el problema?
• ¿Qué información no es relevante? • ¿Qué está prohibido hacer y/o utilizar?
• ¿Cuáles son los datos de entrada? (conocidos) • ¿Qué está permitido hacer y/o utilizar?
• ¿Cuál es la incógnita? • ¿Cuáles datos puedo considerar fijos (constantes)
• ¿Qué información me falta para resolver el problema? para simplificar el problema?
(datos desconocidos) • ¿Cuáles datos son variables?
• ¿Puedo agrupar los datos en categorías? • ¿Cuáles datos debo calcular?

Otro aspecto importante del estado inicial hace referencia


al nivel de conocimiento que el estudiante posee en el
ámbito del problema que está tratando de resolver. Es
Establecer procesos (operaciones)
conveniente que el estudiante se pregunte a sí mismo: Consiste en determinar los procesos que permiten llegar a
• ¿Qué conocimientos tengo en el área o áreas del los resultados esperados a partir de los datos disponibles.
problema? El estudiante debe preguntarse:
• ¿Son suficientes esos conocimientos? • ¿Qué procesos necesito?
• ¿Dónde puedo obtener el conocimiento que necesito • ¿Qué fórmulas debo emplear?
para resolver el problema? • ¿Cómo afectan las condiciones a los procesos?
• ¿Mis compañeros de estudio me pueden ayudar a • ¿Qué debo hacer?
clarificar mis dudas? • ¿Cuál es el orden de lo que debo hacer?
• ¿Qué expertos en el tema puedo consultar?
En la medida de lo posible, es aconsejable dividir el
En el ámbito de las matemáticas, se conoce como problema original en otros más pequeños y fáciles de
conocimiento condicional a aquel que activan los solucionar (submetas), hasta que los pasos para
estudiantes cuando aplican procedimientos matemáticos alcanzarlas se puedan determinar con bastante precisión
concretos de manera intencional y consciente a ciertas (módulos). Esto es lo que en programación se denomina
situaciones. “El conocimiento condicional proporciona al diseño descendente o top-down (Joyanes, 2001).
alumno un sistema de valoración sobre la extensión y las
limitaciones de su saber (qué sabe sobre el tema, su El diseño descendente se utiliza en la programación
capacidad de memoria, etc), a la vez que examina la estructurada de computadores debido a que facilita:
naturaleza de la demanda del profesor y su objetivo • La comprensión del problema
último, y evalúa variables externas como pueden ser el • Las modificaciones en los módulos
tiempo que tiene o con quién realiza la tarea” (Orubia & • La verificación de la solución
Rochera & Barberà, 2001).
Al realizar divisiones sucesivas del problema en otros más
EJEMPLO pequeños y manejables (módulos), hay que tener cuidado
Esteban está ahorrando para comprar una patineta que vale para no perder de vista la comprensión de este como un
55.000 pesos. Su papá le ha dado una mesada de 5.000 pesos todo. El estudiante, luego de dividir el problema original en
Pág.14 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
submetas (módulos), debe integrar cada parte de tal R/
forma que le permita comprender el problema como un Formular el problema: Ya se encuentra claramente planteado.
todo (Woolfolk, 1999). Resultados esperados: El área de un triángulo rectángulo.
Datos disponibles: Base, Altura, Hipotenusa, tipo de triángulo.
Igualmente hay que tener cuidado cuando se utiliza este La incógnita es el área y todos los valores son constantes. El
enfoque para resolver problemas complejos o extensos, valor de la hipotenusa se puede omitir. El estudiante debe
en cuyo caso resulta más aconsejable utilizar una preguntarse si sus conocimientos actuales de matemáticas le
metodología orientada a objetos. Especialmente, cuando
permiten resolver este problema; de no ser así, debe plantear
profesores universitarios manifiestan su preocupación por
una estrategia para obtener los conocimientos requeridos.
el aprendizaje de malas prácticas de programación en el
colegio. Hay casos en los cuales algunos estudiantes no Determinar las restricciones: Utilizar las medidas dadas.
han podido cambiar su forma de pensar “estructurada” por Procesos necesarios: Guardar en dos variables los valores de
otra orientada a objetos, la cual hace parte de los Base y Altura; Guardar en una constante el divisor 2; aplicar la
programas universitarios modernos en la carrera de fórmula área=base*altura/2; comunicar el resultado (área).
Ingeniería de Sistemas. Es aconsejable que los ejemplos
y actividades planteados a los estudiantes contengan solo ACTIVIDAD
un problema cuya solución sea muy corta (no La mayoría de las metodologías propuestas para la solución de
necesariamente sencillo de resolver). De esta forma ellos problemas matemáticos se aproxima al ciclo de programación
podrán enfocarse en aplicar completamente la de computadores. Se puede iniciar planteando a los
metodología propuesta para analizar problemas (formular estudiantes problemas matemáticos como los siguientes,
el problema, especificar los resultados, identificar la encontrados en Casasbuenas & Cifuentes (1998b):
información disponible, determinar las restricciones y 1. Luisa quiere invertir sus ahorros en la compra de discos
definir los procesos) sin perderse en el laberinto de un compactos de moda. Si tiene $68.000, ¿Cuántos discos
problema demasiado complejo. comprará?

Las operaciones para llegar a los resultados esperados se Analizar el problema:


implementan en Logo mediante procedimientos. Por • ¿Qué tienes en cuenta cuando vas a comprar un disco?
ejemplo, si se desea producir un software para trabajar • ¿Tienes información suficiente para resolver el problema de
con figuras geométricas de diferentes tipos, el triángulo Luisa?
rectángulo será uno de los objetos a tener en cuenta y • ¿Qué dato averiguarías para saber cuántos discos puede
este a su vez, debe prestar los siguientes servicios comprar Luisa?
(Jiménez, 2002): Plantear ahora este problema utilizando la metodología de
1. Un procedimiento para leer los datos de entrada. “Formular el problema”, “Resultados esperados”, “Datos
2. Un procedimiento para calcular el área. disponibles”, “Determinar las restricciones” y “Procesos
3. Un procedimiento para calcular la hipotenusa. necesarios”.
4. Un procedimiento para calcular el perímetro.
5. Un procedimiento para mostrar los resultados.
TIP
Cinco pasos que deben tener en cuenta los estudiantes para
resolver problemas matemáticos (Rodríguez, 1995):
1. Leer con mucho cuidado el problema hasta
entenderlo.
2. Buscar la(s) pregunta(s).
3. Decidir lo que debes hacer.
4. Realizar las operaciones.
5. Comprobar que la respuesta hallada es
correcta. Pida a los estudiantes que contesten las
siguientes preguntas en el proceso de solución de
problemas matemáticos:
• ¿Cuántas preguntas tiene el problema? ¿Cuáles?
• ¿Qué debes hacer primero? ¿Para qué?
Ilustración 1-6: Descripción de los servicios que debe estar • ¿Qué debes hacer luego? ¿Para qué?
en capacidad de prestar el objeto “triángulo • ¿Cuál debe ser la respuesta (estimada) del problema?
rectángulo”.

EJEMPLO ACTIVIDAD
De acuerdo con la metodología descrita, analizar el problema Basándose en la metodología expuesta en esta unidad, dividir
de hallar el área de un triángulo rectángulo cuya Base mide 3 a los estudiantes en grupos y distribuir entre ellos la tarea de
cm, la Altura 4 cm y la Hipotenusa 5 cm. análisis detallado (“Formular el problema”, “Resultados
esperados”, “Datos disponibles”, “Determinar las

Pág.15 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


restricciones” y “Procesos necesarios”) de los siguientes Resultados esperados: El área de un triángulo rectángulo.
problemas (uno por grupo): 1. Hallar el área de un cuadrado Datos disponibles: Base, Altura, Hipotenusa, tipo de triángulo.
cuyo lado mide 5 cm. La incógnita es el área y todos los valores son constantes. El
2. Hallar uno de los lados de un rectángulo cuya área es de 15 valor de la hipotenusa se puede omitir. El estudiante debe
cm2 y uno de sus lados mide 3 cm. preguntarse si sus conocimientos actuales de matemáticas le
3. Hallar el área y el perímetro de un círculo cuyo radio mide 2 permiten resolver este problema; de no ser así, debe plantear
cm. una estrategia para obtener los conocimientos requeridos.
4. Hallar el área de un pentágono regular de 6 cm de lado y Determinar las restricciones: Utilizar las medidas dadas.
con 4 cm de apotema. Procesos necesarios: Guardar en dos variables (BASE y ALTURA)
los valores de Base y Altura; Guardar en una constante (DIV) el
divisor 2; aplicar la fórmula BASE*ALTURA/DIV y guardar el
resultado en la variable AREA; comunicar el resultado (AREA).
Dato Curioso
Deep Blue de IBM fue el primer computador que superó a un
ALGORITMO EN SEUDOCÓDIGO
campeón mundial de ajedrez cuando le ganó una partida a Gary
Kasparov en febrero de 1996. La victoria de Deep Blue formaba Paso 1: Inicio
parte de una serie de seis partidas, que Kasparov terminó Paso 2: Asignar el número 2 a la constante "div"
ganando 4-2. En 1997, una versión nueva y mejorada de Deep Paso 3: Asignar el número 3 a la constante “base”
Blue contraatacó en una segunda serie. Esta vez, el computador, Paso 4: Asignar el número 4 a la constante “altura”
capaz de planear una vertiginosa cantidad de 200 millones de Paso 5: Guardar en la variable "área" el resultado de
posiciones por segundo, ganó la serie a Kasparov por 3.5 a 2.5 base*altura/div
puntos. (Libro Paso 6: Imprimir el valor de la variable "área"
Gunness de los Records 2002)
Paso 7: Final

Ilustración 1-7: Fases segunda, tercera y cuarta, del ciclo de


programación.
ALGORITMO EN DIAGRAMA DE FLUJO

Diseñar el algoritmo (trazar un plan) Ilustración 1-8: Diagrama de Flujo para hallar el área de un
Este tema se tratará en profundidad en las unidades 2 y 3 triángulo rectángulo.
de esta guía. Por el momento, podemos resumir que
únicamente hasta cuando se ha realizado un análisis a
fondo del problema (utilizando alguna metodología), se Traducir el algoritmo (ejecutar el plan)
puede proceder a elaborar el algoritmo (diagrama de Este tema se tratará en profundidad en las Unidades 3 y 4
flujo). Este consiste en la representación gráfica, mediante de esta guía. Una vez que el algoritmo está diseñado y
símbolos geométricos, de la secuencia lógica de las representado gráficamente se pasa a la etapa de
instrucciones (plan) que posteriormente serán traducidas traducción a un lenguaje de programación determinado
a un lenguaje de programación, como Logo, para (en nuestro caso será Logo). Cada lenguaje posee sus
ejecutarlas y probarlas en un computador. propias reglas gramaticales, por lo tanto es fundamental
que los estudiantes conozcan de antemano la sintaxis de
EJEMPLO los comandos que deben utilizar para resolver el
Diseñar un algoritmo (seudocódigo y diagrama de flujo) para problema. A mayor dominio del lenguaje de programación,
hallar el área de un triángulo rectángulo cuya Base mide 3 cm, mayor posibilidad de llegar rápidamente a una solución
la Altura 4 cm y la Hipotenusa 5 cm. satisfactoria. A esta fase de traducción se le conoce
R/ ANÁLISIS DEL PROBLEMA comúnmente como codificación.
Formular el problema: Ya se encuentra claramente planteado.

Pág.16 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


EJEMPLO
A partir del ejemplo anterior, escribir un procedimiento en Logo Al escribir en el centro de mando de MicroMundos la palabra
que se llame triángulo para hallar el área de un triángulo triángulo se debe obtener como resultado 6. En el caso de
rectángulo cuya Base mide 3 cm, la Altura 4 cm y la Hipotenusa Scratch, hacer clic en la bandera verde y se debe obtener el
5 cm. mismo resultado.
R/
MicroMundos
para Depurar el programa (revisar)
triángulo Este tema se tratará en profundidad en la Unidad 4 de
local "div esta guía. Después de traducir el algoritmo en un lenguaje
local "base de programación como Logo, el programa resultante debe
local "altura ser probado y validados los resultados. A este proceso se
local "área
le conoce como depuración. Depurar programas
da "div 2
contribuye a mejorar la capacidad en los estudiantes para
da "base 3
resolver problemas; la depuración basada en la
da "altura 4
retroalimentación es una habilidad útil para toda la vida
da "área :base * :altura / :div
(Stager, 2003).
muestra :área
fin
Quienes han escrito alguna vez un programa de
computador, saben de la dificultad que representa
Scratch elaborar programas perfectos en el primer intento,

dificultad que aumenta a medida que el problema a resolver es más


complejo. La depuración, afinamiento y documentación de un programa
hacen parte fundamental del ciclo de programación y desde el punto de vista
educativo estimula en los estudiantes la curiosidad, la perspectiva, la
comunicación y promueve valores como responsabilidad, fortaleza,
laboriosidad, paciencia y perseverancia. La programación facilita un diálogo
interior en el cual la retroalimentación constante y el éxito gradual empujan a
los alumnos a ir más allá de sus expectativas (Stager, 2003). Otras dos
actividades relacionadas con esta etapa son la afinación y la documentación.
La primera consiste en realizar retoques para lograr una mejor apariencia del
programa (en pantalla o en los resultados impresos) o para ofrecer
funcionalidades más allá de los resultados esperados (especificados en la
fase de análisis del problema). La segunda tiene un carácter eminentemente
comunicativo, con la documentación de un programa se pone a prueba la
capacidad del estudiante para informar a otras personas cómo funciona su
programa y lo que significa cada elemento utilizado.
EJEMPLO Complementar la solución del problema de hallar el área de un triángulo
rectángulo cuya Base mide 3 cm, la Altura 4 cm y la
Hipotenusa 5 cm.
R/ La base y la altura son suficientes para calcular el área de un triángulo
rectángulo (resultado esperado), pero adicionalmente se puede calcular el
perímetro (afinación), aplicando la fórmula: perímetro=Base+Altura+Hipotenusa
Incluso, en caso que el enunciado del problema no hubiese indicado el
valor de la Hipotenusa, si se poseen los suficientes conocimientos de
geometría, se puede calcular el valor de esta a partir de la Base, la Altura y la
condición de ser un triángulo rectángulo:

Pág.17 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


Dato Curioso
Spacewar es el primer videojuego del mundo. Se empezó a utilizar en 1961
en el Massachusetts Institute of Technology (MIT) en un computador PDP-
1. Se trataba de un juego de combate espacial en el que dos naves
alrededor de una estrella central debían derribarse entre ellas.
Programado como diversión por estudiantes del MIT , este juego fue el
precursor de todos los videojuegos modernos. El computador PDP-1 se
puso a la venta en 1960 y costaba 120.000 dólares (el equivalente a
930.000 dólares actuales) y en total se vendieron 50 unidades. El PDP-1 es
el antepasado del computador personal actual y se concibió para su uso en
instituciones científicas. Disponía de una memoria de 4Kb y los operadores
empleaban un teclado y cinta de papel perforado para la introducción de
datos. (Libro
Guinness de los Records, 2002).

.
CREATIVIDAD por el psiquiatra Gene Cohen (citado por Banaji & Burn,
2006), que caracteriza los logros extraordinarios de
Si se quiere llegar a un planteamiento, para Educación personas poco corrientes como artistas renombrados,
Básica, que contribuya efectivamente a desarrollar la científicos e inventores.
creatividad programando computadores, es conveniente
como primera medida, llegar a un acuerdo sobre qué es la Stenberg (1997), autor reconocido en este campo,
creatividad, pues varios autores la definen de manera argumenta que la creatividad no es solo una capacidad,
diferente. sino un proceso en el que intervienen tres tipos de
inteligencia: creativa (ir más allá de lo dado y engendrar
De acuerdo con el Diccionario de la Real Academia ideas nuevas e interesantes), analítica (analizar y evaluar
Española (RAE), creatividad es la facultad de crear o la ideas, resolver problemas y tomar decisiones) y práctica
capacidad de creación. Por su parte, la enciclopedia (traducir teorías abstractas en realizaciones efectivas).
Microsoft Encarta define la Creatividad como la capacidad Estas dos últimas inteligencias aportan la posibilidad de
de inventar algo nuevo, de relacionar algo conocido de diferenciar entre ideas innovadoras buenas y malas y,
forma innovadora o de apartarse de los esquemas de además, relacionarlas con la vida cotidiana (López, 2000).
pensamiento y conducta habituales. Según Wikipedia, la Por su parte, Gardner (1993) define a la persona creativa
creatividad es un proceso mental y social que implica como alguien que “regularmente resuelve problemas,
generar nuevas ideas o conceptos, o nuevas asociaciones genera productos o define nuevos cuestionamientos en un
entre ideas y conceptos conocidos, lo que habitualmente dominio, de manera que en principio se considera nueva
produce soluciones originales. Las definiciones anteriores pero que al final llega a ser aceptada por un grupo cultural
se refieren al acto de inventar cualquier cosa nueva particular”.
(Ingenio), a la capacidad de encontrar soluciones
originales y a la voluntad de modificar o transformar el En los Estándares Nacionales Estadounidenses de TIC
mundo. para Estudiantes (NETS’S), reformulados por ISTE, el
primer grupo corresponde a Creatividad e Innovación.
Ana Craft (2001) anota que las definiciones de creatividad Para ISTE, los estudiantes al finalizar sus Educación
más aceptadas en los últimos 50 años son aquellas que Media deben demostrar pensamiento creativo, construir
unen creatividad e imaginación. Este enfoque sugiere que conocimiento y desarrollar productos y procesos
cada persona tiene potencial creativo ya que este es un innovadores utilizando las TIC.
aspecto fundamental de la naturaleza humana. Ella se
refiere a la “creatividad con c minúscula” como la Según ISTE (2007), los estudiantes deben estar en
habilidad para hacer frente, de manera efectiva, a los capacidad de aplicar su conocimiento previo para generar
retos y cambios que nos plantea la vida en el siglo XXI. nuevas ideas, productos o procesos; crear trabajos
Esta es la creatividad que sirve para afrontar tareas originales como medios de expresión personal o grupal;
cotidianas (elaborar una nueva receta o un arreglo floral, usar modelos y simulaciones para explorar sistemas y
escribir una carta o poema, enseñar un nuevo truco a temas complejos; e identificar tendencias y prever
alguien, etc). También entra en juego cuando se deben posibilidades.
superar obstáculos tales como desempleo y pobreza o
aprovechar oportunidades. Esta “creatividad” se Según el Comité Consultivo Nacional para la Educación
contrapone a la “Creatividad con C mayúscula” propuesta Creativa y Cultural de Inglaterra (NACCCE, por su sigla
Pág.18 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
en Inglés), la creatividad se define como la actividad las personas creativas tienen rasgos comunes: buen
imaginativa que tiene como objetivo producir resultados humor; confianza en sí mismos; flexibilidad y
tanto originales como generadores de valor (Robinson, adaptabilidad; alta capacidad de asociación; sensibilidad;
1999). curiosidad intelectual; percepción y observación agudas;
iniciativa para tomar riesgos; imaginación; expresividad;
Para el Consorcio de Habilidades de Aprendizaje para el capacidad crítica; entusiasmo; y, tenacidad (López, 2000).
Siglo XXI, las habilidades de aprendizaje e innovación se Por el contrario, quienes no son creativos presentan
están reconociendo como aquellas que separan a los recurrentemente algunas de los siguientes rasgos: tienden
estudiantes que están preparados para los ambientes de a especializarse en ciertos temas; son extremadamente
vida y de trabajo del Siglo XXI, cada vez más complejos, racionales; les falta confianza en si mismos; no tienen
de los que no lo están. Hacer énfasis en creatividad, motivación; su capacidad para escuchar es reducida;
pensamiento crítico, comunicación y colaboración es respetan la autoridad en exceso; no son buenos
esencial en la preparación de los estudiantes para el observadores; y, tienen deficiente pensamiento crítico.
futuro. Entre las competencias de creatividad e innovación
que propone el Consorcio están: demostrar originalidad e Sin embargo, buena parte de los autores que han
inventiva en el trabajo; desarrollar, implementar y trabajado en profundidad el tema de la creatividad, entre
comunicar nuevas ideas a otros; tener apertura y ellos Resnick, De Bono y Johansson, no solo argumentan
responder a perspectivas nuevas y diversas; y actuar con que si es posible desarrollarla, sino que aportan
ideas creativas para realizar una contribución tangible y propuestas concretas para trabajarla en el aula de clase.
útil en el campo en el que ocurre la innovación. Además, plantean que las siguientes habilidades
cognitivas, susceptibles de desarrollar, están presentes en
Por su parte, el Consorcio para la Creatividad propone las personas consideradas como creativas: se plantean
que ésta se refiere a mucho más que “hacer arte”. La nuevos objetivos; exploran un mayor número de
creatividad tiene que ver con el desarrollo de la capacidad alternativas; evalúan, durante el transcurso del proceso de
para: cuestionar, hacer conexiones, innovar, resolver solución, los objetivos, las alternativas y las tareas; se
problemas y reflexionar críticamente; todas éstas son aseguran de entender a cabalidad los problemas; son
habilidades altamente valoradas en el mundo laboral observadores; usan la abstracción; usan metáforas y
actual; y agregan, “el aprendizaje creativo empodera a los analogías; desglosan la tarea en subtareas y desarrollan
jóvenes a imaginar un mundo diferente y les da confianza productos intermedios; y, usan estrategias metacognitivas
y motivación para llevar a cabo lo que imaginan” (Creative (López, 2000).
Partnerships, 2006).
Según De Bono (1970), es conveniente empezar a
Son muchas las definiciones que intentan explicar el enseñar, a partir de los 7 años, técnicas de pensamiento
concepto de creatividad, aquí solo se exponen algunas de que faciliten el desarrollo de la creatividad. Entre las que
ellas a fin de dar una perspectiva amplia a los docentes se pueden implementar en cursos de diferentes
en este campo. El desarrollo de pensamiento algorítmico asignaturas tenemos: plantear problemas inesperados,
que promueve esta guía, mediante el enfoque de solución formular alternativas, proponer e implementar diseños,
de problemas predefinidos, se complementa con el realizar observaciones, hacer abstracción en diversos
desarrollo de pensamiento creativo. Pues en el mundo temas, realizar ejercicios de dibujo y utilizar metáforas y
actual, en el que lo único permanente es el cambio, analogías.
además de aprender a resolver tipos específicos de
problemas, los estudiantes deben aprender a improvisar Sin embargo, puede sonar ambicioso implementar toda
creativamente cuando se encuentren con situaciones una metodología para desarrollar la creatividad en un
inesperadas y a explorar alternativas de solución variadas curso de Algoritmos y Programación. Por esto y para
(Resnick, 2007). efectos de la presente Guía, se seleccionaron dos
técnicas de pensamiento que hacen una contribución al
desarrollo de la creatividad: planteamiento de problemas
Desarrollo de la creatividad inesperados y formulación de alternativas.
Una de las cuestiones en torno a la creatividad que aún
no tiene respuesta definitiva es si esta se puede El planteamiento de problemas inesperados busca
desarrollar o simplemente se nace con dicha complementar el enfoque de solución de problemas
predefinidos que para resolverlos pueden hacer uso de
“genialidad” (C mayúscula).
metodologías como la propuesta por Polya. Es
precisamente esta metodología la que se ha utilizado para
Respecto al genio creativo, el Consorcio para la
resolver problemas matemáticos; sin embargo, algunos
Creatividad considera que éste es un discurso
docentes han manifestado preocupación ya que si bien, la
posromántico apoyado por quienes han visto la
metodología ayuda a que los estudiantes estructuren su
creatividad únicamente como una cualidad especial de
pensamiento, muchos de ellos se encasillan en ella y les
pocas personas, generalmente artistas, tales como
cuesta trabajo encontrar soluciones alternativas.
escritores, músicos, pintores, etc (Banaji & Burn, 2006).
Los que explican la creatividad desde una perspectiva
basada en características de la personalidad afirman que
Pág.19 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
En este sentido, entornos de programación como Scratch
y MicroMundos, comprometen a los estudiantes en la
búsqueda de soluciones innovadoras a problemas
inesperados; no se trata solamente de aprender a
solucionar problemas de manera predefinida, sino de
estar preparado para generar nuevas soluciones a medida
que los problemas se presentan (Resnick,
2007).

Por su parte, formular alternativas, se basa en el primer


principio básico del Pensamiento Lateral propuesto por De
Bono (1970): “cualquier modo de valorar una situación es
sólo uno de los muchos modos posibles de valorarla”. La
búsqueda de alternativas a una situación o problema
parece un proceso típico del pensamiento lógico; sin
embargo, desde el punto de vista de la creatividad no se
busca la mejor alternativa sino la formulación del mayor Ilustración 1-9: Espiral del Pensamiento Creativo diseñada por
número posible de alternativas. Por lo tanto, es el Dr. Mitchel Resnick
conveniente fijar de entrada y poner por escrito, el número
de alternativas que los estudiantes deben plantear. Desde En un comienzo, este proceso lo debe planear y dirigir el
la lógica, por lo general la búsqueda se interrumpe docente. Sin embargo, a medida que los estudiantes lo
cuando se halla una alternativa que parece satisfactoria. interiorizan, aprenden a recorrerla de manera
independiente para desarrollar sus propias ideas,
Como aprestamiento a la realización de proyectos que ponerlas a prueba, desafiar límites y fronteras,
busquen deliberadamente desarrollar la creatividad, es experimentar con alternativas, recibir retroalimentación de
deseable que los estudiantes realicen actividades tales otros y generar nuevas ideas con base en sus
como: hacer asociación de ideas sobre temas ya vistos en experiencias (Resnick, 2007).
clase, elaborar listados de atributos de objetos cotidianos,
buscar al menos 30 usos para cada uno de los objetos Es muy importante que al diseñar las diferentes fases de
cotidianos propuestos, Jugar con Torres de Hanoi de tres un proyecto, en el cual los estudiantes utilizarán un
y cuatro discos y, elaborar figuras con el Tangram, entre ambiente de programación como Scratch o MicroMundos,
otras. Estas actividades permiten evidenciar el estilo de los docentes tengan en cuenta los elementos de la espiral
pensamiento predominante de cada estudiante. Quienes de la creatividad. Por ejemplo, se deben incluir en el
piensan convergentemente tenderán a abordar los proyecto espacios para compartir el trabajo realizado,
problemas de forma lógica, ordenada y a establecer para escuchar y valorar la retroalimentación del grupo a
relaciones comunes; quienes piensan divergentemente, cada trabajo individual y para reflexionar sobre las
tenderán a hacer juicios ilógicos, innovadores y poco posibles mejoras que se pueden realizar con base en la
comunes. retroalimentación recibida.

Para que la Espiral del Pensamiento Creativo funcione,


Espiral del pensamiento creativo los docentes deben promover un ambiente en el que se
Con el fin de promover el desarrollo de la creatividad, esta permita imaginar, transformar, idealizar, desestructurar y
Guía propone utilizar la Espiral del Pensamiento Creativo reestructurar. Un ambiente donde se pueda comunicar,
propuesta por Mitchel Resnick (2007). En esta, los donde haya tolerancia para las reacciones espontáneas
estudiantes imaginan lo que quieren hacer; crean un (López, 2000). Los docentes deben propiciar un ambiente
proyecto basado en sus ideas; juegan con sus ideas y de confianza, en el que sea más importante la cantidad de
creaciones; comparten sus ideas y creaciones con otros y alternativas de solución que generen los estudiantes a un
reflexionan sobre sus experiencias; lo anterior los lleva a problema planteado, que las respuestas correctas. Por
imaginar nuevas ideas y nuevos proyectos. La espiral tanto, debe evitarse a toda costa, la emisión de juicios de
genera un proceso indefinido de mejoramiento continuo. valor negativos ante cualquier alternativa, por ilógica que
parezca.

Adicionalmente, en las diferentes fases de la Espiral, se


debe aprovechar cualquier oportunidad para plantear
problemas inesperados y para solicitar a los estudiantes
que formulen alternativas de solución a cada problema o
situación que se presente. En este mismo sentido, la
práctica indica que en reiteradas ocasiones los
estudiantes plantean a sus docentes situaciones que ellos
desean desarrollar en sus proyectos. Dichas situaciones
se convierten en problemas inesperados que los docentes
Pág.20 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
deben resolver. Estas situaciones las pueden aprovechar aleatoria (se pueden utilizar las instrucciones “rebotar si
los docentes para plantearlas a toda la clase como está tocando un borde” y “número al azar entre 1 y 15
problemas inesperados. grados” como parámetro de la instrucción girar).
Como problema inesperado pedir que se restrinja el
movimiento de manera que se aproxime al
EJEMPLO comportamiento real de cada ser vivo. Por ejemplo, si el
fondo tiene tierra y firmamento, entonces un ser vivo que
Proyecto: La cadena alimentaria no vuela, no se puede mover en el área de la pantalla que
representa el firmamento. Agregar variables para controlar
Estándares MEN que se cubren (Colombia): Explico la dinámica la velocidad a la que se desplaza cada ser vivo. Algunos,
de un ecosistema teniendo en cuenta las necesidades de como las plantas, tendrán velocidad 0.
energía y nutrientes de los seres vivos (cadena alimentaria). 4. Los estudiantes comparten el trabajo realizado con el resto
de la clase y reciben retroalimentación tanto de sus
Descripción: En este proyecto los estudiantes deben compañeros, como del docente.
representar el comportamiento de varios seres vivos en su 5. Atender la retroalimentación suministrada. Hacer la
respectivo ecosistema, teniendo en cuenta tanto necesidades programación correspondiente para que cuando a un ser
como cantidades disponibles de energía y nutrientes (cadena vivo lo toque otro al que le sirve de alimento, el primero
alimentaria). Para ello, deben elaborar una simulación, en desaparezca (como si se lo hubiera comido).
MicroMundos o en Scratch, de una cadena alimentaria 6. El problema inesperado ahora es que debe programarse la
teniendo en cuenta seres productores, hervivoros, carnívoros y aparición de varios seres vivos iguales, ubicados en
omnivoros. diferentes posiciones de la pantalla (por ejemplo, si uno de
los seres vivos de la animación es un conejo, copiar
Fases del proyecto: entonces el objeto conejo, al menos tres veces, pues en un
1. Los estudiantes deben imaginar un ecosistema que ecosistema rara vez se encuentra un solo animal de cada
contenga por lo menos cuatro seres vivos. Luego deben especie). Solicitar a los estudiantes, al menos dos
dibujar o importar los seres vivios que imaginaron. alternativas, para realizar esta tarea. Las apariciones
Además, deben dibujar el escenario que representa el deben hacerse de acuerdo a una tasa de reproducción
ecosistema. establecida para cada uno de los seres vivos. Por ejemplo,
En este punto, el docente debe estimular la reflexión para se reproducen más rápidamente los conejos que los
que ellos verifiquen que el ecosistema que dibujaron zorros.
corresponde con los seres vivientes que en la simulación Se puede destinar un tiempo de la clase para investigar la
incluyeron en este. Un problema inesperado puede tasa de reproducción de cada uno de los seres vivos que
plantearse mediante la pregunta ¿todos los seres vivos se incluyen en la animación.
que representaste viven en ese ecosistema? Si la respuesta 7. Compartir con el resto de la clase el trabajo realizado y
es negativa, deben plantear por escrito al menos tres recibir retroalimentación de los compañeros.
alternativas de solución (por ejemplo: cambiar el 8. Realizar los últimos ajustes al funcionamiento de la
ecosistema, cambiar alguno de los seres vivos, cambiarlo simulación y agregar controles para manipular las tasas de
todo, etc). reproducción y/o la velocidad de desplazamiento para
Además, cada ser vivo debe tener un tamaño cada ser vivo.
proporcional en relación a los otros seres y elementos 9. Socializar con el resto de la clase el trabajo finalizado.
del ecosistema. En caso de ser necesario, se debe
destinar un lapso de tiempo de la clase para
investigar ,en Internet o en la Biblioteca Escolar, qué En este ejemplo hay que prestar atención a lo siguiente:
seres vivos habitan en el ecosistema que dibujaron.
En la fase 3, se debe crear una variable por cada ser vivo,
2. Esta fase inicia con otro problema inesperado: “La tarea
que controle la velocidad a la cual este se va a mover (los
quedó mal planteada y hay que corregirla, de los cuatro
que no se desplazan, como las plantas, deben
seres vivos que se crearon en la fase anterior, debe haber inicializarse con valor 0). Por lo regular, esta condición se
por lo menos un ser vivo de cada tipo: productor, implementa con el comando “esperar x segundos”; sin
herbívoro, carnívoro y omnivoro”. embargo, nótese que si el valor de la variable aumenta,
Los estudiantes deben investigar qué seres vivos de cada tipo en lugar de aumentar la velocidad, lo que hace es
habitan en el ecosistema que dibujaron. Luego, dibujar o disminuirla ya que el tiempo de espera será mayor. Para
importar los seres vivos correctos para que se cumpla la limitar el desplazamiento de un ser vivo a cierta región de
condición planteada en la tarea rectificada. No es la pantalla, se debe hacer un control permanente (dentro
necesario que eliminen los seres vivos que habían creado de un por siempre) con el comando “posición y de
en la fase 1, siempre y cuando correspondan al objeto1” ó “posición x de objeto 1”. Si el ser supera ese
ecosistema. valor, entonces se lo desplaza en una posición menor en
3. A continuación, deben programar el desplazamiento de los el eje x o y, y se gira 45 grados.
seres vivos por todo el espacio disponible y de manera
Pág.21 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
UNIDAD 2: ALGORITMOS, CONCEPTOS BÁSICOS

¿QUÉ ES UN ALGORITMO?
En la fase 6 es recomendable crear cada uno de los seres se puede encontrar en procesos naturales de los cuales
vivos (ejemplo, el conejo) y hacerle toda la programación muchas veces no se es conciente. Por ejemplo, el
para que se comporte de acuerdo a lo esperado. Una vez proceso digestivo es un concepto intuitivo de algoritmo
funcione correctamente la programación, se copia varias con el que se convive a diario sin que haga falta un
veces el ser vivo (ejemplo, el conejo) y se ubica en definición “matemática” del mismo. Tener claro el proceso
posiciones diferentes del escenario. Además, cada copia digestivo, no implica que los alimentos consumidos nutran
del ser vivo debe aparecer en momentos diferentes para más. La familiaridad de lo cotidiano impide a las personas
simular la tasa de reproducción. ver muchos algoritmos que se suceden a su alrededor.
Procesos, rutinas o biorritmos naturales como la
Por último, bien sea que los estudiantes utilicen el entorno gestación, las estaciones, la circulación sanguínea, los
de programación en Ciencias Naturales para comunicar ciclos cósmicos, etc, son algoritmos naturales que
resultados obtenidos en procesos de indagación y/o generalmente pasan desapercibidos.
experimentación o para elaborar simulaciones de diversos
fenómenos naturales, los docentes deben promover La rama del saber que mayor utilización ha hecho del
comportamientos personales y sociales fundamentales enfoque algorítmico es las matemáticas. Durante miles de
para el funcionamiento de la Espiral del Pensamiento años el ser humano se ha esforzado por abstraer la
Creativo, tales como: estructura de la solución de problemas con el fin de
• Escuchar activamente a compañeros y compañeras. determinar claramente cuál es el camino seguro, preciso y
• Reconocer puntos de vista diferentes y compararlos rápido que lleva a esas soluciones. Son abundantes los
con los propios. ejemplos: máximo común divisor, teorema de Pitágoras,
• Reconocer y aceptar el escepticismo de los demás áreas de figuras geométricas, división, suma de números
compañeros ante la información que se presenta. fraccionarios, etc. Todos estos algoritmos matemáticos
• Cumplir con las funciones asignadas cuando se independizan los datos iniciales del problema de la
trabaja en grupo. estructura de su solución, lo que permite su aplicación con
• Respetar y cuidar los seres vivos y objetos presentes diferentes conjuntos de datos iniciales (variables).
en el entorno.

EJEMPLO
Consideremos el algoritmo de Euclides para hallar el Máximo
Común Divisor (MCD) de dos números enteros positivos dados.
Obsérvese que no se especifica cuáles son los dos números,
pero si se establece claramente una restricción: deben ser
enteros y positivos.

Investigaciones realizadas en Educación Básica (en


ALGORITMO EN SEUDOCÓDIGO
Paso 1: Inicio. ambientes constructivistas) recomiendan incluir la
Paso 2: Leer los dos números (“a” y “b”). Avanzar al paso 3. solución de problemas en el currículo de matemáticas de
Paso 3: Comparar “a” y “b” para determinar cuál es mayor. Avanzar forma que provea oportunidades a los estudiantes para
al paso 4. crear sus propios algoritmos y generalizarlos a un
Paso 4: Si “a” y “b” son iguales, entonces ambos son el resultado conjunto específico de aplicaciones (Wilson, Fernández &
esperado y termina el algoritmo. En caso contrario, avanzar al paso Hadaway, 1993). Los estudiantes deben reflexionar sobre
5. sus habilidades de planificación y sobre cómo pueden
Paso 5: Si “a” es menor que “b”, se deben intercambiar sus valores. utilizar esas habilidades en diferentes contextos. Por otra
Avanzar al paso 6; si “a” no es menor que “b”, avanzar al paso 6. parte, en un estudio sobre Logo (Clements & Meredith,
Paso 6: realizar la operación “a” menos “b”, asignar el valor de “b” a 1992), se concluye que cuando los maestros enfatizaron
“a” y asignar el valor de la resta a “b”. Ir al paso 3. en la elaboración de un plan para desarrollar un
procedimiento matemático (este incluía el uso de
.
estrategias como dividir conceptos grandes en otros más
Ilustración 2-1: Segunda fase del ciclo de programación.
pequeños) encontraron que los estudiantes empezaron a
utilizar con mayor frecuencia estrategias de planificación y
Luego de analizar detalladamente el problema hasta de dibujo para resolver problemas matemáticos en los
entenderlo completamente, se procede a diseñar un cuales no utilizaban Logo.
algoritmo (trazar un plan) que lo resuelva por medio de
pasos sucesivos y organizados en secuencia lógica. El
concepto intuitivo de algoritmo (procedimientos y reglas)
Pág.22 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
Dato Curioso 4. Girar la bombilla fundida hacia la izquierda hasta
La palabra Algoritmo tiene su origen en el nombre del soltarla
matemático Persa "Mohamed ibn Musa al Khwarizmi" (825 5. Enroscar la bombilla nueva en el plafón hasta
d.C.). Su apellido fue traducido al latín como Algorismus y apretarla
posteriormente paso al español como Algoritmo. Khwarizmi fue 6. Bajar de la escalera
bibliotecario en la corte del califa alMamun y astrónomo en el 7. Fin
observatorio de Bagdad. Sus trabajos de álgebra, aritmética y
tablas astronómicas adelantaron enormemente el pensamiento
matemático y fue el primero en utilizar la expresión al-yabr (de
la que procede la palabra álgebra). Su trabajo con los En términos generales, un Algoritmo debe ser:
algoritmos introdujo el método de cálculo utilizando la • Realizable: El proceso algorítmico debe terminar
numeración arábiga y la notación decimal. después de una cantidad finita de pasos. Se dice que
un algoritmo es inaplicable cuando se ejecuta con un
conjunto de datos iniciales y el proceso resulta infinito
En el ámbito de la computación, los Algoritmos son una o durante la ejecución se encuentra con un obstáculo
herramienta que permite describir claramente un conjunto insuperable sin arrojar un resultado.
finito de instrucciones, ordenadas secuencialmente y • Comprensible: Debe ser claro lo que hace, de forma
libres de ambigüedad, que debe llevar a cabo un que quien ejecute los pasos (ser humano o máquina)
computador para lograr un resultado previsible. Vale la sepa qué, cómo y cuándo hacerlo. Debe existir un
pena recordar que un programa de computador consiste procedimiento que determine el proceso de ejecución.
de una serie de instrucciones muy precisas y escritas en • Preciso: El orden de ejecución de las instrucciones
un lenguaje de programación que el computador entiende debe estar perfectamente indicado. Cuando se
(Logo, Java, Pascal, etc). ejecuta varias veces, con los mismos datos iniciales,
el resultado debe ser el mismo siempre. La precisión
En resumen, un Algoritmo es una secuencia ordenada de implica determinismo.
instrucciones, pasos o procesos que llevan a la solución
de un determinado problema. Los hay tan sencillos y Un aspecto muy importante sobre el cual los estudiantes
cotidianos como seguir la receta del médico, abrir una deben reflexionar es la ambigüedad del lenguaje natural
puerta, lavarse las manos, etc; hasta los que conducen a que utilizan para comunicarse diariamente con sus
la solución de problemas muy complejos. semejantes. La informalidad o formalidad en la
comunicación depende de elementos como vocabulario,
uso de comodines en lugar de vocablos precisos, uso de
adverbios coloquiales en lugar de adverbios formales, etc.
EJEMPLO
Es fundamental que los estudiantes aprendan a
Un procedimiento que realizamos varias veces al día
diferenciar entre comunicación informal y comunicación
consiste en lavarnos los dientes. Veamos la forma de
formal, cuya principal característica es la precisión. Los
expresar este procedimiento como un Algoritmo:
algoritmos no admiten ningún tipo de ambigüedad ya que
1. Tomar la crema dental
los lenguajes de programación tienen un vocabulario
2. Destapar la crema dental restringido y preciso. Esto exige la utilización de un
3. Tomar el cepillo de dientes conjunto determinado de palabras, mandos o primitivas en
4. Aplicar crema dental al cepillo cualquiera de los procedimientos que se elaboren.
5. Tapar la crema dental
6. Abrir la llave del lavamanos ACTIVIDAD
7. Remojar el cepillo con la crema dental Discutir en parejas el ejemplo de la bombilla y proponer
8. Cerrar la llave del lavamanos algunas mejoras. Luego, un voluntario pasa al tablero y escribe
9. Frotar los dientes con el cepillo un Algoritmo con participación de toda la clase.
10. Abrir la llave del lavamanos
11. Enjuagarse la boca
12. Enjuagar el cepillo
13. Cerrar la llave del lavamanos Pensamiento Algorítmico
14. Secarse la cara y las manos con una toalla Cuando se habla de algoritmos, con frecuencia aparecen
tres tipos de pensamiento que generalmente se
relacionan con ellos y que se utilizan indiscriminadamente
EJEMPLO como sinónimos: Pensamiento Computacional,
El ejemplo de cambiar una bombilla (foco) fundida es uno de Pensamiento Algorítmico y Pensamiento Procedimental.
los más utilizados por su sencillez para mostrar los pasos de un Por lo tanto es importante puntualizar a qué se refiere
Algoritmo: cada uno de estos pensamientos.
1. Ubicar una escalera debajo de la bombilla fundida
2. Tomar una bombilla nueva Según Moursund (2006), el pensamiento computacional
3. Subir por la escalera hace referencia a la representación y solución de
problemas utilizando inteligencia humana, de máquinas o
Pág.23 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
de otras formas que ayuden a resolver el problema. El guardarlo en el disco duro) es una tarea relativamente
pensamiento algorítmico se refiere al desarrollo y uso de sencilla. Pero el proyecto puede aumentar su complejidad
algoritmos que puedan ayudar a resolver un tipo si se añaden funciones para dar formato al texto (fuentes,
especifico de problema o a realizar un tipo especifico de tamaño y características especiales). Posteriormente el
tarea. Por su parte, el pensamiento procedimental se proyecto puede crecer si se agregan funcionalidades para
ocupa del desarrollo y utilización de procedimientos manejar imágenes y tablas. Al igual que en este ejemplo,
diseñados para resolver un tipo especifico de problema o se pueden diseñar proyectos de clase interesantes para
para realizar un tipo especifico de tarea, pero que no mantener motivados a los estudiantes y cuyas tareas y
necesariamente, siempre resulta exitoso. retos sean progresivos en complejidad; que cada nuevo
reto parta de lo construido con anterioridad. En resumen,
Por otra parte y de acuerdo con un reporte del Consejo los procedimientos son un tipo particular de tarea que
Nacional de Investigación de Estados Unidos (National busca solucionar problemas específicos y al desarrollarlos
Research Council, NRC, 2004), conocido como “Being se ponen en juego los pensamientos algorítmico y
Fluent with Information Technology”, el Pensamiento procedimental.
Algorítmico incluye elementos tales como:
descomposición funcional, repetición (iteración y/o David Moursund (2006) se basó en sus propias
recursión), organización de datos (registro, campo, experimentaciones y en la teoría de los cuatro estados de
arreglo, lista, etc), generalización y parametrización, desarrollo cognitivo planteada por Piaget para proponer
diseño por descomposición de un problema en partes más un planteamiento que amarra la computación con una
pequeñas y manejables (top-down) y refinamiento. escala de desarrollo cognitivo en la que se da bastante
protagonismo al desarrollo del pensamiento algorítmico en
El Pensamiento Algorítmico está fuertemente ligado al los niños. Según Moursund (2006) en la etapa de las
pensamiento procedimental requerido en la programación operaciones concretas los niños empiezan a manipular
de computadores; sin embargo, su desarrollo puede lógica y sistemáticamente símbolos en un computador y
conducir a los estudiantes a aproximarse guiada y aprenden a apoyarse en software para resolver un rango
disciplinadamente a los problemas de forma que este amplio de problemas y tareas de tipo general. De esta
pueda transferirse a otros ambientes diferentes a los de la manera, ganan habilidad considerable tanto en la
programación. En pocas palabras, la programación de utilización de lenguajes como Scratch y MicroMundos,
computadores aporta al ámbito escolar un laboratorio para como en la manipulación de ambientes gráficos.
desarrollar habilidades indispensables en la vida real del Posteriormente, en la etapa de operaciones formales, los
Siglo XXI. estudiantes demuestran su inteligencia por medio del uso
lógico de símbolos relacionados con conceptos
Una diferencia notoria entre un algoritmo y un programa abstractos.
es que el algoritmo incorpora las características
estructurales básicas de la computación,
independientemente de los detalles de su Aprestamiento
implementación; mientras que un programa tiene un Una forma motivadora y divertida de aprestamiento a la
conjunto específico de detalles para resolver un problema. programación de computadores y que puede ayudar a los
Se puede observar que una técnica de solución estudiantes a desarrollar los pensamientos algorítmico y
(correspondiente al algoritmo) se puede utilizar en procedimental consiste en que ellos realicen actividades
diferentes situaciones problemáticas con juegos de estrategia como “Sokoban”, “Misión
(correspondiente a los programas). De manera inversa, se Escape”, “Tetris” e “Implode”, así como ejercicios de
espera que una solución exitosa de problemas incorpore Razonamiento Abstracto. En Sokoban se deben llevar las
procesos generales que son independientes de las piedras hacia el lugar donde aparecen los prismas y para
situaciones específicas (NRC, 2004). Esto se conoce lograrlo, estas se deben empujar con el personaje
como experiencias de vida y los estudiantes deben teniendo cuidado en los movimientos que se hacen para
adquirirlas en su paso por la educación básica y media no bloquear el juego ya que el personaje solo puede
para desempeñarse adecuadamente en su vida diaria. empujar una piedra a la vez y no puede moverlas hacia
atrás, siempre hacia delante. Hay disponibles varias
Este es todo un reto para la educación, reto en el que la versiones de Sokoban para descargar y para jugar en
programación de computadores puede hacer una línea.
contribución positiva. Un programa consiste de uno o más
procedimientos con instrucciones paso a paso que
pueden ejecutarse en un computador; por lo tanto, utilizar
el diseño de procedimientos que solucionen o ayuden a
solucionar problemas con diferentes niveles de
complejidad es un recurso que puede aprovechar el
docente para captar el interés de los estudiantes en
actividades de programación. Por ejemplo, asignar la
tarea de diseñar un procesador de texto básico (ingreso
del texto mediante teclado, mostrarlo en la pantalla y

Pág.24 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


1
2

Ilustración 3: El personaje ya ha movido los obstáculos (1, 2,


3) y está a punto de alcanzar la baldosa café que le permite
avanzar al nivel siguiente.

La ilustración 2 muestra el comienzo del nivel tres del


juego (cada nivel es más difícil que el anterior). El
personaje de ”Chicos del Barrio” se encuentra en el punto
Ilustración 1: El marcianito debe mover la cuatro piedras de inicio y debe encontrar el mejor camino para llegar a la
redondas hasta ubicarlas sobre los rombos morados.
baldosa café de la parte inferior del cuadrado. Para
http://www.matejoven.mendoza.edu.ar/matejue/juegos/sokoban/
sokoban.htm
lograrlo, debe mover las cajas precisas (marcadas con 1,
2 y 3), en la dirección correcta y en el orden adecuado. En
la ilustración 3 se pueden apreciar las cajas movidas y el
Por su parte, el juego “Misión Escape” de la serie
personaje a punto de alcanzar la baldosa café que le
“Chicos del Barrio” de Cartón Networks
permite avanzar al nivel siguiente.
(http://www.cartoonnetworkla.com/spanish/) se puede
utilizar para mejorar la habilidad de los estudiantes para
El razonamiento abstracto es otro tipo de actividad de
llevar a cabo tareas en forma ordenada y lógica. En este
aprestamiento que se puede llevar a cabo con los
juego, los participantes deben encontrar la mejor vía de
estudiantes para desarrollar los pensamientos algorítmico
escape a través de la casa del árbol y recorrerla en la
y procedimental. El razonamiento abstracto básicamente
menor cantidad de movimientos posibles. Para despejar el
es un proceso de ordenación de objetos, situaciones o
camino de objetos hay que seguir las reglas del juego y si
sucesos en secuencias lógicas de acuerdo con algún
no se mueven los objetos precisos, en la dirección
criterio previamente establecido. Para ello se debe
correcta y en el orden adecuado, el camino se puede
comprender e interpretar los cambios en función de la
bloquear.
forma cómo varían las características de interés de los
objetos o sucesos estudiados. Todo cambio conduce a
una alteración de algún aspecto del objeto, suceso o
situación (Sánchez, 1993).

Actividades como la siguiente exige de los estudiantes un


alto grado de observación para determinar qué es lo que
2 1 cambia (figura, forma, posición, etc) y cuál es el patrón de
cambio (dirección, tamaño, color, etc):
3

Ilustración 2: Comienzo del nivel tres del juego “Misión


Escape” de
Cartoon Network. El personaje debe alcanzar la baldosa café
que aparece en la parte inferior del cuadrado.

Adaptado de “Razonamiento Abstracto”, Serrano (1998)

Por su parte, juegos como Guido van robot, Tetris,

Pág.25 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


Implode y el mismo Sokoban, además de la versión para ___ El pez se traga el anzuelo.
Computadores Personales (PCs), ofrecen versiones para ___ Enrollar el sedal.
los computadores OX de la iniciativa OLPC (One Laptop ___ Tirar el sedal al agua.
Per Child). Esto es importante ya que cada día más niños ___ Llevar el pescado a casa.
en América Latina disponen de estos equipos y los utilizan ___ Quitar el Anzuelo de la boca del pescado.
como herramienta para el aprendizaje.
___ Poner carnada al anzuelo.
___ Sacar el pescado del agua.

ACTIVIDAD ACTIVIDAD
Invitar a los estudiantes a reflexionar sobre el lenguaje que Solicitar a los estudiantes que traigan para la próxima clase los
utiliza diariamente para comunicarse con sus padres, siguientes elementos:
hermanos, profesores y compañeros. ¿Utiliza un lenguaje • Arroz, lentejas o maíz (medio puñado).
preciso? ¿utiliza vocablos corrientes?
• Una banda de caucho.
• Un vaso plástico.
ACTIVIDAD
• Un trozo de papel resistente (15cm x 15cm
A diferencia de los seres humanos que realizan actividades sin aproximadamente).
detenerse a pensar en los pasos que deben seguir, los
computadores son muy ordenados y necesitan que el Divida los estudiantes en dos grupos y suministre a un grupo las
programador les especifique cada uno de los pasos necesarios siguientes instrucciones para elaborar “Maracas”:
y su orden lógico de ejecución.
1. Recortar del papel resistente un trozo más grande que la
Listar una serie de pasos para realizar una tarea y presentarlos boca del vaso plástico.
a los estudiantes en forma desordenada para que ellos los
2. Introducir el arroz, las lentejas o el maíz en el vaso (cada
ordenen.
elemento produce una sonoridad diferente).
Por ejemplo, ordenar los pasos para pescar:
3. Poner sobre la boca del vaso el papel.
4. Fijar el papel al vaso con ayuda de la banda de caucho.
5. Asegurarse que la boca del vaso quede sellada.
Suministre al otro grupo de estudiantes las siguientes instrucciones para elaborar
“Maracas”: 1. Recortar del papel resistente un trozo más grande que la
boca del vaso plástico.
2. Poner sobre la boca del vaso el papel.
3. Fijar el papel al vaso con ayuda de la banda de caucho.
4. Asegurarse que la boca del vaso quede sellada. 5. Introducir el arroz, las lentejas o el maíz en el vaso (cada
elemento produce una sonoridad diferente). Las instrucciones dadas a ambos grupos son las mismas. Sin
embargo, esta actividad ilustra muy claramente la importancia que tiene el orden en que se ejecutan las instrucciones de un
algoritmo.
Dato Curioso
En 1936, el lógico y matemático inglés Alan Turing (1291-1954), construyó
la primera máquina conceptual como una herramienta matemática para
estudiar los procesos algorítmicos. Un cálculo en una máquina de Turing
consta de una secuencia de pasos que ejecuta su unidad de control. Si un
problema se puede resolver en la máquina de Turing entonces es
algorítmico, y recíprocamente si un problema tiene solución algorítmica,
entonces se puede resolver en la máquina de Turing. (Adaptado de ¿Qué
es realmente un Algoritmo?, Escuela de
Ingeniería, Colombia.)

A continuación se presentan conceptos básicos que los estudiantes deben


conocer (y dominar) antes de iniciar el aprendizaje de las estructuras básicas
(secuencial, decisión y repetitiva) del lenguaje algorítmico y de programación
que abordaremos en la Unidad 3.

Pág.26 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


.

REPRESENTACIÓN DE ALGORITMOS hasta que las proposiciones generales en español como


las del ejemplo anterior se puedan codificar en el lenguaje
Los Algoritmos se puede expresar de muchas maneras, seleccionado para hacer la programación (en el caso de
pero en esta guía se tratarán solo dos formas: esta guía será Logo).
Seudocódigo y Diagrama de Flujo. En Seudocódigo la
secuencia de instrucciones se representa por medio de Utilizar Diagramas de Flujo para representar un algoritmo
frases o proposiciones, mientras que en un Diagrama de tiene claras ventajas, especialmente cuando son
Flujo se representa por medio de gráficos. construidos por estudiantes de básica y media.
Numerosas investigaciones han mostrado que el
EJEMPLO Aprendizaje Visual es uno de los mejores métodos para
Elaborar un Algoritmo para calcular el área de cualquier triángulo enseñar habilidades del pensamiento. Las técnicas que
rectángulo y presentar el resultado en pantalla. utilizan formas graficas para representar ideas e
información ayudan a los estudiantes a clarificar su
SEUDOCÓDIGO pensamiento, y a procesar, organizar y priorizar nueva
Paso 1: Inicio información. Los diagramas visuales revelan patrones,
Paso 2: Asignar el número 2 a la constante "Div" interrelaciones e interdependencias además de estimular
Paso 3: Conocer la base del triángulo y guardarla en la variable el pensamiento creativo.
"Base"
Paso 4: Conocer la altura del triángulo y guardarla en la variable La utilización de Diagramas ayuda a los estudiantes a:
"Altura" • Clarificar el pensamiento : Ellos pueden ver cómo se
Paso 5: Guardar en la variable "Area" el valor de multiplicar "Base" conectan los procesos y se dan cuenta de cómo estos
por "Altura" se pueden organizar o agrupar para darles el orden
Paso 6: Guardar en la variable "Area" el valor de dividir "Area" lógico correcto.
entre "Div" • Identificar pasos erróneos : Sobre un diagrama es
Paso 7: Reportar el valor de la variable "Area" más fácil identificar los cambios que se requieren para
Paso 8: Final el correcto funcionamiento de un programa de
DIAGRAMA DE FLUJO computador que hacerlo sobre el código.

Los Diagramas de Flujo son una de las técnicas más


utilizadas para representar gráficamente la secuencia de
instrucciones de un Algoritmo. Estas instrucciones están
compuestas por operaciones, decisiones lógicas y ciclos
repetitivos, entre otros. La solución de un problema puede
contener varios conjuntos de instrucciones
(procedimientos o métodos) que tienen como finalidad
ejecutar cada uno de los procesos necesarios para llegar
a la solución de un problema a partir de los datos
disponibles (estado inicial).

Las ventajas de diseñar un Diagrama de Flujo antes de


empezar a generar el código de un programa (Rojas &
Ñacato, 1980) son, entre otras:
• Forzar la identificación de todos los pasos de una
solución de forma clara y lógica;
• Establecer una visión amplia y objetiva de la solución;
Ilustración 2-4: Algoritmo para calcular el área de cualquier • Verificar si se han tenido en cuenta todas las
triángulo rectángulo posibilidades;
• Comprobar si hay procedimientos duplicados;
El seudocódigo está compuesto por proposiciones • Representar gráficamente una solución (es más simple
informales en español que permiten expresar hacerlo con gráficas que mediante palabras);
detalladamente las instrucciones que llevan desde un • Facilitar a otras personas la comprensión de la
estado inicial (problema) hasta un resultados deseado secuencia lógica de la solución planteada;
(solución). Por lo regular, los algoritmos se escriben por • Posibilitar acuerdos con base en la aproximación
refinamiento: se escribe una primera versión que luego se común a una solución de un problema, resolver
descompone en varios subproblemas (el número depende ambigüedades o realizar mejoras;
de la complejidad del problema) independientes entre sí.
Si es necesario se va refinando cada vez las instrucciones

Pág.27 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


• Establecer posibles modificaciones (resulta más fácil • Agilizar la codificación (traducción) del algoritmo en un
depurar un programa con el diagrama que con el lenguaje de programación;
listado del código); • Servir como elemento de documentación de la
solución del problema.

ACTIVIDAD
Basándose en la última actividad planteada en la unidad 1, elaborar
un algoritmo en seudocódigo para cada uno de los siguientes problemas
(se puede utilizar una copia de la plantilla que aparece en el anexo
7):
1. Hallar el perímetro de un cuadrado cuyo lado mide 5 cm
2. Hallar el área de un cuadrado cuyo lado mide 5 cm.
3. Hallar uno de los lados de un rectángulo cuya área es de 15 cm2 y uno de sus lados mide 3 cm.
4. Hallar el área y el perímetro de un círculo cuyo radio mide 2 cm.
5. Hallar el área de un pentágono regular de 6 cm de lado y con 4 cm de apotema.

SIMBOLOGÍA DE LOS DIAGRAMAS DE FLUJO

La estandarización de los símbolos para la elaboración de Diagramas de Flujo tardó varios años. Con el fin de evitar la
utilización de símbolos diferentes para representar procesos iguales, la Organización Internacional para la Estandarización
(ISO, por su sigla en inglés) y el Instituto Nacional Americano de Estandarización (ANSI, por su sigla en inglés),
estandarizaron los símbolos que mayor aceptación tenían en 1985. Los siguientes son los principales símbolos para elaborar
Diagramas de Flujo:

Inicio/Final Decisión
Se utiliza para indicar el inicio y el final Indica la comparación de dos datos y
de un diagrama; del Inicio sólo puede dependiendo del resultado lógico

salir una línea de flujo y al Final

sólo debe llegar una línea. (decisión de seguir un

camino del falso o verdadero) se toma la diagrama u

otro.

Entrada General Iteración


Entrada/Salida de datos en General (en Indica que una instrucción o grupo de
esta guía, solo la usaremos para la instrucciones deben ejecutarse varias
Entrada). veces.

Entrada por teclado Salida Impresa


Instrucción de entrada de datos por Indica la presentación de uno o varios teclado.
Indica que el computador debe resultados en forma impresa. esperar a que el
usuario teclee un dato
que se guardará en una variable o
constante.
Llamada a subrutina Salida en Pantalla
Indica la llamada a una subrutina o Instrucción de presentación de
procedimiento determinado. mensajes o resultados en pantalla.

Acción/Proceso General Conector


Indica una acción o instrucción general Indica el enlace de dos partes de un que debe
realizar el computador diagrama dentro de la misma página.

Pág.28 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


(asignaciones, operaciones aritméticas, cambios de valores de variables,

etc).

Flujo Conector
Indica el seguimiento lógico del Indica el enlace de dos partes de un diagrama. También indica
el sentido de diagrama en páginas diferentes. ejecución de las operaciones.

El Diagrama de Flujo es una herramienta gráfica valiosa para la representación esquemática de la secuencia de
instrucciones de un algoritmo o de los pasos de un proceso. Se recomienda consultar el siguiente componente curricular que
apoya la elaboración de Diagramas de Flujo: http://www.eduteka.org/modulos.php?catx=4&idSubX=124.

REGLAS PARA LA ELABORACIÓN DE DIAGRAMAS DE FLUJO

Cuando el algoritmo se desea expresar en forma de


diagrama de flujo, se deben tener en cuenta algunas
reglas o principios básicos para su elaboración (Rojas &
Ñacato, 1980):
• Poner un encabezado que incluya un título que Incorrecto Correcto
identifique la función del algoritmo; el nombre del Ilustración 2-5: Cruce de líneas de flujo
autor; y la fecha de elaboración;
• Sólo se pueden utilizar símbolos estándar (ISO 5807); Los Diagramas se pueden dibujar utilizando lápiz y papel,
• Los diagramas se deben dibujar de arriba hacía abajo en cuyo caso resultan muy útiles las plantillas plásticas
y de izquierda a derecha; como la de la ilustración 2-6. Estas descargan al
• La ejecución del programa siempre empieza en la estudiante de la preocupación por lograr uniformidad en el
parte superior del diagrama; dibujo.
• Los símbolos de “Inicio” y “Final” deben aparecer solo
una vez;
• La dirección del flujo se debe representar por medio de Ilustración 2-6: Plantilla StandardGraph ISO 5807 para la
flechas (líneas de flujo); elaboración manual de Diagramas de Flujo.
• Todas las líneas de flujo deben llegar a un símbolo o a
otra línea; También existe software especial para elaborar Diagramas
• Una línea de flujo recta nunca debe cruzar a otra. de Flujo en forma rápida y fácil. Los programas para esta
Cuando dos líneas de flujo se crucen, una de ellas tarea permiten a los estudiantes:
debe incluir una línea arqueada en el sitio donde cruza • Almacenar digitalmente los diagramas construidos;
a la otra (ilustración 2-5); • Introducirles modificaciones fácilmente;
• Se deben inicializar las variables que se utilicen o • Imprimir copias de los diagramas para compartirlos
permitir la asignación de valores mediante consulta al con compañeros o documentar sus trabajos;
usuario; • Exportarlos en varios formatos gráficos
• Las bifurcaciones y ciclos se deben dibujar procurando para utilizarlos en otros programas;
una cierta simetría; • Alinear y organizar los símbolos automáticamente;
• Cada rombo de decisión debe tener al menos dos • Agregar colores, tamaño de letra y sombreados para
líneas de salida (una para SI y otra para NO); lograr una apariencia profesional;
• Las acciones y decisiones se deben describir • Ahorrar tiempo en la modificación de un diagrama ya
utilizando el menor numero de palabras posible; sin que no es necesario hacer todo
que resulten confusas o poco claras; el dibujo nuevamente;
• Si el Diagrama se vuelve complejo y confuso, es mejor
utilizar símbolos conectores para reducir las líneas de En las siguientes direcciones de Internet se puede
flujo; encontrar información de software para la elaboración de
• Todo el Diagrama debe ser claro, ordenado y fácil de Diagramas de Flujo:
recorrer; • Eduteka – Diagramas de Flujo
• El Diagrama se debe probar recorriéndolo con datos http://www.eduteka.org/modulos.php?catx=4&idSubX=117
iniciales simples (prueba de escritorio). • GraFI-co
http://www.eduteka.org/pdfdir/graFIco.rar
• SmartDraw http://www.smartdraw.com
• WinEsquema
http://www.softonic.com/ie/27771/WinEsquema
Pág.29 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
• Dia Win32 Installer http://www.softonic.com/ie/33781/dia
• DFD 1.0 http://www.softonic.com/ie/16035/DFD
• Paraben's Flow Charter
http://www.paraben.com/html/flow.html
• Edraw Flowchart http://www.edrawsoft.com/flowchart.php
• Novagraph Chartist
http://www.tucows.com/preview/289535.html
• Flow Charting 6 http://www.patton-patton.com
• OrgPlus http://www.tucows.com/preview/281861.html
• Antechinus Draw Magic
http://www.tucows.com/preview/254904.html

Pág.30 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


ACTIVIDAD matemático Pierre Fermat, 1601-1665), para averiguar si se
Basándose en la actividad anterior, convertir los trataba de un número primo. Al cabo de 10 días, el resultado
algoritmos elaborados en seudocódigo en diagramas fue "NO". Este es el cálculo realizado por un computador en el
de flujo: 1. Hallar el área de un cuadrado cuyo lado que se ha tardado más en dar una respuesta de "sí" o "no".
mide 5 cm. (Libro Gunness de los Records 2002)
2. Hallar uno de los lados de un rectángulo cuya área es de 15
cm2 y uno de sus lados mide 3 cm.
3. Hallar el área y el perímetro de un círculo cuyo radio mide 2 Para avanzar en el tema de los Algoritmos resulta
cm. indispensable que los estudiantes comprendan algunos
4. Hallar el área de un pentágono regular de 6 cm de lado y con conceptos básicos (variables, constantes, identificadores,
4 cm de apotema. funciones, operadores, etc), los cuales serán
indispensables tanto para diseñar algoritmos como para
traducirlos a un lenguaje de programación, cualquiera que
Dato Curioso este sea (Logo, Java, Visual Basic, etc).
En el año 1986, se introdujo en el supercomputador CRAY-2 la cifra
2^220+1, o número de Fermat 20 (que debe su nombre al

CONCEPTOS BÁSICOS DE PROGRAMACIÓN

los dos puntos significan “no quiero que ejecutes el


Variables comando nombreVariable; quiero el valor almacenado en
nombreVariable”.
Para poder utilizar algoritmos con diferentes conjuntos de
datos iniciales, se debe establecer una independencia
clara entre los datos iniciales de un problema y la Las variables Globales se crean con los comandos da o
estructura de su solución. Esto se logra mediante la nombra. Estas variables solo pierden su valor cuando se
utilización de Variables (cantidades que se suelen denotar cierra MicroMundos o cuando se borran con el comando
con letras –identificadores- y que pueden tomar cualquier bnombres.
valor de un intervalo de valores posibles).
En Scratch, se debe hacer clic en el botón “Variables” de
En programación, las Variables son espacios de trabajo la paleta de bloques.
(contenedores) reservados para guardar datos (valores).
El valor de una Variable puede cambiar en algún paso del
Algoritmo o permanecer invariable; por lo tanto, el valor
que contiene una variable es el del último dato asignado a
esta. En el Algoritmo de la Ilustración 2-4, "área" es un
ejemplo de Variable; en el paso 5 se guardó en ella el
resultado de multiplicar "base" por "altura" y en el paso 6
se utilizó nuevamente para guardar el valor de dividir su
propio contenido ("área") entre la Constante "div".

MicroMundos ofrece tres tipos de variables: Locales,


Globales y de Estado. Las primeras retienen su valor el
tiempo que dure la ejecución del procedimiento en el cual
se utiliza. Las variables Locales se pueden crear con las
primitivas asigna y local o en la línea del título de un
procedimiento.

En MicroMundos se utiliza el comando da para asignar un


valor a una variable o constante. La sintaxis es: da
“nombreVariable valor
que es equivalente a la forma nombreVariable=Valor que Luego se hace clic en el botón “Nueva variable” y se
se utiliza en la mayoría de los lenguajes de programación. asigna un nombre a la variable, en este caso “Puntaje”.
Cuando se genera una variable, aparecen los bloques
Para utilizar el valor almacenado en una variable o correspondientes a ella. Se puede escoger si la variable
constante se debe anteponer dos puntos (:) al nombre; en es para todos los Objetos (global) o solo para un Objeto
:nombreVariable (local).

Pág.31 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


Con el botón “Borrar una variable” se borran todos los
bloques asociados con una variable.

Al hacer clic sobre el cuadrito de selección, se empieza a


Informar el valor de la variable “Puntaje” en el escenario.

Pág.32 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


para
Incrementa la variable en una cantidad determinada (Si se tipoVariable :valorParámetro
tiene más de una variable, utilice el menú desplegable limpia da "variableGlobal
para seleccionar el nombre de la variable que se desea 150 local "variableLocal
modificar). da "variableLocal 20
fin
Ahora escriba en el centro de mando de MicroMundos la
secuencia de instrucciones en cursiva y debe obtener las
Inicializa la variable a un valor específico.
respuestas subrayadas: tipoVariable 70
muestra :valorParámetro valorParámetro no tiene valor
muestra :variableLocal variableLocal no tiene valor
Muestra el monitor de la variable en el escenario. muestra :variableGlobal 150
Observe que las variables :valorParámetro y :variableLocal no
conservan su valor por fuera del procedimiento tipoVariable,
mientras que la variable :variableGlobal es de tipo global y
Esta opción esconde el monitor de la variable para que no
conserva su valor (150) por fuera del procedimiento donde fue
aparezca en el escenario. creada.

En MicroMundos también existen las variables de estado


EJEMPLO que permiten conocer o
MicroMundos modificar los componentes más importantes de una
para tortuga, un control o una caja de texto.
equilátero :tamaño
limpia cp
repite 3 [adelante :tamaño derecha Constantes
120] fin Las Constantes se crean en Logo de la misma forma que
las variables y consisten en datos que, luego de ser
Ahora escriba en el centro de mando de MicroMundos la asignados, no cambian en ninguna instrucción del
palabra equilátero seguida por un número que representa el Algoritmo. Pueden contener constantes matemáticas (pi)
tamaño de cada lado del triángulo (ejemplo: equilátero 70 ). o generadas para guardar valores fijos (3.8, "Jorge", etc).
La variable local :tamaño creada en la línea de título del En el Algoritmo de la Ilustración 2-4, "div" es un ejemplo
procedimiento equilátero, contiene el valor 70 mientras el de Constante.
procedimiento se esté ejecutando. Los dos puntos “:” que
preceden el nombre de la variable tamaño le indican a Logo
que no se quiere la palabra tamaño si no el valor que contiene
EJEMPLO
la variable tamaño.
Las variables y constantes además de tener un Nombre
Scratch (identificador) para poder referirnos a ellas en los
procedimientos, guardan un Valor en su interior.
Nombre (identificador) Valor
apellido López
saldo 20000
tamaño 8.5
esTriángulo SI

ACTIVIDAD
Pedir a los estudiantes que analicen el siguiente ejemplo y que
escriban en forma de ecuación las situaciones planteadas.

Ejemplo: El doble de la edad de Carlos Andrés es 32 años:


En Scratch haga clic en la bandera verde para que se dibuje en edadCarlos es la constante donde se guarda la edad de Carlos
el escenario un triángulo equilátero con lado 100. Para dibujar Andrés;
triángulos de tamaños diferentes basta con fijar la variable R/. 2 x edadCarlos = 32
tamaño a otro valor.
Situaciones:
1. La mitad de un valor (valor1) es 60
EJEMPLO
2. Cuatro veces un número (número1) equivale a 20
Escriba en el área de procedimientos las siguientes líneas de
3. Un número (número2) disminuido en 5 es 18
código:
Pág.33 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
4. El doble (elDoble) del precio de una manzana
5. La midad (laMitad) del precio de una gaseosa En Scratch, se utiliza la instrucción cambiar ... por ... para
6. el triple (elTriple) de mi edad incrementar la variable en una cantidad determinada.

Los valores que pueden tomar valor1, número1 y


número2 (tres primeras situaciones) son constantes: 120, En este caso se almacena en la variable Puntaje el valor
5 y 23 respectivamente; no pueden tomar otros valores. que ella tenga en el momento más el valor constante 1.
Además, estas constantes son las incógnitas de las
situaciones.
EJEMPLO
Los valores que pueden tomar elDoble, laMitad y elTriple
Escribir un procedimiento llamado contador para contar los
son variables ya que dependen de un precio o de la edad
del estudiante que resuelve el ejercicio. Los valores de números entre 1 y 10.
estas variables hay que conocerlos para introducirlos en MicroMundos
el problema como datos iniciales, pero no son la para contador
incógnita. Para ampliar esta actividad, el docente puede bnombres
plantear nuevas situaciones o pedir a los estudiantes que da "número 0
planteen situaciones similares. repite 10 [da
"número :número + 1
muestra nombres] muestra
frase
ACTIVIDAD
[El valor final del contador número
Pedir a los estudiantes que traigan tres cajas de cartón (del
es ] :número fin
tamaño de las de los zapatos) y marcar cada caja con uno de
los siguientes letreros: BASE, ALTURA y DIVISOR. Introducir un
Ahora escriba en el centro de mando de MicroMundos
papel en blanco en cada una de las cajas. Solicitar a un
contador.
estudiante del grupo que escriba un valor en cada uno de los
papeles guardados en las cajas.
Scratch
Escribir en el tablero la fórmula para calcular el área de un
triángulo rectángulo: (Base * Altura / 2)
Luego pedir a otro estudiante que escriba en el tablero los
valores de los papeles guardados en cada una de las cajas y
aplique la fórmula para calcular el área de un triángulo
utilizando esos valores.

Repetir la operación pidiendo a otro estudiante que escriba


nuevos valores en el papel de cada una de las cajas, tachando
los valores anteriores.
Hacer notar que en los papeles guardados en las cajas Haga clic en la bandera verde de Scratch.
marcadas con “BASE” y “ALTURA” se han anotado valores
diferentes en cada ocasión. Este es el concepto de variable.
Hacer notar también que en el papel guardado en la caja Acumuladores
“DIVISOR” solo se anotó un valor (2) al comienzo del ejercicio y Estructura muy utilizada en programación (da “A :A + :B) y
no hubo necesidad de cambiarlo posteriormente. Este es el que consiste en almacenar en una variable (“A) el valor
concepto de constante. de ella misma (:A) más otro valor variable (:B). Es muy útil
para calcular sumatorias.

Esta actividad se puede adaptar para reforzar el cálculo


de áreas y perímetros de otras figuras geométricas EJEMPLO
planas. Escribir un procedimiento llamado acumulador para calcular la
sumatoria de los números entre 1 y 10.

Contadores MicroMundos
Los contadores en MicroMundos se implementan como para
una estructura de programación (da “A :A + 1) que acumulador
consistente en almacenar en una variable (“A) el valor de bnombres da
ella misma (:A) más un valor constante (1). Es muy útil "contador 0
para controlar el número de veces que debe ejecutarse da "sumatoria 0
un grupo de instrucciones. repite 10 [da "contador :contador + 1
Pág.34 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
da "sumatoria :sumatoria
+ :contador muestra nombres] El tipo de nombre –identificadores- que se asigne a
muestra frase variables, constantes y procedimientos es muy
[El valor final del acumulador sumatoria importante. Cuando los estudiantes dejan de trabajar en
es ] :sumatoria fin un proyecto por varios días, es más fácil para ellos
retomar la actividad si los identificadores describen muy
Ahora escriba en el centro de mando de MicroMundos bien el contenido de variables, constantes y
acumulador. procedimientos. Además, el docente podrá ayudarles a
revisar y depurar sus programas en forma más eficiente si
estos son fáciles de leer (Feicht, 2000).
Scratch

Palabras reservadas (primitivas) Todos los


lenguajes de programación definen unas palabras para
nombrar sus comandos, instrucciones y funciones. Un
identificador definido por el usuario no puede tener el
nombre de una palabra reservada en MicroMundos.

Algunas palabras reservadas en MicroMundos


adelante (ad) muestra
derecha (de) para limpia
izquierda (iz) rumbo
atrás (at) cp sp
repite da
Haga clic en la bandera verde de Scratch y el resultado debe ser
2036.
Las palabras reservadas no operan en Scratch ya que
todas las instrucciones, incluyendo mandos y reporteros,
son bloques de construcción (ver la sección Conceptos
Identificadores básicos de Logo en la Unidad 3). Los estudiantes no
Los identificadores son nombres que se dan a los deben escribir las instrucciones, solo deben escribir los
elementos utilizados para resolver un problema y poder parámetros en algunas de ellas.
diferenciar unos de otros. Al asignar nombres
(identificadores) a variables, constantes y procedimientos
se deben tener en cuenta algunas reglas: ACTIVIDAD
• Los nombres pueden estar formados por una ¿Cuáles de los siguientes identificadores NO son validos como
combinación de letras y números (saldoMes, salario, nombres de Variables en MicroMundos y por qué?
fecha2, baseTriángulo, etc).
1. númeroX
• El primer carácter de un nombre debe ser una letra.
2. Numero X
• La mayoría de los lenguajes de programación
diferencian las mayúsculas de las minúsculas. 3. 7
• Los nombres deben ser nemotécnicos, con solo 4. A(45+
leerlos se puede entender lo que contienen. Deben 5. VII
ser muy descriptivos; no utilizar abreviaturas, a 6. 7mesas
menos que se justifique plenamente. 7. sieteMesas
• Es conveniente utilizar una sola palabra para nombrar
páginas, controles, variables, etc. En cuanto a palabras reservadas, Scratch es más flexible
• No utilizar caracteres reservados (%, +, /, >, etc). que MicroMundos, pues se pueden utilizar como nombres
MicroMundos admite letras acentuadas (á, é, í, ó, ú). de variables aquellos identificadores que no son validos
Se debe tener en cuenta que algunos lenguajes de en MicroMundos: A(45+, 7, etc.
programación no admiten las tildes.
• No utilizar palabras reservadas por los lenguajes de TIP
programación. Es buena idea asignar, a Variables y Constantes, nombres que
• Para cumplir con convenciones ampliamente indiquen cuál puede ser su contenido. Por ejemplo, a una
utilizadas (Jiménez, 2002), los nombres de Variable que contendrá el valor de la base de un triángulo debe
procedimientos, variables y constantes deben asignársele el nombre "baseTriangulo"; "areaCuadrado" a una
empezar con minúscula. Ejemplo, fecha, suma, etc. que guardará el área de un cuadrado; y "radio" a una que
Si es un nombre compuesto por varias palabras, cada contendrá el valor del radio de una circunferencia. Aunque
una de las palabras (con excepción de la primera) MicroMundos no hace distinción entre mayúsculas y
deben empezar con mayúscula. Ejemplo: fechaInicial, minúsculas, es buena práctica ser consistente a lo largo de todo
baseTriángulo, etc. el algoritmo en su uso (RADIOCIRC ≠ RadioCirc). Esto debido a
Pág.35 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
que la mayoría de lenguajes de programación sí hacen .
distinción entre mayúsculas y minúsculas.
FUNCIONES MATEMÁTICAS

Cada lenguaje de programación tiene su conjunto de funciones matemáticas predefinidas. Estas se ejecutan haciendo
referencia a su nombre. Algunas necesitan, para arrojar un resultado, que se suministre información adicional (parámetros o
argumentos). Algunas de las funciones matemáticas más utilizadas en MicroMundos son:

DESCRIPCIÓN SINTAXIS MicroMundos Scratch


ARCO TANGENTE. arctan número
Devuelve el arco tangente (la función inversa
de la tangente) de su entrada. Ver tan y cos. Ejemplo:
cp
cumpleveces [i 100]
[fx coorx + 1 fy -50 + 2 * arctan :i / 100]
COSENO. cos número
Devuelve el coseno de su entrada.
Ver sen y tan. Ejemplo:
cp
repite 120 [fy 50 * cos 3 * coorx fx coorx
+ 1]
EXPONENCIAL. Devuelve e exp número
a la potencia del número.
Ejemplo:
cp
repite 55 [fx coorx + 1 fy exp coorx / 15]
LOGARITMO NATURAL. ln número
Devuelve el logaritmo natural (el logaritmo en
base e) del número. Es el contrario de exp. Ejemplo:
Ver también log. muestra ln 15
LOGARITMO. log número
Devuelve el logaritmo del número.
Ver ln y exp. Ejemplo:
muestra log 15
PI pi
Devuelve la constante PI. No disponible en Scratch
Ejemplo:
cp
repite 360 [ad pi * 100 / 360 de 1]
repite 360 [ad pi * 150 / 360 iz 1]
POTENCIA potencia número1 número2
Devuelve el número1 elevado a la POTENCIA Scratch no tiene el operador potencia, sin
de número2. Ejemplo: embargo es fácil programarlo:
muestra potencia 4 2 http://scratch.mit.edu/projects/jualop/752239

RAÍZ CUADRADA. rc número


Devuelve la raíz cuadrada de su entrada.
Ejemplo:
muestra rc 16
SENO. sen número
Devuelve el seno del número en grados.
Ver cos. Ejemplo:
cp
repite 260 [fy 25 * sen 6 * coorx fx coorx
+ 1 / 2]
TANGENTE. tan número
Devuelve la tangente de su entrada.
Ver sen y cos. Ejemplo:
cp

Pág.36 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


repite 28 [fy 8 * tan 6 * coorx fx coorx + 1
/ 2]

palabras en una lista no necesitan comillas y los espacios


TIPOS DE DATOS en blanco se ignoran.

La mayoría de los lenguajes de programación disponen


de una amplia variedad de datos. MicroMundos solo tiene
tres tipos de datos: números, palabras y listas.

Números: se utilizan como entradas en las operaciones


matemáticas. Cuando se utilizan los signos positivo (+) o EJEMPLO
negativo (-), estos deben estar pegados al número.
MicroMundos acepta tanto el punto como la coma para Las siguientes son listas validas en MicroMundos:
escribir números decimales (3,14=3.14). Esto es
• [Esta es una lista de 7
importante tenerlo presente para no utilizar el punto para
marcar la separación de miles y millones. Si asignamos a elementos] • [x y z]
una variable el valor 20.000, MicroMundos guarda en ella
el valor 20 y no 20000; si le asignamos 1.345.625 en Scratch
lugar de 1345625, MicroMundos no aceptará esta
notación por tener dos puntos decimales. Por su parte,
Scratch solo utiliza el punto decimal; sin embargo, si
usted introduce el número 6,2, Scratch lo convertirá
automáticamente a 6.2.

EJEMPLO
Los siguientes son números validos en MicroMundos:
• 453
• 19,7
• 19.7
• -14,42
• 856.
• 1E6
El signo debe estar pegado al número: muestra –3 + 6 da como
resultado 3; muestra - 3 + 6 da como resultado el mensaje “-
necesita más entradas”. Scratch no reconoce la notación
científica: 1E6.

Palabras: Las palabras están formadas por letras y/o Aunque en Scratch se pueden introducir tanto palabras
números. Una palabra está delimitada por espacios en como números en una variable, la operación de suma de
blanco; sin embargo, si se quiere tener un texto dos variables o de elementos de una lista solo opera con
conformado por dos o más palabras, este debe números (versión 1.4). Por lo tanto no se pueden
encerrarse entre barras (|palabra1 palabra2|). concatenar varias palabras para formar una frase con el
operador +, debe utilizarse el operador “unir”. Varios
EJEMPLO operadores “unir” se pueden anidar para formar una
Las siguientes son palabras validas en Logo: cadena de varios elementos. En el siguiente ejemplo se
• Hola requieren tres espacios: uno para mostrar el nombre, otro
• x para separar el nombre del apellido y el tercero para el
apellido.
• 548
• Once-Caldas
• ¿Quién?
El comando muestra “hola da como resultado hola; muestra
“hola” reporta hola”. Varias palabras se deben tratar como una
lista.

Listas: una secuencia de palabras puede manipularse


igual que una sola palabra mediante el uso de listas. Una
lista es una secuencia de palabras separadas por
espacios en blanco y encerrada entre corchetes. Las
Pág.37 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
Scratch

OPERADORES

Son símbolos que sirven para manipular datos. En MicroMundos / División 4/2 2
es necesario dejar un espacio en blanco a cada lado del signo
aritmético. Los operadores y las operaciones que se pueden
realizar con ellos se clasifican en:

+ Suma 4+2 6

- resta 4-2 2

“ asignación da “A 4 Se asigna el
valor de 4 a la
variable A
• MicroMundos presenta diferencias con el operador de
asignación (=) que utilizan la mayoría de los
Pág.38 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
lenguajes de programación. La expresión muestra azar 6 + 1 reporta un resultado
Alfanuméricos: Permiten operar con datos de tipo diferente al que reporta muestra (azar 6) + 1 ¿Por qué?
carácter o cadenas. La mayoría de los lenguajes de Las operaciones que se encuentran entre paréntesis se
programación admiten el operador + para realizar la evalúan primero; las que tienen el mismo orden de
concatenación (unión) de caracteres o cadenas. Ni evaluación se ejecutan de izquierda a derecha. Los
MicroMundos, ni Scratch tienen esta opción. En cálculos aritméticos siempre se realizan antes que
Scratch debe utilizarse, para concatenar, el operador cualquier otro mando Logo. Por ejemplo, en la
&. instrucción muestra azar 6 + 1, la operación aritmética 6
Relaciónales: Permiten la comparación entre datos + 1 se realiza primero que el mando Logo azar y a su
del mismo tipo y dan como resultado dos valores vez, el mando azar se ejecuta primero que el mando
posibles: Verdadero o Falso. Ejemplo: igual a (=); muestra. En instrucciones como muestra (azar 6) + 1
menor que (<); mayor que (>). hay que tener presente que siempre se deben utilizar
Lógicos: Posibilitan la evaluación lógica de dos pares de paréntesis. En Scratch no está disponible la
• expresiones de tipo lógico. Dan como resultado uno opción de paréntesis (hasta la versión 1.4).
de dos valores posibles: Verdadero o Falso. Ejemplo:
negación (no); conjunción (y); disyunción
(o). ACTIVIDAD
• Pedir al estudiante que escriba en el Centro de Mando
Orden de evaluación de los operadores Los (ilustración 12) de MicroMundos las siguientes expresiones y
computadores ejecutan los operadores en un orden anote en su cuaderno las observaciones sobre los resultados de
predeterminado. El siguiente es el orden (jerarquía) para cada pareja (1 y 2; 3 y 4, 5 y 6):
ejecutar operadores: 1. muestra 243 + 5 - 6 + 86 – 42
1. Paréntesis (se ejecutan primero los más internos) 2. muestra 5 + 86 - 42 - 6 + 243
2. Signo (-2) 3. muestra 7 + ( 8 * 16)
3. Potencias y Raíces (potencia y rc); Productos y 4. muestra (7 + 8 ) * 16
Divisiones ( * y /) 5. muestra 24 / 4 * 8
4. Sumas y Restas (+ y -) 6. muestra 4 * 8 / 24
5. Concatenación (+)
6. Relaciónales (=, <, >)
7. Negación (no)
8. Conjunción (y)
9. Disyunción (o)

• Aritméticos: Posibilitan las operaciones entre datos de tipo numérico y dan como
resultado otro valor de tipo numérico. Ejemplo: potencia
(potencia); producto (*); división (/); suma (+); resta (-); asignación (“).
Este último operador de

OPERADORERS ARÍTMETICOS

Operador Operación Ejemplo Resultado


potencia Potencia potencia 4 2 4 16
^ ^2
* Multiplicación 4*2 8

Pág.39 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


EXPRESIONES 54 / 3 + 4 * 6 = 18 + 24
18 + 24 = 42
Una Expresión está compuesta por valores, funciones, 42
primitivas, constantes y/o variables, o por una
combinación de los anteriores mediante operadores. Son ACTIVIDAD
Expresiones: Tomando como modelo el ejemplo anterior y utilizando lápiz y
• Un valor (1.3, "Jorge) papel, desarrollar paso a paso las siguientes expresiones. Tener
• Una Constante o una Variable (divide, base, área) en cuenta la jerarquía de los operadores:
• Una función (cos 60, arctan 1) a. (5 + 2) * (4 + 4) = 56
• Una combinación de valores, constantes, variables,
b. 7 + 3 * 2 + (2 - 1) = 14
funciones y operadores que siguen reglas de
c. 6 * 2 + 4 * 3 + 5 / 2 = 26,5
construcción y orden de evaluación de los
operadores (cos 60 + 7 - :altura) d. 5 + 1 * 4 / 2 * 7 - (8 + 2) = 9
e. 8 + (5 * 6) - 6 = 32
Las Expresiones pueden ser: f. 9 + 5 * 3 = 24
• Aritméticas: Dan como resultado un valor numérico. g. 4 / 2 * (10 - 5) * 3 = 30
Contienen únicamente operadores
aritméticos y datos numéricos (pi * 20 - :X) ACTIVIDAD
• Alfanuméricas: Dan como resultado una serie o Pedir al estudiante que escriba en el Centro de Mando de
cadena de caracteres. MicroMundos (ilustración 1-2) las siguientes expresiones y
• Lógicas: Dan como resultado un valor "Verdadero" o anote en el cuaderno sus observaciones sobre el resultado:
"Falso". Contienen variables y/o constantes 1. muestra 7 + 5 + 6
enlazadas con operadores lógicos (A>0 y B<=5). 2. muestra [7 + 5 + 6]
• De Asignación: Estas Expresiones asignan el 3. muestra [mañana nos vemos en clase de inglés]
resultado de una Expresión a una Variable o a una
4. muestra mañana nos vemos en clase de inglés
Constante. La Expresión de Asignación (da
"área :base * :altura / 2) asigna (da) el valor resultante
de la Expresión Aritmética (:base * :altura / 2) a la Obsérvese que las instrucciones 1 y 2 se diferencian en
variable área. que mientras la primera da como resultado un valor
numérico (18), la segunda es una lista y reporta una
cadena alfanumérica de caracteres “7 + 5 + 6”.
EJEMPLO
La instrucción 4 reporta “No sé cómo hacer mañana”
Para diseñar algoritmos que posteriormente puedan ser
porque le faltan los corchetes inicial y final para que
traducidos a un lenguaje de programación, es fundamental MicroMundos la considere una lista de cinco palabras. En
saber manejar muy bien los operadores y el orden en el que Scratch no son necesarios los paréntesis ya que el orden
estos se ejecutan. Las fórmulas deben escribirse en una sola de evaluación de las expresiones es inequívoco.
línea para que el computador las evalúe.
EJEMPLO
NOTACIÓN EXPRESIÓN Luisa Fernanda quiere llenar 5 cajas de bombones y sabe que
MATEMÁTICA en cada caja hay que incluir 12 bombones de menta, 14 de
(rc (potencia 6 2)+ 7) / (potencia 8 2) fresa intensa y 10 de limón. Encontrar al menos dos
Scratch no tiene el operador potencia, sin expresiones equivalentes para calcular el número de
embargo es fácil programarlo: bombones que necesita Luisa Fernanda.
http://scratch.mit.edu/projects/jualop/752 R/.
239 Expresión 1: 5 * 12 + 5 * 14 + 5 * 10
(base * altura / 2) ¿Qué significa cada producto?
¿Qué significa la suma de los productos?

Expresión 2: 5 * ( 12 + 14 + 10 ) ¿Qué
EJEMPLO representa la suma del paréntesis?
Evaluar la expresión muestra ((potencia (5 + 3) 2) - 10) / 3 + 4 ¿Por qué la suma se debe multiplicar por 5?
* (2 + 4) teniendo en cuenta la jerarquía de los operadores: ¿Las dos expresiones dan el mismo resultado?
R/. Ejercicio adaptado de “Cuenta Jugando 5”; Página
((potencia (5+3) 2) - 10) / 3 + 4 * (2 + 4) = ((potencia 8 2) - 10) / 3 + 48 (Casasbuenas & Cifuentes, 1998b).
4*6
((potencia8 2) - 10) / 3 + 4 * 6 = (64 - 10) / 3 + 4 * 6 ACTIVIDAD
(64 - 10) / 3 + 4 * 6 = 54 / 3 + 4 * 6
Pág.40 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
UNIDAD 3: ESTRUCTURAS BÁSICAS

LAS ESTRUCTURAS

Edsger Wybe Dijkstra nació en Rotterdam, (Holanda) en 1930.


En 1956 anunció su algoritmo de caminos mínimos;
programación, pueden descargar gratuitamente las
posteriormente
correspondientes Guías de Referencia:
da “númeroA 5 (asigna el valor 5 a la Constante númeroA) da proceso, ofrecen amplias posibilidades para resolver
“númeroB 8 (asigna el valor 8 a la Constante númeroB) • MicroMundos (proyecto Teddi - 560KB
PDF; )
problemas mediante la construcción de procedimientos
http://www.eduteka.org/pdfdir/ManualMicroMundos.pdf
Utilizando la información de los valores asignados a las (Castellanos & Ferreyra, 2000b).
• Scratch (MIT PDF; - 1.5MB)
Constantes númeroA y númeroB, evaluar las siguientes http://www.eduteka.org/pdfdir/ScratchGuiaReferencia.pdf
expresiones: Un famoso teorema de los años sesenta, formulado por
1. 20 + :númeroA Edsger Wybe Dijkstra, demostraba que se puede escribir
2. :númeroA + 3 * :númeroB TIP cualquier programa utilizando únicamente la tres
estructuras de control mencionadas. Actualmente, la
3. :númeroA > :númeroB
programación orientada a objetos (POO) busca reducir al
4. :númeroA + "123
propuso elmáximo
algoritmo la
delcantidad de estructuras
árbol generador de control
minimal. A principios de mediante
la el
5. 4 + :númeroA - :númeroB uso de polimorfismo; pero aún así, todavía se vale de
Ilustración 3-1: Fases segunda y tercera del ciclo de estas estructuras para construir métodos, los cuales
programación.
podría decirse que son equivalentes a los procedimientos
que se plantean en esta guía.

Un Algoritmo está compuesto por instrucciones de Para traducir los algoritmos diseñados a un lenguaje de
diferentes tipos, organizadas secuencialmente, en forma programación que el computador pueda entender, en esta
de estructuras de control. De estas estructuras, las más guía se utilizan dos entornos de programación basados
comunes y que se cubren en esta guía son las siguientes: en Logo: MicroMundos y Scratch. Los docentes
interesados en conocer estos ambientes de década de los
• Secuencial.
60, aplicó la idea de exclusión mutua a la comunicación entre
• Iterativa (repetición).
un computador y su teclado. Su solución de exclusión mutua ha
• Condicional (decisión, selección). sido usada en muchos procesadores y tarjetas de memoria
desde 1964, año en el que fue utilizada por IBM en la
Una estructura de control se define como un esquema arquitectura del “IBM 360”. El siguiente problema del que se
que permite representar ideas de manera simplificada y ocupó Dijkstra fue el de los filósofos comensales. En este
que bajo condiciones normales, es constante (Trejos, problema, cinco filósofos están sentados en una mesa circular
1999). con un plato de arroz delante y un palillo a cada lado, de
manera que hay cinco palillos en total. El problema trata sobre
El uso del diseño descendente en los programas, la el uso de recursos comunes sin que los procesos (los filósofos)
ejecución de operaciones secuenciales, la utilización de lleguen a una situación de bloqueo mutuo; además, que los
ciclos repetitivos y, la toma de decisiones y alternativas de recursos se utilicen por todos los procesos de la manera más
Pág.41 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
eficiente. Dijkstra también contribuyó a desterrar el comando Para obtener mayor información sobre Logo, se
GOTO de la programación: el comando "GOTO es considerado recomienda visitar el sitio Web de Daniel Ajoy
dañino. Cuantas más sentencias GOTO tenga un programa, más http://neoparaiso.com/logo/
confuso será el código fuente".

MicroMundos
MicroMundos (http://www.micromundos.com) es un
entorno de programación desarrollado por la compañía
canadiense LCSI. La lista de primitivas es más extensa
que la de Scratch; la cual, junto a los procedimientos
elaborados por el programador, se pueden clasificar en
dos categorías: Mandos y Reporteros.

Los Mandos hacen algo. Por ejemplo, derecha y


muestra son Mandos (derecha 120, muestra rumbo,
etc). Los Reporteros informan sobre el resultado de un
cálculo o sobre el estado de un objeto. Por ejemplo,
rumbo y primero son Reporteros. En la instrucción
muestra rumbo, el Reportero rumbo devuelve al Mando
muestra el rumbo actual de la tortuga, rumbo como tal
no puede hacer nada.

Se requiere que los estudiantes aprendan a interpretar


las instrucciones tal como lo hacen con las oraciones en
castellano (sustantivos, verbos, conectores, adjetivos,
etc). En MicroMundos la primera palabra de una
instrucción siempre debe ser un Mando, por lo tanto, los
Reporteros solo se pueden utilizar como entradas de un
Mando o de un procedimiento.
CONCEPTOS BÁSICOS DE PROGRAMACIÓN
Ilustración 3-2(a): Área de trabajo de MicroMundos
Logo (interfaz del programa)
Logo es un lenguaje de programación con un número
limitado de palabras y de reglas gramaticales si se lo EJEMPLO 3-1
compara con lenguajes humanos, como el castellano o Digitar en el Centro de Mando (Ilustración 3-2) la instrucción:
el inglés. Las instrucciones en Logo son equivalentes a
rumbo
las oraciones en castellano y las reglas para construir
esas instrucciones son más simples que las reglas MicroMundos devuelve un mensaje de error:
gramaticales de nuestro idioma, pero mucho más No sé qué hacer con 0
precisas. Digitar la siguiente instrucción en el Centro de Mando:
muestra rumbo
Logo fue desarrollado por Seymour Paper en el MIT en MicroMundos devuelve el rumbo actual de la tortuga:
1968 con el fin de utilizarlo en el ámbito educativo. Con 0
este lenguaje de programación, inicialmente los niños En este caso el resultado de rumbo es reportado a muestra.
dan instrucciones a una tortuga (adelante, atrás,
derecha, izquierda, etc) para elaborar dibujos sencillos. Los docentes interesados en conocer más a fondo
Pero a medida que logran dominio del lenguaje, ellos MicroMundos, pueden descargar una versión de prueba
utilizan comandos más sofisticados para realizar por 30 días del sitio: http://www.micromundos.com
creaciones más complejas. Además, pueden descargar gratuitamente la Guía de
Referencia en español: Proyecto Teddi; PDF; 560KB)
Desde 1968 a la fecha se han creado numerosas http://www.eduteka.org/pdfdir/ManualMicroMundos.pdf
versiones de Logo
(http://www.elica.net/download/papers/LogoTreeProject.pdf); sin Aunque MicroMundos es bueno y ampliamente utilizado
embargo, en esta Guía se utilizarán los entornos de en escuelas de América Latina, su costo puede constituir
programación basados en Logo “MicroMundos” y una restricción para muchas Instituciones Educativas. Sin
“Scratch”. Ambos ofrecen una serie de comandos embargo, entre las alternativas gratuitas
llamados “primitivas” para construir procedimientos (ver (licencia GNU) de Logo hay una que utiliza en núcleo de
una lista básica de primitivas en el Anexo 1). Logo creado por Brian Harvey de la Universidad de
Berkeley: Microsoft Windows Logo (MSWLogo). Si bien,
no es un ambiente de programación tan atractivo y
Pág.42 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
elaborado como MicroMundos, esta versión de Logo es
gratuita y tiene una traducción al español realizada por Scratch es una muy buena alternativa a MicroMundos; sin
Javier López-Escobar que se puede descargar de: embargo, las Instituciones Educativas que ya cuentan con
http://sourceforge.net/projects/mswlogoes Sin embargo, MicroMundos, pueden utilizar ambos entornos ya que
desde 2006, y debido al notorio abandono de MSWLogo puede resultar benéfico para los estudiantes exponerlos a
por parte de su desarrollador, David Costanzo asumió la diferentes ambientes de programación en los que puedan
continuación del desarrollo de MSWLogo con el nombre realizar las mismas cosas.
FMSLogo: http://fmslogo.sourceforge.net/
Los docentes interesados en conocer más a fondo el
Scratch ambiente de programación Scratch, puede descargarlo
Scratch (http://scratch.mit.edu/) es un entorno de gratuitamente de la siguiente dirección:
programación desarrollado recientemente por un grupo de http://scratch.mit.edu/. Además, pueden descargar la Guía
investigadores del Lifelong Kindergarten Group del de Referencia en español (PDF; 1.5MB):
Laboratorio de Medios del MIT, bajo la dirección del Dr. http://www.eduteka.org/pdfdir/
Michael Resnick. ScratchGuiaReferencia.pdf

Fundamentos de programación
Una vez descritos brevemente los entornos de
programación que se utilizan a lo largo de esta Guía, se
tratarán a continuación una serie de conceptos básicos
requeridos para empezar a utilizar dichos entornos.

COMENTARIOS
Los comentarios no tienen ningún efecto en la ejecución
del algoritmo. Se utilizan para aclarar instrucciones que
puedan prestarse a confusión o como ayuda a otras
personas que deben leerlo y entenderlo. La mayoría de
los lenguajes de programación ofrecen la posibilidad de
Ilustración 3-2(b): Área de trabajo de Scratch comentar el código de los programas.
(Ver imagen con mayor tamaño en el Anexo 8)
Los comentarios en un procedimiento de MicroMundos se
hacen con el punto y coma (;). MicroMundos ignora el
Aunque Scratch es un proyecto de código abierto, su
texto entre el punto y coma (;) y el final de la línea.
desarrollo es cerrado. El código fuente se ofrece de
manera libre y gratuita. Actualmente hay disponibles
versiones oficiales para Windows, Mac y Sugar (XO); MicroMundos
Además, hay versiones no oficiales para Linux. para lectura
local "valorUno ; declarar variables y constantes
Este entorno de programación aprovecha los avances en local "ValorDos
diseño de interfaces para hacer que la programación sea pregunta [Ingrese el primer valor ] ; ingresar valorUno
más atractiva y accesible para todo aquel que se enfrente da "valorUno respuesta
por primera vez a aprender a programar. Según sus pregunta [Ingrese el segundo valor ] ; ingresar
creadores, fue diseñado como medio de expresión para valorDos da "valorDos respuesta
ayudar a niños y jóvenes a expresar sus ideas de forma muestra frase [El primer valor es ] :valorUno
creativa, al tiempo que desarrollan habilidades de muestra frase [El segundo valor es ] :valorDos
pensamiento algorítmico y de aprendizaje del Siglo XXI, a fin
medida que sus maestros superan modelos de educación
tradicional en los que utilizan las TIC simplemente para En Scratch, los comentarios se agregan en una caja de
reproducir prácticas educativas obsoletas. texto amarilla que se crea al hacer clic derecho sobre
cualquier parte del área de programas (zona central gris)
Entre las características más atractivas de Scratch, y seleccionar la opción “añadir comentario”.
adicionales a las mencionadas en el párrafo anterior, que
lo hacen interesante para muchas Instituciones
Educativas se cuentan: es gratuito, tiene el respaldo del
MIT, está en permanente desarrollo (cada año se liberan
aproximadamente dos versiones con cambios
significativos), corre en computadores con bajas
prestaciones técnicas y se puede ejecutar desde una
memoria USB (pen drive), entre otras.

Pág.43 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


Scratch MicroMundos
para triángulo local "div ;declara las
constantes como locales.
local "base local "altura local
"área ;declara esta variable como local.
da "div 2 ;almacena 2 en la constante div
(div=2) da "base 3 ;equivalente a base=3 da
"altura 4 da "área :base * :altura / :div ;aplica la
fórmula.
muestra :área ;reporta el contenido de la variable
área fin

Los algoritmos diseñados como ejemplos en esta Guía no


están optimizados ya que con ellos se busca mostrar Tal como se puede comprobar al ejecutar el procedimiento
explicita y detalladamente las operaciones básicas anterior, el texto entre un punto y coma y el final de una línea
requeridas para una solución y no la forma óptima de de código no produce ningún resultado, ni causa errores de
solución. Algunos ejemplos exponen de manera sintaxis.
deliberada la forma larga y poco elaborada, para luego
presentar la forma optimizada.

EJEMPLO 3-2 Scratch


Escribir un procedimiento que se llame triangulo para hallar el
área de un triángulo rectángulo cuya Base mide 3 cm, la Altura
4 cm y la Hipotenusa 5 cm. Introducir en el código comentarios
que aclaren lo que está sucediendo en cada uno de los pasos
importantes.
R/
ANÁLISIS DEL PROBLEMA
Formular el problema: Ya se encuentra claramente planteado.
Resultados esperados: El área de un triángulo rectángulo.
Datos disponibles: Base, Altura, Hipotenusa, tipo de triángulo.
La incógnita es el área y todos los valores son constantes. El
valor de la hipotenusa se puede omitir. El estudiante debe
preguntarse si sus conocimientos actuales de matemáticas le PROCESOS
permiten resolver este problema; de no ser así, debe plantear Se llama procesos a todas las instrucciones contenidas
una estrategia para obtener los conocimientos requeridos. en un algoritmo para:
Restricciones: Utilizar las medidas dadas. • declarar variables y constantes
Procesos necesarios: Guardar en dos variables (BASE y ALTURA) (solo en
los valores de Base y Altura; Guardar en una constante (DIV) el MicroMundos);
divisor 2; aplicar la fórmula BASE*ALTURA/DIV y guardar el • asignar valores iniciales a variables y constantes;
resultado en la variable AREA; comunicar el resultado (AREA). • leer datos que suministra el usuario por medio del
teclado o del ratón (mouse);
DISEÑO DEL ALGORITMO • realizar operaciones matemáticas (aplicar fórmulas);
• reportar o mostrar contenidos de variables y
constantes;
• mostrar en pantalla resultados de procedimientos
activados por el programa.

Vale la pena recordar que la declaración de variables y


constantes se realiza en MicroMundos de la siguiente
forma:
local “nombreVariable (Ej. local “altura).

La sintaxis para asignación de un valor a una variable o


constante es: da “nombreVariable Valor (Ej. da
“altura 4).

TRADUCCIÓN DEL ALGORITMO

Pág.44 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


Luego de asociar valores a variables o constantes, estas puede almacenar esa variable mediante la manipulación
se pueden utilizar anteponiendo dos puntos (:) al nombre con el deslizador.
de la variable o constante: da “nuevaAltura 2 + :altura
MicroMundos
El Mando da asigna a la variable nuevaAltura el valor 2
más el contenido de la variable altura.

Por otra parte, al momento de crear una variable en


Scratch, el entorno pregunta si esta será visible “para
todos los objetos” (global) o solo será visible “para este
objeto” (local).

Scratch
Ilustración 3-4: Los comandos pregunta y respuesta
permiten interactuar con el usuario para obtener
información de él.

Scratch

INTERACTIVIDAD
La interactividad entre el usuario y el programa es un
recurso muy valioso en programación y se logra
permitiendo la comunicación con el programa mediante la
utilización del teclado y/o el ratón (mouse).
Ilustración 3-5: Los comandos pregunta y respuesta
permiten interactuar con el usuario para obtener
En MicroMundos, la forma más común de interactuar con
información de él.
un programa es por medio de controles y botones, los
cuales se manipulan con el ratón. Ambos se pueden
En Scratch las respuestas que el usuario aporta se
programar para que realicen acciones (ejecutar un
pueden almacenar en variables con el comando
procedimiento, ir a otra página, cambiar el valor a una
respuesta. Para mostrar lo que el usuario contesta se
variable, etc).
puede utilizar los comandos “decir” y “pensar”.
MicroMundos

Ilustración 3-3: Con el ratón se puede hacer clic sobre los


Botones y deslizar el indicador de los Controles (a la
izquierda disminuye y hacia la derecha aumenta).

En Scratch algunos objetos se les puede dar forma de


botón y programarlos para que cumplan la misma función
que cumplen estos en MicroMundos. Respecto a los
controles, en Scratch cada variable se puede convertir en
un control deslizante. Basta con hacer clic derecho sobre
cualquier variable que se muestre en el escenario y
seleccionar “deslizador”; luego se hace clic derecho
nuevamente y se eligen los valores mínimo y máximo que

Pág.45 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


EJEMPLO 3-3 De hecho, ellos disponen de un conocimiento
MicroMundos procedimental que utilizan en muchos aspectos de sus
para lectura vidas, tanto para planear una estrategia en un juego,
local "valorUno ; declarar variables y constantes como para dar instrucciones a alguien perdido en el
local "ValorDos vecindario. Lo curioso es que en raras ocasiones utilizan
pregunta [Ingrese el primer valor ] ; ingresar este conocimiento procedimental en las clases de
valorUno da "valorUno respuesta matemáticas. Los ambientes Logo ayudan a los
pregunta [Ingrese el segundo valor ] ; ingresar estudiantes a hacer conciencia de la idea de
valorDos da "valorDos respuesta procedimiento, ya que en él, los procedimientos se
muestra frase [El primer valor es ] :valorUno convierten en algo que se puede nombrar, manipular y
muestra frase [El segundo valor es ] :valorDos reconocer (Papert, 1993).
fin
Además del pensamiento algorítmico, los razonamientos
facilita generalizar la solución de un problema. Por temporal y condicional juegan un papel muy importante
ejemplo, si se elabora un procedimiento que calcule el en la gestión, organización y planificación de cualquier
área de un triángulo rectángulo, cada vez que se cambien procedimiento. Estos facilitan al programador plantear y
los valores iniciales de “base” y “altura”, estos deben seguir instrucciones, fragmentar una tarea en módulos
actualizarse en el cuerpo del procedimiento. La con funciones precisas y plantear decisiones que un
interactividad, por el contrario, permite que cada vez que procedimiento debe tomar de acuerdo a ciertas
se ejecute el procedimiento, este le pregunte al usuario condiciones. La programación esta muy ligada al control
por los valores de “base” y “altura”, y los tome para de la sucesión temporal de instrucciones organizadas en
calcular el área sin la necesidad de modificar nada en el secuencias. Este control, guiado por un razonamiento
procedimiento. temporal, es necesario para organizar el orden de las
instrucciones a ejecutar, para llamar otros procedimientos
Scratc
h

Scratch

Otra forma de interactuar con un programa


que el usuario
consiste en utilice el teclado para
las
preguntas
responder a que le plantea el programa. En
las respuestas que el usuario aporta se pueden
MicroMundos
almacenar en las variables correspondientes
comand
con el respues . Para mostrar lo que el
contesta
o ta se puede
usuario utilizar varios comandos de
MicroMundo mostrar, escribe, anuncia,).
El ejemplo 3-6 de la sección “Estructura
s( anuncia frase ilustra muy bien la interactividad que se puede
Secuencial”
establecer entre usuario y programa. La
en el orden correcto y ejecutar ciertas instrucciones
interactividad
PROCEDIMIENTOS mientras una condición se dé o a partir de cuando esta se
Según Papert (1993), los problemas que experimentan dé (Dufoyer, 1991). Y, según Friedman (1982) y Piaget
muchos estudiantes con las matemáticas se deben más a (1946), citados por Dufoyer (1991), hay que esperar
la falta de comprensión de los algoritmos apropiados, que necesariamente hasta los 7 u 8 años (nivel de las
a la falta de manejo de los conceptos involucrados en operaciones concretas) para que estas operaciones sean
estos. Cuando experimentan problemas con la suma, lo posibles. Por lo tanto, utilizar la programación de
primero que se debe revisar es el procedimiento de la computadores con estudiantes de cuarto grado en
adición. adelante es viable si se hace con el objetivo de ofrecerles
oportunidades de acceso a conceptos relacionados con
Los procedimientos se utilizan muy a menudo en la vida procedimientos, creando condiciones para que ellos
diaria. Participar en un juego o dar instrucciones a alguien ejerciten en forma efectiva y divertida el pensamiento
que se encuentra perdido son actividades que requieren algorítmico y los razonamientos temporal y condicional.
pensamiento procedimental o algorítmico. Los estudiantes
activan a diario este tipo de pensamiento sin percatarse y En este sentido, la utilización del área de procedimientos
sin hacer algún tipo de reflexión sobre esto. de MicroMundos (ilustración 3-2) ofrece mayores
Pág.46 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
posibilidades para gestionar, organizar y planificar, en un procedimiento, se escriben sin dejar espacio entre
contraposición a introducir instrucciones una a una en el ellas y con mayúscula la primera letra de la segunda
“centro de mando” (lo que permite al estudiante ver palabra y de las subsiguientes palabras (ejemplo:
inmediatamente cuál es el efecto que produce cada valorMasAlto).
instrucción ejecutada). • Cada instrucción completa debe ocupar una línea de
código
Como se expuso en la Unidad 1, los procedimientos son • Puede contener líneas en blanco
módulos con instrucciones que inician con el comando • En la última línea solo puede aparecer el Mando “fin”
“para” y que el computador ejecuta automáticamente, una • Desde un procedimiento se pueden invocar otros
tras otra, hasta encontrar el comando “fin”. Todo procedimientos.
procedimiento debe tener un nombre que lo identifique y
que sirve para ejecutarlo cuando se ejecuta dicho Ejemplo 3-4
nombre. Pero antes de ejecutar un procedimiento, los Escribir un procedimiento para dibujar en la pantalla un
estudiantes deben utilizar pensamiento algorítmico, cuadrado de tamaño variable.
razonamiento temporal y razonamiento condicional, para R/.
determinar y escribir todas las instrucciones que lo deben
componer y el orden lógico de ejecución.
ANÁLISIS DEL PROBLEMA
Formular el problema: Ya está claramente planteado.
Resultados esperados: El dibujo de un cuadrado en la pantalla.
Datos disponibles: El tamaño de los lados del cuadrado debe
ingresarlo el usuario; se sabe que todos los ángulos internos de
un cuadrado son de 90 grados. El estudiante debe preguntarse
si sus conocimientos actuales de matemáticas le permiten
resolver este problema; de no ser así, debe plantear una
estrategia para obtener los conocimientos requeridos.
Restricciones: El tamaño del cuadrado lo suministra el usuario.
Procesos necesarios: Leer el tamaño del cuadrado como un
parámetro llamado lado; bajar la pluma de dibujar; avanzar
adelante una distancia igual a lado; girar 90 grados a la
derecha; avanzar adelante una distancia igual a lado; girar 90
grados a la derecha; avanzar adelante una distancia igual a
lado; girar 90 grados a la derecha; avanzar adelante una
distancia igual a lado.
Ilustración 3-5: Elementos que componen el
procedimiento “cuadrado”; el parámetro es el único
elemento opcional. DISEÑO DEL ALGORITMO

Por otra parte, el vocabulario disponible en cualquier


proyecto Logo está compuesto por los comandos propios
del lenguaje (Mandos y Reporteros) más los nombres de
los procedimientos definidos en ese proyecto. En otras
palabras, los procedimientos definidos (en este caso
“cuadrado”) entran a formar parte del vocabulario de ese
proyecto. Cuando se abre un proyecto nuevo, esos
procedimientos ya no están disponibles; por tanto, para
utilizarlos hay que copiarlos de un proyecto existente y
pegarlos en el nuevo proyecto.

Todo procedimiento debe tener una línea de título que


incluye un nombre; el cual, al invocarlo, ejecuta en orden,
una a una, las líneas de instrucciones que contiene hasta
que llega a la línea con el Mando fin.

Para escribir procedimientos se deben tener en cuenta las


siguientes recomendaciones:
• El título está compuesto por: el Mando “para”, el
nombre del procedimiento y los parámetros
(opcional).
• El nombre del procedimiento debe ser una palabra. Aquí tenemos dos formas equivalentes e igualmente correctas
Cuando se deben utilizar varias palabras para nombrar de

Pág.47 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


algoritmo para dibujar un cuadrado. El algoritmo de la El procedimiento cuadrado ilustra el modelo general para
izquierda utiliza un rectángulo de proceso para cada escribir procedimientos con parámetros. Este tipo de
instrucción; el de la procedimientos son muy útiles cuando varias
derecha agrupa en un solo rectángulo las instrucciones de instrucciones se deben ejecutar en un programa varias
proceso adyacentes. veces de manera idéntica, cuya única diferencia sea el
valor inicial que tomen algunas variables. En estos casos,
TRADUCCIÓN DEL ALGORITMO las instrucciones se “empaquetan” en un procedimiento y
El siguiente procedimiento es la traducción al lenguaje Logo del los distintos valores iniciales de las variables se asignan
algoritmo representado por el diagrama de flujo. Pedir a los por medio de parámetros.
estudiantes que lo escriban en el área de procedimientos.
El nombre del parámetro se debe escribir en la línea del
MicroMundos título, después del nombre del procedimiento,
para cuadrado :lado ajustándose a las indicaciones establecidas en la Unidad
2 de esta guía para nombrar identificadores. No olvidar
limpia
cp que al parámetro se debe anteponer el signo de dos
adelante :lado puntos (:) tal como se puede apreciar en el ejemplo 3-4
derecha 90 (:lado).
adelante :lado
derecha 90 Luego de definir el nombre de un parámetro en la línea
adelante :lado de título de un procedimiento (para cuadrado :lado), este
derecha 90 parámetro se puede utilizar en cualquiera de las
adelante :lado instrucciones (ejemplo: adelante :lado).
fin
En otras palabras, la línea de título del procedimiento
Cuando escriban en el Centro de Mando el nombre del cuadrado le dice a Logo que solo hay un parámetro,
procedimiento, seguido del parámetro correspondiente al llamado lado. En el cuerpo del procedimiento se utiliza el
Mando adelante acompañado del parámetro :lado. Esta
tamaño del lado (Ejemplo: cuadrado 100 ) debe dibujarse en la
instrucción dibuja una línea cuya medida es igual al valor
pantalla un cuadrado.
que contiene :lado.
Scratch
Cuando en el título de un procedimiento se definen uno o
varios parámetros, estos no tienen valor. Solo cuando se
ejecuta el procedimiento es que se conoce el valor de
cada parámetro. Por esta razón, todo parámetro debe
tener un nombre. Por ejemplo, al cambiar la línea de
título del procedimiento cuadrado por la siguiente (con
dos parámetros):
para cuadrado :lado :ángulo el valor del ángulo se
tratará como un parámetro cuando se invoque el
procedimiento.

En resumen, un procedimiento, internamente, es un


algoritmo que resuelve en forma parcial un problema.
Desde el punto de vista externo es una orden o
instrucción única que puede formar parte de otro
procedimiento o algoritmo (Cajaraville, 1989).

Por otra parte, los estudiantes deben aprender a


distinguir entre escribir un procedimiento y ejecutarlo. La
primera actividad es el resultado de las etapas de
análisis del problema, diseño del algoritmo y traducción
Con el fin de poder ejemplificar más adelante las dos
de este a un lenguaje de programación.
formas de ejecutar un procedimiento, se debe escribir
este otro procedimiento:
La segunda actividad (ejecutar un procedimiento) hay
dos formas de realizarla. La manera más simple consiste
MicroMundos para en escribir el nombre del procedimiento en el Centro de
dibujaCuadrado Mando (ver ilustración 3-2). Escribir cuadrado 100 en el
cuadrado 120 Centro de Mando ejecuta el procedimiento llamado
fin cuadrado, asigna el valor 100 al parámetro :lado y dibuja
en la pantalla un cuadrado. Este procedimiento requiere
que el usuario especifique la medida de los lados. Para

Pág.48 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


dibujar un cuadrado cuyos lados midan 60 unidades se la definición del procedimiento, asociados con los valores
debe escribir cuadrado 60 en el Centro de Mando. Para dados al momento de llamar al procedimiento. Al
dibujar un cuadrado más grande se debe aumentar el ejecutarse una instrucción que contiene el nombre del
valor del parámetro; por ejemplo: parámetro, el procedimiento busca en su biblioteca
cuadrado 150. privada el valor de ese nombre. Este es el motivo por el
cual el mismo nombre de parámetro puede estar en dos
Otra forma de ejecutar un procedimiento es invocándolo bibliotecas distintas y tener información diferente.
desde otro procedimiento. Cuando se ejecuta el
procedimiento dibujaCuadrado (sin parámetros), Los parámetros son como "variables locales" del
indirectamente se ejecuta el procedimiento cuadrado con procedimiento en el cual fueron definidos. La importancia
120 como parámetro. Este procedimiento dibuja de los nombres de entrada privados es que ofrecen la
exactamente el mismo cuadrado cada vez que se ejecuta posibilidad de ejecutar un procedimiento sin tener que
(ver ejemplo 3-4). preocuparse por detalles de su definición.

Adicionalmente, poder invocar un procedimiento desde Por su parte, en Scratch no hay procedimientos con
otro, simplifica el dibujo de figuras simétricas. Se dice que parámetros como en MicroMundos; sin embargo, se
una figura es simétrica cuando al doblarla por la mitad sus pueden simular con las instrucciones de Control “Al enviar
dos partes coinciden (Casasbuenas & Cifuentes, 1998b). a todos” y “Al recibir”.
El ejemplo 3-5 en la sección “Estructura Secuencial”
ilustra muy bien la construcción de figuras simétricas Scratch
mediante la utilización de procedimientos que invocan a
otros procedimientos.

Cada procedimiento tiene su propia biblioteca de


nombres, esta es la razón por la cual un procedimiento
puede transferirle parámetros a otros, manteniendo los
valores de sus propios parámetros. Como los nombres de
los parámetros son privados, diferentes procedimientos
pueden usar el mismo nombre para un parámetro sin que
haya confusión acerca de su valor. Cuando Logo ejecuta
un procedimiento, éste establece una biblioteca privada
que contiene los nombres de los parámetros que hay en

Para ejecutar los procedimientos en Scratch basta con hacer clic en


la bandera verde ubicada en la esquina superior derecha de la pantalla:

Pág.49 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


En la siguiente sección se presentan las estructuras de control
básicas que los estudiantes deben dominar para poder diseñar
algoritmos y traducirlos a un lenguaje de programación.

ESTRUCTURA SECUENCIAL

Una estructura se define como un esquema con cierta


distribución y orden que permite representar una idea de
forma simplificada y que bajo ciertas condiciones es
constante (Trejos, 1999). La estructura de control
secuencial es la más sencilla. También se la conoce como
estructura lineal. Se compone de instrucciones que deben
ejecutarse en forma consecutiva, una tras otra, siguiendo
una línea de flujo. Solamente los problemas muy sencillos
pueden resolverse haciendo uso únicamente de esta
estructura. Normalmente, la estructura secuencial hace
parte de soluciones a problemas complejos en las que se
la utiliza mezclada con estructuras iterativas (repetir
varias veces un conjunto de instrucciones) y R/.
condicionales (tomar decisiones). ANÁLISIS DEL PROBLEMA
Formular el problema: Ya está claramente planteado.
Resultados esperados: El dibujo dado.
Datos disponibles: La figura geométrica suministrada. El
análisis de la figura permite establecer que está construida con
varios cuadrados de igual tamaño.
Restricciones: La figura resultante debe ser igual en su forma a
la muestra. Las dimensiones pueden variar.
Procesos necesarios: la figura se puede realizar mediante tres
procedimientos. El primero, que puede llamarse
simetríaCuadrado, dibuja un cuadrado con los comandos
adelante y derecha. El segundo procedimiento
(simetríaCuadricula), dibuja cuatro cuadrados utilizando el
procedimiento simetríaCuadrado y el comando izquierda. El
tercero (simetríaEstrella), dibuja dos veces la figura que se
Ilustración 3-6: Modelo de estructura secuencial. forma con el procedimiento simetríaCuadrado; se debe girar la
tortuga 45 grados a la derecha luego de ejecutar
Una estructura de control secuencial puede contener simetríaCuadrado por primera vez.
cualquiera de las siguientes instrucciones:
• declaración variables
• asignación de valores
• entrada de datos
• procesamiento de datos (operaciones)
• reporte de resultados

EJEMPLO 3-5
Escribir un procedimiento para dibujar en la pantalla una figura
simétrica igual a la siguiente:

Pág.50 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


DISEÑO DEL ALGORITMO

El procedimiento simetríaCuadrado (1) está compuesto


solamente por una estructura secuencial que realiza el dibujo
de un cuadrado cuyos lados miden 100.

para simetríaCuadricula
simetríaCuadrado
izquierda 90
simetríaCuadrado
izquierda 90
simetríaCuadrado
izquierda 90
simetríaCuadrado
TRADUCIÓN DEL ALGORITMO
izquierda 90 fin
La solución de este problema tiene tres procedimientos:
(1) simetríaCuadrado, (2) simetríaCuadricula y (3)
simetríaEstrella.

para
simetríaCuadrado
adelante 100
derecha 90
adelante 100
derecha 90
adelante 100
derecha 90
adelante 100
derecha 90
fin

El procedimiento simetríaCuadricula (2) está compuesto por


una estructura secuencial que dibuja cuatro cuadrados con
lados adyacentes entre sí. Esta es una figura simétrica ya que si
se dobla por la mitad, ambas mitades coinciden. Para construir
esta cuadricula no fue necesario escribir un procedimiento con
el código para dibujar cuadro cuadrados; en realidad, el
procedimiento simetríaCuadricula no realiza ningún dibujo, lo
Pág.51 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
que hace es llamar cuatro veces el procedimiento
simetríaCuadrado que es el que realmente dibuja un
cuadrado cada vez que se invoca. Para que los cuadrados sean
adyacentes, se necesita girar la tortuga 90 grados a la izquierda
después de cada llamada al procedimiento simetríaCuadrado.

para simetríaEstrella
limpia
cp
simetríaCuadricula
derecha 45
simetríaCuadricula fin

El procedimiento simetríaEstrella (3) también está compuesto


únicamente por una estructura secuencial que permite dibujar
una estrella perfectamente simétrica. Este procedimiento
llama dos veces al procedimiento simetríaCuadricula que a su
http://scratch.mit.edu/projects/jualop/42800
vez, cada que es invocado, llama cuatro veces al procedimiento
simetríaCuadrado. Para lograr el efecto de estrella, luego de
Muchos estudiantes logran construir la figura del
llamar la primera vez al procedimiento simetríaCuadricula, se procedimiento simetríaEstrella utilizando gran cantidad de
gira la tortuga 45 grados, antes de llamar el mismo comandos que se repiten sin estructura alguna (mediante
procedimiento por segunda vez. experimentación). Es muy importante que ellos
reflexionen sobre las ventajas que ofrecen los
Las siguientes son las instrucciones equivalentes en procedimientos cuando se los utiliza a manera de objetos
Scratch para elaborar la misma estrella: que cumplen con una función determinada (dibujar un
cuadrado, calcular un área, etc). Una tarea que debe
realizarse varias veces es candidata ideal para tratarla
como un procedimiento. Con la utilización de parámetros
se pueden cambiar algunos valores cada vez que se
ejecute esa tarea. De esta manera, si necesitamos dibujar
varios cuadrados de diferentes tamaños, lo más
adecuado será construir un procedimiento con el valor de
Lado como parámetro y ejecutarlo varias veces
asignando a este el valor del Lado del cuadro a dibujar,
cada vez que se ejecute (ver el ejemplo 3-4).

Este ejemplo ilustra la construcción de figuras simétricas


mediante la utilización de procedimientos invocados
desde otros procedimientos. El concepto de simetría es
muy importante tanto en disciplinas como matemáticas y
arte como en la cultura general del estudiante. La
Pág.52 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
programación de computadores puede apoyar muy DISEÑO DEL ALGORITMO
efectivamente el afianzamiento en el niño del concepto
que este tiene de simetría, alcanzado en forma intuitiva a
través del espejo. “Los espejos son para los niños su
primera experiencia y permiten examinar muchos
aspectos de las simetrías. Se puede uno preguntar
acerca de la inversión mutua entre derecha e izquierda,
acerca de las distancias entre el objeto y su imagen en el
espejo, lo que ocurre cuando se mueve el objeto o se
mueve el espejo, o lo que ocurre cuando estos giran”
Fletchet, T. J. citado por Cajaraville (1989).

Por otra parte, la construcción de figuras como estas


requiere un dominio espacial del estudiantes ya que es
mucho más difícil reproducir una acción correctamente en
el pensamiento que llevarla a cabo en el nivel de la
conducta. Por ejemplo, es más sencillo moverse de un
lugar a otro en un espacio físico o dar vueltas en torno a
objetos que representar mentalmente esos movimientos
con precisión o representarlos en un plano e invertir
mentalmente las posiciones de los objetos haciendo girar
el plano (Piaget,1993). TRADUCCIÓN DEL ALGORITMO EN MICROMUNDOS
para triánguloRectángulo
Por último, en este ejemplo se utilizan más comandos de local "div ; declarar variables y
los que realmente se requieren. Como el objetivo no es constantes local "base local "altura
presentar códigos optimizados sino más bien que el
local "área da "div 2
estudiante se familiarice con los comandos disponibles,
pregunta [Ingrese la Altura del Triángulo] ; ingresar altura y
más adelante, cuando se vea la estructura repetitiva, el
docente puede repetir este ejemplo y utilizar el comando base
“repetir”. Posteriormente, promover la reflexión de los da "altura respuesta pregunta
estudiantes sobre la optimización del código y las [Ingrese la Base del Triángulo] da
múltiples maneras que hay en programación para realizar "base respuesta
la misma tarea. da "área :base * :altura / :div ; realizar cálculos
anuncia frase [El Área del triángulo es:] :área ;
reportar el resultado fin
EJEMPLO 3-6
Escribir un procedimiento para calcular el área de cualquier TRADUCCIÓN DEL ALGORITMO EN SCRATCH
triángulo rectángulo. En él se debe pedir al usuario que ingrese
los valores de la Altura y la Base del triángulo.
R/.
ANÁLISIS DEL PROBLEMA
Formular el problema: Ya está claramente planteado.
Resultados esperados: Un procedimiento que permita
calcular el área de cualquier triángulo rectángulo.
Datos disponibles: Base y Altura del triángulo (se deben
solicitar al usuario). El estudiante debe preguntarse si sus
conocimientos actuales de matemáticas le permiten resolver
este problema; de no ser así, debe plantear una estrategia para
obtener los conocimientos requeridos.
Restricciones: Los valores de base y altura son variables y se
deben solicitar al usuario.
Procesos necesarios: definir variables; asignar el valor 2 a la En este ejemplo, el procedimiento triánguloRectángulo
constante div; solicitar al usuario el valor de la altura del también está compuesto únicamente por una estructura
triángulo; solicitar al usuario el valor de la base; aplicar la secuencial de instrucciones. En ella se utilizan las
fórmula de área; mostrar el resultado. primitivas “pregunta” y “respuesta” para permitir que el
usuario del programa suministre al programa los datos
“altura” y “base” del triángulo. De esta forma, se logra un
procedimiento generalizado para calcular el área de
CUALQUIER triángulo rectángulo. En otras palabras,
cada vez que se ejecute el procedimiento
Pág.53 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
triánguloRectángulo, este le preguntará al usuario cuál ofrece al estudiante la oportunidad de fijar la atención en
es la altura y la base del triángulo del cual desea calcular la estructura de las operaciones que realiza, mediante su
su área. traducción a un sistema de signos que el computador
pueda entender. Dirigir la atención a la estructura tiene
Tanto en la utilización de la estructura secuencial, como como consecuencia que operaciones clásicas, como la
en las dos que veremos más adelante, es muy importante suma con números naturales, se hagan cada vez más
que los estudiantes reflexionen y determinen el orden de móviles y puedan constituir sistemas cada vez más
ejecución de las instrucciones (posición) ya que la complejos (Aebli, 2001).
conmutatividad no es una propiedad aplicable a los
algoritmos. El lenguaje algorítmico, al igual que el
lenguaje formal de las matemáticas, tiene carácter gráfico EJEMPLO 3-7
y posicional; busca la precisión, el rigor, la abreviación y Escribir un procedimiento que muestre 3 veces en pantalla la
la universalidad; y, su finalidad fundamental consiste en frase “Esto es un camello”.
obtener resultados internamente consistentes (Onrubia & R/.
Rochera & Barbarà, 2001). ANÁLISIS DEL PROBLEMA
Formular el problema: Ya se encuentra claramente formulado.
La construcción de estructuras algorítmicas, entendidas
Resultados esperados: Que aparezca tres veces en pantalla la
estas como secuencias de instrucciones y operaciones,
con el fin de lograr un resultado concreto, ayuda a frase “Esto es un camello”.
afianzar en los estudiantes el conocimiento procedimental Datos disponibles: La frase dada.
matemático. Este conocimiento se caracteriza por la Restricciones: Ninguna.
acción (saber hacer) frente al conocimiento declarativo Procesos necesarios: Ninguno.
que se basa en la enunciación (saber decir). Saber
explicar (enunciar) un teorema no garantiza que este se DISEÑO DEL ALGORITMO
sepa aplicar (actuar) correctamente en la solución de una
situación problemática determinada (Onrubia & Rochera
&
Barbarà, 2001).

Toda secuencia de acciones tiene una estructura que


debe planearse (consciente o inconscientemente) antes
de ejecutarla. Cuando la acción se realiza de manera
automática, quien actúa no es consciente de la estructura
y por tanto no puede ver las correlaciones en su
actuación y con el entorno de dicha acción; las acciones
se convierten en operaciones cuando quien las realiza es
consciente de las relaciones inherentes. Pero las
acciones prácticas requieren tanta atención que puede
ser difícil realizarlas dándose cuenta al mismo tiempo de
las correlaciones inherentes a ellas. Por esto, son
fundamentales los sistemas de signos a los cuales se
traducen las acciones; con los signos se pueden expresar
las relaciones que existen dentro de las acciones y entre
sus objetos, y se puede proceder con los signos del
mismo modo que con los objetos reales (Aebli, 2001).

Según Saussure (1916), citado por Aebli (2001), hay tres


grandes grupos dentro de los signos: los símbolos, los
signos propiamente dichos y las señales. Un signo, a TRADUCCIÓN DEL ALGORITMO EN MICROMUNDOS
diferencia de un símbolo, no se parece a su significado; para camello1 muestra
es elegido arbitrariamente y para conocer su significado
[Esto es un camello]
hay que aprenderlo y fijarlo en la memoria: palabras de
lenguajes naturales, cifras, signos algebraicos, etc. Los muestra [Esto es un
significados se pueden codificar básicamente de cuatro camello] muestra [Esto es
formas: mediante la palabra hablada, la palabra escrita, el un camello] fin
signo gráfico, y la variable. Así, el número 2 se puede
representar mediante el fonema “dos”, la palabra “dos”, el
signo “2” o “..” y la variable “a”.

De lo anterior se puede deducir que elaborar programas


de computador para resolver problemas matemáticos

Pág.54 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


TRADUCCIÓN DEL ALGORITMO EN SCRATCH

Este es un problema muy sencillo de resolver mediante la


utilización de una estructura secuencial. Pedir a los
estudiantes que analicen qué tan eficiente sería utilizar la
misma estructura si el enunciado del problema fuera:
Escribir un procedimiento que muestre 60 veces en
pantalla la frase “Esto es un camello”. ¿Qué habría que
hacer si se cambiara 3 veces por 60?

ACTIVIDADES
1. Diseñar un algoritmo que pida al usuario dos
números y calcule la suma, la resta, la multiplicación y la
división del primero por el segundo. Traducir el algoritmo al
lenguaje Logo y probarlo.

2. Diseñar un algoritmo para calcular cuántos litros


caben en un tanque. Los datos de entrada (profundidad, largo
y ancho) deben estar dados en metros. Se debe tener presente
que 1 litro equivale a 1 dm3. Traducir el algoritmo al lenguaje
Logo y probarlo.

estructura repetitiva. Por lo general, la mayoría de


ESTRUCTURA ITERATIVA (REPETICIÓN) instituciones educativas destina una o dos horas
semanales a la clase de informática, tiempo muy limitado
La estructura iterativa o de repetición permite ejecutar una para cubrir todas las variantes que ofrecen los lenguajes
o varias instrucciones, un número determinado de veces de programación. Ante esta situación, se requiere
o, indefinidamente, mientras se cumpla una condición. concentrar esfuerzos en lograr la comprensión de
Esta estructura ayuda a simplificar los algoritmos, conceptos fundamentales de los tres tipos básicos de
ahorrando tiempo valioso a quien resuelve problemas con estructura (secuencial, repetitiva y condicional). Esto solo
ayuda del computador. se consigue resolviendo una buena cantidad de
problemas cuya solución requiera de estas estructuras en
En programación existen al menos dos tipos de forma combinada.
estructuras repetitivas, las cuales a su vez tienen
variantes en los diferentes lenguajes de programación. La
característica común es que ambos tipos permiten
ejecutar una o varias instrucciones:
• un número determinado de veces.
• mientras se cumpla una condición.

Debido a que esta guía está diseñada para educación


básica, solo se cubre aquí el primer tipo de estructura
repetitiva: Ejecutar una o varias instrucciones un número
determinado de veces.

La cantidad de horas disponibles para informática es otro


de los factores que impiden desarrollar un programa
curricular con todas las variantes que puede ofrecer la
Pág.55 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
EJEMPLO 3-8
Escribir un procedimiento que muestre 85 veces en pantalla la
frase “Esto es un camello”.
R/.
ANÁLISIS DEL PROBLEMA
Formular el problema: Ya se encuentra claramente formulado.
Resultados esperados: Que aparezca 85 veces en pantalla la
frase “Esto es un camello”.
Datos disponibles: La frase dada.
Restricciones: Ninguna.
Procesos necesarios: Mostrar la frase mencionada 85 veces.

DISEÑO DEL ALGORITMO

Ilustración 3-7: Modelo de estructura iterativa.

En MicroMundos, la estructura repetitiva se implementa


con los Mandos repite y cumpleveces.

La sintaxis de repite en MMP es:


repite número [lista-de-instrucciones]
ejemplo: repite 60 [muestra “hola] donde número (60)
indica las veces que se ejecutará la lista-de-instrucciones
([muestra “hola]).

La sintaxis de cumpleveces en MMP es:


cumpleveces [serie] [lista-de-instrucciones] ejemplo:
cumpleveces [i 8][muestra :i] donde serie ([i 8]) indica el
nombre del parámetro (i) y el número de veces (8) que se TRADUCCIÓN DEL ALGORITMO EN MICROMUNDOS
ejecutará la lista-deinstrucciones ([muestra :i]).
Con el uso del comando repite:
para camello2a
Por su parte, la estructura repetitiva se implementa en
repite 85
Scratch con los Mandos repetir (n veces); repetir hasta
que <una condición sea verdadera>; por siempre; por [
siempre si <una condición es verdadera>: muestra [Esto es un camello]

] fin
Ahora con el uso del comando cumpleveces:
para camello2b
cumpleveces [i 85]
[
muestra [Esto es un camello]
]
fin

TRADUCCIÓN DEL ALGORITMO EN SCRATCH

Un problema similar fue resuelto en el Ejemplo 3-7 de la


estructura secuencial. En ese ejemplo se escribió el
Pág.56 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
procedimiento camello1 que mostraba tres veces en
pantalla la frase “Esto es un camello”. Tal como debieron
advertirlo los estudiantes, resolver este nuevo enunciado
agregando instrucciones al procedimiento camello1 no
es práctico. Por eso, en este ejemplo se diseñó un
algoritmo muy sencillo mediante la utilización de una
estructura iterativa que repite la frase 85 veces. El
número de veces que se repite la frase no tiene
incidencia en la estructura del algoritmo, sea este 85 ó
1385. Es muy importante que los estudiantes tengan
muy claro la diferencia entre los procedimientos
camello1 y camello2a.

En el Ejemplo 3-4 se solicitó a los estudiantes dibujar un Esta situación evidencia cómo en las actividades de
cuadrado cuyos lados fueran variables. Es muy probable programación el estudiante debe utilizar conocimientos
que en una primera aproximación a la solución de este adquiridos con anterioridad, cómo la etapa de análisis
problema ellos elaboren un procedimiento similar al que favorece y alienta el rigor y la disciplina en el
se planteó en ese ejemplo, utilizando una estructura razonamiento y cómo ese análisis puede conducir a
secuencial: nuevos descubrimientos que deriven en
reorganizaciones del pensamiento, reestructuraciones de
para cuadrado :lado esquemas, etc. (Dufoyer, 1991). Además, algunos
limpia cp psicólogos han llegado a sugerir que la programación
adelante :lado alienta el estudio de las matemáticas, facilita la
derecha 90 comprensión de conceptos de esta disciplina, admite
adelante :lado explorar activamente campos de conocimiento, permite
derecha 90 desarrollar habilidades y ofrece un lenguaje que permite
adelante :lado describir la forma personal de resolver problemas.
derecha 90
adelante :lado
fin
EJEMPLO 3-9
Un análisis más elaborado de este problema permitirá a Calcular el valor de la sumatoria: 1 + 2 + 3 + 4 +5 + … + 100.
los estudiantes adquirir una conciencia mayor de la R/.
organización global de un cuadrado. Determinar los ANÁLISIS DEL PROBLEMA
elementos comunes presentes en todos los cuadrados Formular el problema: Ya se encuentra claramente formulado.
permite identificar qué permanece estático (cuatro Resultados esperados: El resultado de la suma de los números
segmentos de recta iguales y cuatro ángulos iguales) y entre 1 y 100.
qué es lo que cambia (longitud de los segmentos). Datos disponibles: El rango de números dado.
Aquello que cambia entre un cuadrado y otro se puede Restricciones: Ninguna.
tratar como un parámetro. Además, este análisis permite Procesos necesarios: guardar el número 0 en una variable e
descubrir que es posible utilizar otro tipo de estructura de incrementarla en 1 cada vez que se ejecute el ciclo repetitivo.
control para elaborar el mismo dibujo:
Guardar 0 en otra variable e ir acumulando en ella su propio
valor más el valor de la primera variable.
TRADUCCIÓN DEL ALGORITMO EN MICROMUNDOS
para cuadrado :lado
limpia
cp
repite 4
[
adelante :lado
derecha 90
]
fin

TRADUCCIÓN DEL ALGORITMO EN SCRATCH

Pág.57 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


DISEÑO DEL ALGORITMO 0 cumpleveces [contador
100 ]
[
da "sumatoria :sumatoria + :contador + 1
muestra nombres
]
muestra frase
[El valor de la suma 1 + 2 + 3 + . . . + 100
es ] :sumatoria fin

Los procedimientos suma100a y suma100b son


equivalentes, realizan la misma tarea. La primitiva de
MicroMundos cumpleveces utilizada en el
procedimiento suma100b tiene una ventaja adicional con
respecto a repite : incorpora una variable que aumenta
en uno su valor cada vez que se ejecuta un ciclo de la
estructura iterativa. La variable, que en este caso se
llama contador inicia en 0 y termina en 99, para un total
de 100 ciclos. Por este motivo se necesita sumarle uno a
contador para que tome valores entre 1 y 100.

TRADUCCIÓN DEL ALGORITMO EN SCRATCH

Este algoritmo utiliza una operación muy útil en programación:


sumatoria = sumatoria + contador
Consiste en almacenar en una variable sumatoria el valor de
ella misma (sumatoria) más otro valor variable (contador). Es
muy utilizada para acumular valores.

TRADUCCIÓN DEL ALGORITMO EN MICROMUNDOS


Con el Mando
repite: para EJEMPLO 3-10
suma100a La profesora Ángela Cristina necesita calcular la nota definitiva
bnombres para cada uno de los 22 alumnos que asisten a su curso de
da "contador 0 geometría. Ella realizó a todos sus estudiantes, en el primer
da "sumatoria 0 periodo del año lectivo, dos exámenes y asignó un trabajo de
repite 100 investigación. ¿Cómo puedes ayudarle?
[ R/.
da "contador :contador + 1 ANÁLISIS DEL PROBLEMA
da "sumatoria :sumatoria + :contador Formular el problema: Se requiere calcular un promedio de
muestra nombres tres notas para cada uno de los 22 alumnos.
] Resultados esperados: La nota definitiva de cada uno de los 22
muestra frase alumnos.
[El valor de la suma 1 + 2 + 3 + . . . + 100 Datos disponibles: El número de alumnos: 22. Las notas de
cada alumno las debe digitar la profesora.
es ] :sumatoria fin
Restricciones: Cada una de las tres notas tienen el mismo
porcentaje en la nota definitiva. Tres notas por alumno y 22
Ahora el mismo algoritmo pero con el Mando cumpleveces de
alumnos. Procesos necesarios: Para cada uno de los 22
MicroMundos:
alumnos: Leer las tres notas, sumarlas, calcular el promedio y
mostrar el promedio.
para suma100b
bnombres da "sumatoria

Pág.58 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


DISEÑO DEL ALGORITMO

El procedimiento notas realiza la misma tarea 22 veces:


leer tres notas, sumarlas, promediarlas y mostrar el
promedio. La manera más eficiente de resolver este
problema es mediante una estructura iterativa. Nótese
que los valores de las notas que ingresa el usuario no se
validan, esto puede ocasionar que alguien digite una
nota de, por ejemplo, 960; lo que dará como resultado un
promedio fuera del rango permitido. Este aspecto se
atiende con la siguiente estructura, la condicional.

Los ejemplos anteriores ilustran la solución de problemas


TRADUCCIÓN DEL ALGORITMO EN MICROMUNDOS mediante la utilización de estructuras repetitivas. En ellos
para notas se puede apreciar claramente la forma como esta
cumpleveces [estudiante 22] estructura simplifica algunas soluciones, en comparación
[ con soluciones cuya estructura es secuencial.
pregunta [Ingrese la nota del primer
examen ] da "examenUno respuesta Por otro lado, la estructura repetitiva es muy apropiada
pregunta [Ingrese la nota del segundo para explorar los conceptos de multiplicación (suma
examen ] da "examenDos respuesta cuyos sumandos son iguales) y potenciación
pregunta [Ingrese la nota del trabajo de (multiplicación de factores iguales).
investigación ] da "trabajo respuesta
da "sumatoria :examenUno + :examenDos
EJEMPLO 3-11
+ :trabajo da "promedio :sumatoria / 3
Elaborar un procedimiento para calcular tablas de multiplicar.
muestra (frase [El promedio del estudiante ] :estudiante + 1
El usuario debe ingresar qué tabla de multiplicar desea.
[ es
R/.
]
ANÁLISIS DEL PROBLEMA
:promedio)
Formular el problema: Ya se encuentra claramente formulado.
] Resultados esperados: La tabla de multiplicar que el usuario
Fin indique.
Datos disponibles: El número de la tabla (indicada por el
TRADUCCIÓN DEL ALGORITMO EN SCRATCH usuario).
Restricciones: Ninguna.
Procesos necesarios: pedir al usuario que ingrese la tabla de
multiplicar que desea. Guardar ese valor en una variable
(tabla).
Multiplicar cada uno de los valores entre 0 y 9 por la variable
tabla.
Mostrar el resultado de cada multiplicación.

Pág.59 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


DISEÑO DEL ALGORITMO

Ilustración 3-8: Ejecución del procedimiento tablaMultiplicar.

TRADUCCIÓN DEL ALGORITMO EN SCRATCH

TRADUCCIÓN DEL ALGORITMO EN MICROMUNDOS


para tablaMultiplicar
pregunta [¿Qué tabla de multiplicar
desea? ] da "tabla respuesta La estructura repetitiva es muy apropiada para reforzar
cumpleveces [multiplicando 10] los conceptos de multiplicación y potenciación. La suma
[ 6 + 6 + 6 + 6 + 6 + 6 + 6 puede expresarse como una
multiplicación: 6 * 7; de forma similar, la multiplicación 3
da "resultado :multiplicando * :tabla
* 3 * 3 * 3 puede expresarse como una potencia: 3 4=81.
muestra (frase :tabla [ x ] :multiplicando El número 3, que se multiplica varias veces, se conoce
[ = ] :resultado) como base; 4, la cantidad de veces que se debe
multiplicar la base, se conoce como exponente, y 81, el
] fin resultado, se conoce como potencia. Se lee: 81 es la
Nótese que, al igual que en el ejemplo 3-10, el reportero potencia de 3 elevado a la 4.
frase devuelve una lista formada por sus entradas
(palabras o listas). frase puede tomar más de dos Existe una leyenda muy antigua sobre el origen del juego
entradas cuando se utilizan paréntesis para encerrar el de ajedrez. La leyenda evidencia claramente la velocidad
reportero y sus entradas, las cuales pueden incluir texto con que aumenta una progresión geométrica y es un
entre corchetes: muestra (frase [texto 1] :variable1 buen punto de partida para empezar a resolver problemas
[ texto2] :variable2 + 1 de potenciación con ayuda del computador.
:variable3 [texto3])
Historia Curiosa
Un día, en la India, un joven bracmán llamado Lahur Sessa pidió
una audiencia con el Rey para obsequiarle el juego que había
inventado. La curiosidad del rey lo llevó a conceder la cita que
pedía el joven Sessa. El rey quedó maravillado y aprendió
rápidamente las reglas de aquel juego que consistía de un
tablero cuadrado dividido en sesenta y cuatro cuadritos iguales
(32 blancos y 32 negros); sobre este tablero se ubicaban dos
colecciones de piezas, que se distinguían unas de otras por el
color, blancas y negras, repitiendo simétricamente los motivos
y subordinadas a reglas que permitían de varios modos su
movimiento.

Pág.60 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


Algún tiempo después, el rey mandó llamar a su presencia al EJEMPLO 3-12
joven bracmán y dirigiéndose a él le dijo: Elaborar un procedimiento para ayudar a los hábiles algebristas
- Quiero recompensarte, amigo mío, por este de la corte del Rey Ladava con el cálculo del número de granos
maravilloso obsequio, que de tanto me sirvió para aliviar viejas
de trigo que deben entregar a Lahur Sessa como pago por
angustias. Pide, pues, lo que desees, para que yo pueda
demostrar, una vez más, como soy de agradecido con aquellos haber inventado el juego de ajedrez. R/.
que son dignos de una recompensa. ANÁLISIS DEL PROBLEMA
Ante tal ofrecimiento, el joven respondió: Formular el problema: Es un problema de multiplicaciones de
- Voy, pues, a aceptar por el juego que inventé, una factores iguales que pueden expresarse en forma de potencias;
recompensa que corresponda a vuestra generosidad; no deseo, además, para llegar al resultado final se deben acumular los
sin embargo, ni oro, ni tierras, ni palacios. Deseo mi resultados parciales.
recompensa en granos de trigo. -¿Granos de trigo? –exclamó el Resultados esperados: El número de granos que el Rey Ladava
rey, sin ocultar la sorpresa que le causara semejante debe entregar a Lahur Sessa.
propuesta-. ¿Cómo podré pagarte con tan insignificante
Datos disponibles: El número de cuadros del tablero de ajedrez
moneda?
(64) y la regla dada por Sessa: “un grano de trigo por la primera
-Nada más simple -aclaró Sessa-. Dadme un grano de trigo por
la primera casilla del tablero, dos por la segunda, cuatro por la casilla del tablero, dos por la segunda, cuatro por la tercera,
tercera, ocho por la cuarta, y así sucesivamente hasta la ocho por la cuarta, y así sucesivamente hasta la sexagésima
sexagésima cuarta y última casilla del tablero. cuarta y última casilla del tablero”.
No sólo el rey, sino también los visires y venerables bracmanes, Restricciones: Aplicar la regla planteada por Sessa. Procesos
se rieron estrepitosamente al oír la extraña solicitud del joven. necesarios: Un ciclo que se repita 64 veces. En cada iteración
Insensato -exclamó el rey-. ¿Dónde aprendiste tan grande se debe acumular en una variable (granos), su propio valor
indiferencia por la fortuna? La recompensa que me pides es más el resultado de 2 elevado a un exponente que aumenta
ridícula. Mando llamar el rey a los algebristas más hábiles de la su valor en uno con cada iteración.
Corte y les ordenó calculasen la porción de trigo que Sessa
pretendía.
DISEÑO DEL ALGORITMO
Los sabios matemáticos, al cabo de algunas horas de realizar
cálculos dispendiosos, volvieron al salón para hacer conocer al
rey el resultado completo de sus cálculos. Preguntóles el rey,
interrumpiendo el juego:
-¿Con cuantos granos de trigo podré cumplir, finalmente, con la
promesa hecha al joven Sessa?
-Rey magnánimo -declaró el más sabio de los geómetras-:
calculamos el número de granos de trigo que constituirá la
recompensa elegida por Sessa, y obtuvimos un número cuya
magnitud es inconcebible para la imaginación humana (el
número en cuestión contiene 20 guarismos y es el siguiente:
18.446.744.073.709. 551. 615. Se obtiene restando 1 a la
potencia 64 de 2).
-La cantidad de trigo que debe entregarse a Lahur Sessa -
continúo el geómetra- equivale a una montaña que teniendo
por base la ciudad de Taligana, fuese 100 veces más alta que el
Himalaya. La India entera, sembrados todos sus campos, y
destruidas todas sus ciudades, no produciría en un siglo la
cantidad de trigo que, por vuestra promesa, debe entregarse al
joven Sessa.
¿Cómo describir aquí la sorpresa y el asombro que esas
palabras causaron al Rey Ladava y a sus dignos visires? El
soberano hindú se veía, por primera vez, en la imposibilidad de
cumplir una promesa. Lahur Sessa -refiere la leyenda de la
época-, como buen súbdito, no quiso dejar afligido a su
soberano. Después de declarar públicamente que se desdecía
del pedido que formulara, se dirigió respetuosamente al
monarca y le dijo: los hombres más precavidos, eluden no sólo
la apariencia engañosa de los números, sino también la falsa
modestia de los ambiciosos.
El rey, olvidando la montaña de trigo que prometiera al joven
bracmán, lo nombró su primer ministro.
(Tomado del libro “El hombre que calculaba” escrito por Malba
Tahan) TRADUCCIÓN DEL ALGORITMO EN MICROMUNDOS
Utilizando el comando
repite: para ajedrez
bnombres da

Pág.61 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


"exponente 1 da Los estudiantes deben encontrar solución a los siguientes
"granos 0 repite 64 problemas empleando la metodología expuesta en la Unidad 1:
[ Analizar el problema (formulación del problema, resultados
da "granos :granos + potencia esperados, datos disponibles, restricciones y procesos
2 :exponente da "exponente :exponente + necesarios), diseñar el algoritmo, traducirlo al lenguaje Logo y
1 probar el programa resultante.
muestra nombres
] 1. Elaborar un procedimiento que calcule y muestre las áreas
muestra frase de 100 círculos con radio de 1 a 100 cm.
[El número de granos que ganó Sessa
es ] :granos fin 2. Elaborar un procedimiento que calcule y muestre el
cuadrado de los números 1 a 90.

3. Elaborar un procedimiento que le reporte al electricista de


TRADUCCIÓN DEL ALGORITMO EN SCRATCH un edificio recién construido cuantos bombillos debe
comprar. Se sabe que el edificio tiene 8 pisos, 8 apartamento
en cada piso y cada apartamento tiene 8 bombillos. En la
solución se debe emplear una estructura repetitiva.

4. Elaborar un procedimiento que calcule el área de cualquier


cubo.

5. Elaborar un procedimiento que dibuje polígonos regulares


de 5, 6, 7, 8 y 9 lados. El usuario debe indicar el número de
lados del polígono.

Nótese que como Scratch (hasta la versión 1.4) no incluye un


operador para calcular potencias, una forma de solucionar esta
situación consiste en elaborar un subprocedimiento llamado
potenciación para realizar este cálculo a partir de
multiplicaciones sucesivas.

¿Obtuvieron los estudiantes el mismo


resultado (18446744073709551615)?
¿El computador también tardó varias horas para calcular
el resultado final?
¿Qué función cumplen los comandos bnombres y
nombres en MicroMundos?
¿Cuál es la diferencia entre crecimiento aritmético y
crecimiento geométrico?

ACTIVIDADES

Pág.62 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


ESTRUCTURA CONDICIONAL Por su parte, un bloque de instrucciones puede contener
una o varias instrucciones que se ejecutan una detrás de
Es fundamental que los estudiantes presten atención otra. La estructura condicional tiene tres variantes:
especial a las estructuras que utilizan para resolver • selección simple.
problemas y las reconozcan para lograr mayor control • selección doble.
sobre la solución planteada. De esta manera, la • selección múltiple.
programación de computadores les ayuda a planear
conscientemente las secuencias de acciones que Las estructuras condicionales simple y doble evalúan una
resuelven un problema planteado y las estructuras proposición (condición) que devuelve como resultado
involucradas en una solución dada. únicamente dos valores posibles y excluyentes:
verdadero o falso. En cambio, la estructura condicional
La estructura condicional se utiliza para indicarle al de selección múltiple permite que la condición devuelva
computador que debe evaluar una condición y, a partir del más de un valor posible y que para cada uno de esos
resultado, ejecutar el bloque de instrucciones valores se ejecute el bloque de instrucciones
correspondiente. La forma más común está compuesta correspondiente. Por ejemplo, una situación típica de
por una proposición (condición) que se evalúa y dos selección múltiple es cuando la incorporación al ejercito,
bloques de instrucciones que se ejecutan, uno cuando la de un joven al terminar sus estudios de educación media,
condición es verdadera (selección simple y doble) y otro depende del color de una balota: si saca una balota roja,
cuando ésta es falsa (únicamente en la selección doble). su incorporación al ejercito es inmediata; si es azul, la
Algunos autores se refieren a este tipo de estructura incorporación será en julio; y si es blanca, el estudiante
como estructura de selección, estructura selectiva o no debe prestar servicio militar. En esta situación hay tres
estructura de decisión; en esta guía, todas estas valores posibles y cada uno de esos valores implica la
denominaciones son consideradas sinónimas. ejecución de una instrucción diferente (Jiménez, 2002).

Para que una proposición (frase declarativa) sea valida, Debido al alcance de esta guía, solo se cubren aquí los
debe poder afirmarse que es verdadera o falsa. En dos primeros tipos de estructura condicional: simple y
programación, se utilizan operadores relacionales (<, =, doble.
>) para establecer la relación que existe entre dos
elementos de la proposición. Por ejemplo, “La calificación
de Esteban en Historia es mayor que 6.0”, es una Selección simple
proposición valida. De una parte tenemos “La calificación La estructura condicional de selección simple ejecuta un
de Esteban en Historia” (A) y, de la otra, el valor “6.0” (B); bloque de instrucciones cuando la proposición
de A con respecto a B, se afirma que “A es mayor que B”, (condición) es verdadera; si esta es falsa, no hace nada.
por lo tanto, la relación existente entre A y B es “ser
mayor que”. Para que el computador entienda esta
proposición, debe expresarse así: “:calificación > 6.0”,
donde :calificación es la variable que contiene el valor de
“la calificación de Esteban en Historia”.

OPERADOR DESCRIPCIÓN EJEMPLO


= Igual que :ánguloUno = 90 :tipo
= “SI
< Menor que :ánguloUno < 90

> Mayor que :ánguloUno > 90

Ilustración 3-9: Modelo de estructura condicional simple.


Adicionalmente, las proposiciones pueden ser sencillas o
compuestas. Las proposiciones compuestas se forman Para la estructura condicional de selección simple,
con dos o más proposiciones sencillas unidas por MicroMundos ofrece el comando “si”. La sintaxis es:
operadores lógicos (y, o, no). Cuando se unen dos
proposiciones por medio del operador lógico “y”, significa si cierto-o-falso
que ambas proposiciones deben ser verdaderas [
(conjunción). Cuando se unen dos proposiciones por lista-de-instrucciones
medio del operador lógico “o”, significa que por lo menos ]
una de las dos proposiciones debe ser verdadera
(disyunción).
Pág.63 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
el comando “si” ejecuta la lista-de-instrucciones
únicamente si al evaluarse la proposición, esta devuelve
cierto (verdadero). Selección doble
La estructura condicional de selección doble ejecuta un
Por su parte, la estructura condicional de selección simple bloque de instrucciones (A) cuando la proposición
se implementa en Scratch con el bloque “si” (condición): (condición) es verdadera y un bloque diferente (B)
cuando esta es falsa.

EJEMPLO 3-13

TRADUCCIÓN DEL ALGORITMO EN SCRATCH

Ilustración 3-10: Modelo de estructura condicional doble.

Para la estructura condicional de selección doble,


MicroMundos ofrece el comando “siotro”. La sintaxis es:
siotro cierto-o-falso
[
lista-de-instrucciones-A
TRADUCCIÓN DEL ALGORITMO EN MICROMUNDOS ]
para selecciónSimple [
pregunta [Ingrese el lista-de-instrucciones-B
ángulo] da "ánguloUno ]
respuesta El comando “siotro” ejecuta la lista-de-instrucciones-A si
si :ánguloUno = 90 al evaluarse la proposición, esta es verdadera. Si la
[ proposición es falsa, se ejecuta la lista-de-
instruccionesB. Ambas listas de instrucciones se deben
da "reportar [ es un ángulo recto]
indicar entre corchetes [ ] y pueden estar compuestas por
muestra frase :ánguloUno :reportar una o más instrucciones.
]
fin En Scratch, la estructura condicional de selección doble
se implementa con el bloque “si (condición) si no”:
En este ejemplo, cierto-o-falso (:ánguloUno = 90) indica la
condición que se debe evaluar la cual puede devolver
únicamente uno de dos valores posibles: verdadero o
falso. En caso de ser verdadera la proposición, se ejecuta
la [lista-de-instrucciones] indicada entre corchetes; esta
puede contener una o varias instrucciones. Cuando es
falsa la proposición evaluada, no se ejecutan
instrucciones.
EJEMPLO 3-14
Además, se puede observar un recurso gráfico muy para selecciónDoble
importante para dar claridad a las líneas de código de los pregunta [Ingrese el
procedimientos en MicroMundos: (1) dejar líneas en ángulo] da "ánguloUno
blanco para dividir bloques de código; (2) utilizar sangrías respuesta
para indicar porciones de código subordinadas a un siotro (:ánguloUno = 90)
comando; (3) abrir y cerrar los corchetes que indican [
bloques de código en una línea a parte, de tal forma que
da "reportar [ es un ángulo recto]
se aprecie muy claramente dónde inicia y dónde termina
una lista-de-instrucciones. ]

Pág.64 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


[ empieza y dónde termina la lista que conforma el
da "reportar [ NO es un ángulo recto] bloque que se debe ejecutar.
]
muestra
frase :ánguloUno :reportar fin EJEMPLO 3-15
Un estudiante aprueba un examen cuando obtiene una
calificación mayor o igual a seis. Elaborar un procedimiento
que pida al usuario una calificación, aplique el criterio de
aprobación e imprima “Aprobado” o “Reprobado”, según sea el
caso.
R/.
ANÁLISIS DEL PROBLEMA
Formular el problema: Es un problema sencillo de selección
doble. Resultados esperados: Un aviso que reporte si el
estudiante “Aprobó” o “Reprobó” el examen.
Datos disponibles: La calificación ingresada por el usuario. Para
aprobar, la nota debe ser mayor o igual a 6.0.
Restricciones: Aplicar el criterio de aprobación.
Procesos necesarios: Solicitar al usuario que ingrese la
calificación. Evaluar si la calificación es igual o superior a 6.0;
en caso de ser verdadero, reportar “Aprobado”; en caso
En este ejemplo, cierto-o-falso (:ánguloUno = 90) indica contrario, reportar “Reprobado”.
la proposición que se debe evaluar, la cual solo puede
devolver uno de dos valores posibles: verdadero o falso. DISEÑO DEL ALGORITMO
En caso de que la proposición sea verdadera, se ejecuta
la [lista-de-instrucciones-A] indicada entre corchetes:
([da “reportar [ es un ángulo recto]]). Cuando la
proposición evaluada es falsa, se ejecuta la [lista-
deinstrucciones-B] ([da “reportar [ NO es un ángulo
recto]]).

Nótese que en MicroMundos la instrucción muestra


frase :ánguloUno :reportar se encuentra fuera de los
corchetes; por tanto, se ejecutará sin importar si la
proposición es verdadera o falsa. Además, ejemplifica
muy bien el concepto de variable ya que el valor del
ángulo se guarda en la variable denominada ánguloUno
y el aviso que se debe mostrar acerca de si el ángulo es
o no recto, también se guarda en una variable (reportar).

Tanto en la estructura de selección simple como en la


doble se debe tener en cuenta lo siguiente:
• La proposición debe ser una frase declarativa, la cual
se pueda afirmar o negar.
• En MicroMundos, se requiere que en el encabezado
vayan las palabras reservadas si y siotro
respectivamente.
• En MicroMundos, cuando la proposición es sencilla
(sin operadores lógicos) no es necesario que vaya TRADUCCIÓN DEL ALGORITMO EN
entre paréntesis; si es compuesta (dos o más MICROMUNDOS
proposiciones unidas con operadores lógicos como: o, para aprueba
y, no) tiene que encerrarse con paréntesis. Como en
local "calificación pregunta
el primer caso no sobran los paréntesis (no genera
error), es recomendable utilizarlos siempre. Por [Ingrese la Calificación] da
ejemplo: (ánguloUno = 90) es una proposición sencilla "calificación respuesta
equivalente a ánguloUno = 90, pero es mejor utilizar siotro o :calificación > 6.0 :calificación = 6.0
la primera forma. [
• En MicroMundos, las listas de instrucciones deben anuncia [Aprobado]
estar agrupadas con corchetes, estos indican dónde ]

Pág.65 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


[ operaciones equivalentes a ciertas estructuras del
anuncia [Reprobado] pensamiento verbal, tales como implicación (p -> q: si...,
] entonces...; si la hipótesis p es verdadera, entonces la
fin consecuencia q se sigue necesariamente); disyunción (p
TRA V q; ó p, ó q, ó los dos); unión (p ^ q); incompatibilidad (p |
DUC q).
CIÓ
N Una forma efectiva para iniciar a los estudiantes más
DEL pequeños en el tema de las proposiciones puede ser la
ALG propuesta por Marquínez & Sanz (1988): empezar con
ORI cadenas de palabras (sin sentido), avanzar a expresiones
TMO (con sentido incompleto), continuar con oraciones (con
EN
sentido completo) y finalizar con proposiciones simples y
SCR
ATC compuestas (calificables como falsas o verdaderas).
H
EJEMPLO
"La escuela tiene pan francés caído de China" es una CADENA
de palabras que carece de sentido.
"Los amigos de lo ajeno" es una EXPRESIÓN que tiene sentido
pero no completo.
"Ojalá que mañana no llueva" es una ORACIÓN con sentido
completo pero no es calificable.
"Simón Bolívar nació en Santa Marta" es una PROPOSICIÓN
que puede calificarse de verdadera o falsa.

ACTIVIDAD
Escribir en el espacio si la propuesta corresponde a una
cadena, expresión, oración o proposición:

a. ________________ prohibido fumar en el salón de clase.


b. ________________ el oro es un elemento de la tabla periódica.
c. ________________ calle perfecta para perro azul.
En este ejemplo, se puede observar la sintaxis de los
operadores lógicos (y, o, no), mediante los cuales se unen d. ________________ el carro sedán azul.
proposiciones sencillas para construir proposiciones e. ________________ ¿qué hora es?
compuestas. Estos deben ir en seguida del paréntesis que
f. ________________ el nevado del Ruiz es un volcán.
abre la proposición:
siotro o :calificación > 6.0 :calificación = 6.0 g. ________________ Simón Bolívar murió en Santa Marta
La proposición se lee así: h. ________________ Cali es una ciudad colombiana.
“calificación mayor que 6.0 o calificación igual a 6.0”. i. ________________ camisa cuadrada por carro naciente.
j. ________________ Perú y Chile son países Iberoamericanos.
Proposiciones k. ________________ el cuaderno verde de geometría.
Según Piaget (1993), las operaciones verbales o
l. ________________ está permitido subir las escaleras.
proposicionales surgen hacia los once o doce años con la
capacidad para razonar por hipótesis. Esta capacidad m. _______________ cuatro y diez son números menores que
veinte.
hipotética-deductiva es la que hace posible que los niños
entre los once y los catorce años piensen en términos de n. ________________ si alguien es chileno, entonces es español.
proposiciones y no únicamente sobre objetos; acepten o. ________________ hace mucho frío
cualquier tipo de dato como puramente hipotético y p. ________________ en un lugar de la Mancha de cuyo nombre
razonen correctamente a partir de él; deduzcan las q. ________________ ojalá no me llame.
implicaciones de enunciados posibles y así distingan
entre lo posible y lo necesario; formulen todas las r. ________________ apague la luz cuando salga.
hipótesis posibles relativas a los factores que entran en
juego en una actividad y organicen la información en Un curso de algoritmos y programación puede contribuir
función de estos factores. significativamente a desarrollar la capacidad
hipotéticadeductiva en la que el pensamiento no proceda
De acuerdo con Piaget y sus seguidores, es en este de lo real a lo teórico, sino que parta de la teoría y
estado del desarrollo cognitivo en el que se constituye un establezca o verifique relaciones reales entre cosas.
conjunto de estructuras proposicionales basadas en lo Concretamente, dos tipos de actividades pueden ayudar
que en teoría de conjuntos se llama un "conjunto de todos a lograr este propósito: utilizar estructuras condicionales
los subconjuntos". Esta estructura está conformada por
Pág.66 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
las cuales están basadas en la operación de implicación En relación a las proposiciones sexta y séptima, su valor
(si...., entonces...) y formular enunciados declarativos de verdad depende del momento en el cual se haga la
compuestos (proposiciones simples unidas por los afirmación. Esto nos lleva a otra forma de clasificar los
conectores lógicos “y”, “ó”) que el computador pueda enunciados declarativos: de acción cuando el sujeto no
evaluar como verdaderos o falsos. Adicionalmente, estos está determinado (6 y 7); de atribución cuando el sujeto
enunciados promueven el razonamiento por atribución o es determinado y se le atribuye una propiedad (1, 2 y 5); y
relación (Felipe es más joven que Ángela) en de relación cuando hay dos o más sujetos (3 y 4).
contraposición al razonamiento por predicados
(Felipe es joven). Con respecto a las relaciones de orden podemos decir
que consisten en un par de elementos presentes en una
Precisamente, la estructura condicional utilizada en proposición relacionados por medio de un atributo
programación (si... entonces...) ofrece al estudiante gradado. Por ejemplo, “el elemento A es mayor o igual
oportunidades para desarrollar habilidades con que el elemento B” o “seis es menor que doce”.
proposiciones y relaciones de orden. Sin embargo hay Proposiciones en las cuales “mayor o igual que” y “menor
que tener en cuenta que la construcción “si P entonces que” son las relaciones de orden que se establecen entre
S”, que utilizan los lenguajes de programación los elementos A y B, y entre seis y doce, respectivamente.
MicroMundos y Scratch, es procedimental y no
declarativa ya que hace énfasis en la acción y no en el Hay que tener cuidado con el uso del lenguaje cotidiano
concepto semántico de verdad (Iranzo, 2005). Mientras en el que dos relaciones pueden ser equivalentes como
que en lógica se indica que entre P y S hay una relación “igual o superior a” y “mayor o igual que”. En cambio,
de dependencia en la que al suceder P, necesariamente “entre 0 y 10, inclusive” y “entre 0 y 10” no son
se causa S; en programación se indica que cuando P es equivalentes; en la primera relación los valores 0 y 10
verdadero, necesariamente se ejecuta un conjunto de hacen que la proposición sea verdadera, en la segunda
instrucciones A y en caso de ser falso no se ejecuta relación, no.
ninguna instrucción (selección simple) o necesariamente
se ejecuta un conjunto de instrucciones B (selección RELACIÓN (MicroMundos) y Scratch
doble). A es igual a B (:a = :b)

Según Bustamante (2007), "una proposición es una frase


A es mayor que B (:a > :b)
declarativa que puede ser afirmada o negada" y para
Iranzo (2005) la lógica proposicional "se ocupa de los
enunciados declarativos simples como un todo indivisible A es mayor o igual (o :a > :b :a = :b)
y que pueden combinarse mediante partículas lógicas que B
denominadas conectores (no, y, o, si... entonces..., etc)".
A esta lógica también se le conoce con el nombre de A es como mínimo (o :a > :b :a = :b)
lógica de enunciados o lógica de conectores. De acuerdo igual a B
con estos dos autores, los siguientes enunciados A es menor que B (:a < :b)
declarativos se pueden negar o afirmar, por lo tanto
pueden considerarse proposiciones:
A es menor o igual (o :a < :b :a = :b)
1. Cali es la capital del Valle del Cauca. que B
2. El cuatro es un número impar.
A es al menos (o :a < :b :a = :b)
3. Seis es menor que doce.
igual a B
4. El INSA es un colegio regentado por la comunidad de
Padres Basilianos. A está entre 0 y 10 (y :a > 0 :a < 10)
5. Andrés Pastrana es el presidente de Colombia.
6. Es verano
7. Hace calor A está entre 0 y (y (o :a > 0 :a = 0) (o :a < 10 :a = 10))
10, inclusive
De las proposiciones primera, tercera, cuarta y quinta
podemos decir que son verdaderas y de la segunda
podemos afirmar que es falsa. Sin embargo, para poder Un aspecto fundamental de la estructura condicional es
afirmar que la cuarta proposición es verdadera, hay que la reflexión sobre el papel del lenguaje natural en la
disponer del conocimiento suficiente sobre este colegio formulación y uso de relaciones de orden y de
ubicado en el barrio Andrés Sanín en la ciudad de Cali. proposiciones. Diversos autores que se han ocupado de
Esto nos conduce a hacer otra consideración: establecer la lógica y el lenguaje han establecido tres categorías
explícitamente si una proposición es verdadera o falsa generales para el uso del lenguaje: informativa
puede resultar en algunos casos muy difícil o imposible. (suministra información definiendo, declarando,
Por otra parte, la quinta proposición fue verdadera aclarando, describiendo), expresiva (expresa
durante un lapso de tiempo (1998-2002). sentimientos, emociones, deseos) y directiva (busca

Pág.67 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


inducir a alguien a que haga u omita algo). Son ejemplos 4. (:rectorINSA = "Basiliano)
de cada una de estas categorías lo siguiente: 5. (:presidenteColombia = "|Álvaro Uribe|)
Uso informativo: 6. (:verano = true)
• La línea recta es la más corta entre dos 7. (:haceCalor = false)
punto de un plano.
• Colombia es un país andino
• Los noruegos son altos, delgados y de TIP
ojos azules. Uso expresivo: Hay que tener cuidado cuando se copia de un procesador
• Ojalá haga buen día mañana! de texto una porción de texto que contenga comillas (“) y
• Qué horror! no podría soportar algo tan se pega en el área de procedimientos de MicroMundos
doloroso. Uso directivo: [4]. Las comillas (“) que generan estos programas no son
• Prohibido fumar equivalentes a las comillas de MicroMundos [4] (").
• Cierre la puerta También hay que tener cuidado cuando se quiere
• Se solicita comportarse bien comparar un texto conformado por dos o más palabras,
este debe encerrarse entre barras (|palabra1 palabra2|).
Para la programación y en especial para la estructura
condicional, resulta imprescindible el uso informativo del
lenguaje. Este se encarga de comunicar información Otro aspecto a tener en cuenta con las proposiciones y
mediante la formulación y afirmación o negación de que se debe trabajar con los estudiantes es la riqueza del
proposiciones. El discurso informativo se utiliza para lenguaje natural (Marquínez & Sanz, 1998). Por ejemplo,
describir el mundo y para razonar sobre él, sin importar si el conector lógico "y" (^) se presenta de diversas formas
las proposiciones son importantes o no, si son generales en el lenguaje común utilizado para formular problemas y
o específicas, o si son verdaderas o falsas (Copi & los estudiantes deben aprender a identificarlo:
Cohen, 2000).
• Cali Y Medellín son ciudades ecuatorianas.
Los estudiantes deben estar en capacidad de distinguir el • Bogotá, Quito, Lima, Montevideo son ciudades
discurso informativo en un texto o en el planteamiento capitales (Bogotá es ciudad capital Y Quito es ciudad
verbal de un problema. Pero en ciertos textos o capital Y Lima es ciudad capital Y
planteamientos resulta difícil identificar de manera Montevideo es ciudad capital)
inmediata la existencia de proposiciones que se puedan • Luisa estudia, Cristina también (Luisa estudia Y
contestar con un “verdadero” o con un “falso” (Solano, Cristina estudia)
1991). En lenguajes de programación como Logo es muy • En Bogotá hace frío, IGUALMENTE en Tunja (En
importante que las proposiciones se puedan expresar Bogotá hace frío Y en Tunja hace frío)
directamente, en forma de notación matemática o • En Bogotá hace frío, DEL MISMO MODO en Tunja
mediante texto. Para ello, es fundamental que los (En Bogotá hace frío Y en Tunja hace frío)
estudiantes identifiquen los componentes de las • En Bogotá hace frío, MIENTRAS QUE en Cartagena
proposiciones (enunciados y relación entre ellos) y calor (En Bogotá hace frío Y en Cartagena hace
verifiquen que sean validos. Luego determinen en cada calor)
proposición el sujeto (objetos o individuos acerca de los • Ángela tiene un automóvil, PERO no sabe manejarlo
cuales se afirma algo) y el predicado (propiedad que aún (Ángela tiene automóvil Y Ángela no sabe
posee el sujeto) y en seguida identifiquen con un nombre manejar automóvil)
(identificador) al que puede variar (sujeto o predicado). • Luisa no viene, SIN EMBARGO escribe correos
electrónicos todos los días (Luisa no viene Y Luisa
Por ejemplo, en la proposición número 1 “Cali es la capital escribe correos electrónicos todos los días)
del Valle del Cauca”, el sujeto es “Cali”, el predicado es • Esteban no estudia, NO OBSTANTE quiere hacerlo
“capital del Valle del Cauca” y la relación es de igualdad (Esteban no estudia Y Esteban quiere estudiar)
“es”. Se debe asignar un nombre al predicado • A PESAR DEl buen tiempo, no vamos a la piscina
(capitalValle) para guardar el valor “Cali”. En el caso de la (Hace buen tiempo Y no vamos a piscina)
proposición “Seis es menor que doce”, el sujeto es “Seis”, • PESE A QUE lo sabe, no lo puede decir (Él lo sabe Y
el predicado es “doce” y la relación es “menor que”. él no lo puede decir)
• En Cali no hay energía eléctrica, TAMPOCO en
Por otra parte, de las siete proposiciones planteadas, solo Bogotá (En Cali no hay energía eléctrica Y en
la número tres se puede expresar en notación Bogotá no hay energía eléctrica)
matemática; la otras proposiciones hay que expresarlas
como texto, con excepción de la número 2 que no se
Lo mismo ocurre con la determinación de si una
puede expresar directamente:
proposición está expresada en afirmativo o en negativo:
1. (:capitalValle = "Cali)
• Colombia NO es un país europeo.
2. “El cuatro es un número impar” no se puede expresar
• El Nilo es un río Incontrolable (El Nilo es un río que
directamente. Hay que elaborar un procedimiento
NO se puede controlar)
para determinar si un número es par o impar.
• La vida humana en Marte es Imposible (NO es
3. (6 < 12)
posible la vida humana en Marte)
Pág.68 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
• Luisa es una diseñadora DESconocida (Luisa NO es 4. Expresar las siguientes proposiciones en un formato
conocida como diseñadora) que pueda entender un computador. a. 7.0 es menor o
• La aparición de cometas es un fenómeno igual que 20.5
DIScontinuo (NO es continua la aparición de b. El ánguloUno es mayor que 90
cometas) c. El jugo de lulo tiene muy buen sabor
• Los animales son Amorales (Los animales NO tienen d. La calificación de Juan Felipe en Historia es menor
moral) que 5.0
• Los castigos son ANTIpedagógicos (NO son e. Esteban es alto
pedagógicos los castigos) f. El valor de una calificación no puede ser mayor que
• NUNCA me ganó la lotería (NO me he ganado la 10
lotería) g. El valor de una calificación no puede exceder a 10
• Ricardo JAMÁS miente (Ricardo NO ha mendido) h. La capital de Colombia es Bogotá
• NINGÚN hombre colombiano usa falda (Los hombres i. 4 y 8 son números menores que 10
colombianos NO usan falda)*

* Es una afirmación falsa ya que los hombres colombianos de la EJEMPLO


etnia guambiana si usan falda.
Supongamos que Mónica quiere ir a comer helado y su padre
le propone: “Como hoy entregan tus calificaciones del segundo
Un último aspecto a tener en cuenta son los
período, si haz obtenido en matemáticas más de 8.0, vamos a
cuantificadores que se utilizan en algunas proposiciones:
comer helado el próximo sábado, de lo contrario no vamos”. La
todos, algunos, ningún, ninguno, sólo, hay, etc. Incluso,
situación “comer helado” está sujeta a la condición “obtener
proposiciones que no contienen cuantificadores se
pueden transformar en proposiciones cuantificadas: más de 8.0 en matemáticas para el segundo período”.
“Cada planeta gira sobre su eje” se puede escribir como R/.
“todos los planetas giran sobre su eje” (Melo, 2001). ANÁLISIS DEL PROBLEMA
Formular el problema: Es un problema sencillo de selección
doble. Resultados esperados: Un aviso que indique si el
ACTIVIDADES estudiante puede ir a comer helado el próximo sábado o no.
1. Identificar cuál(es) de las siguientes proposiciones son Datos disponibles: La calificación de matemáticas ingresada por
validas (calificables), explicar por qué son validas o por el usuario. La regla dice: para ir a comer helado, la nota debe
qué no lo son: ser mayor que 8.0.
a. El año 1200 aC. es más reciente que el año 970 de la Restricciones: Aplicar la regla dada.
era Cristiana Procesos necesarios: Solicitar al usuario que ingrese la
b. El jugo de lulo tiene muy buen sabor calificación de matemáticas. Evaluar si la calificación es igual o
c. La nota máxima en un examen es 10 inferior a 8.0; en caso de ser verdadero, reportar “NO come
d. Esteban es alto helado”; en caso contrario, reportar “SI come helado”.
e. Ojalá que no llueva mañana
f. ¿Podría decirme, por favor, qué hora es? DISEÑO DEL ALGORITMO
g. Cuatro es mayor que 2

2. Identificar para cuál(es) de las siguientes proposiciones


es muy difícil o imposible establecer con toda certeza si
son ciertas o falsas.
a. Edith Piaf es la alcaldesa de Paris.
b. Juan Roa Sierra fue el asesino de Jorge Eliécer
Gaitán el 9 de abril de 1948.
c. Marco Fidel Suárez fue presidente de Colombia.
d. Bogotá es la capital de Bolivia.

3. Identificar las partes que componen las siguientes


proposiciones (sujeto, predicado y la relación entre
ambas).
a. 7.0 es menor o igual que 20.5
b. El ánguloUno es mayor que 90
c. La calificación de Juan Felipe en Historia es menor TRADUCCIÓN DEL ALGORITMO EN MICROMUNDOS
que 5.0
para helado
d. Cali y Medellín son ciudades colombianas
local
e. 4 y 8 son números menores que 10
f. La capital de Colombia es Bogotá "matemáticas
pregunta [Ingrese la calificación de
Matemáticas] da "matemáticas respuesta
Pág.69 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
siotro (o :matemáticas < 8.0 :matemáticas = 8.0) Resultados esperados: La nota definitiva de cada uno de los 22
[ alumnos y un aviso que indique si aprobó o no.
anuncia [NO come helado] Datos disponibles: El número de alumnos: 22. Las notas de
] cada alumno las debe digitar la profesora.
[ Restricciones: Cada una de las tres notas tienen el mismo
anuncia [SI come helado] porcentaje en la nota definitiva. Tres notas por alumno y 22
] alumnos. Todas las notas deben ser mayores o iguales a 1 y
fin menores o iguales a 10. Para aprobar hay que tener un
promedio igual o superior a 6.5.
Procesos necesarios: Para cada uno de los 22 alumnos: Leer las
TRADUCCIÓN DEL ALGORITMO EN SCRATCH
tres notas, verificar que estén en el rango permitido (entre 1 y
10), sumarlas, calcular el promedio, verificar si aprobó o no.
Mostrar el promedio y un aviso que informe si aprobó o no.

DISEÑO DEL ALGORITMO

En este ejemplo, la proposición se puede expresar de dos


formas equivalentes: (matemáticas > 8.0)
(matemáticas <= 8.0)
La primera forma es más fácil de manipular por los
estudiantes, ya que si la proposición es verdadera
entonces “Si come helado” y si la proposición es falsa
entonces “NO come helado”; además, utiliza el operador
relacional mayor que (>).
La segunda forma (utilizada en el algoritmo) es más
compleja. En ella, si la proposición es verdadera entonces
“NO come helado” y si la proposición es falsa entonces
“SI come helado”. En esta forma se presenta un
“contrasentido” que puede desorientar a los estudiantes.
Además, hay que usar el operador relacional menor o
igual que, el cual se traduce en MicroMundos [4] así:
(o :matemáticas < 8.0 :matemáticas = 8.0) la relación
de igualdad no se menciona explícitamente en el
enunciado del problema.

EJEMPLO
La profesora Ángela Cristina necesita calcular la nota definitiva TRADUCCIÓN DEL ALGORITMO EN MICROMUNDOS
para cada uno de los 22 alumnos que asisten a su curso de para notasDos
geometría, con el fin de saber quiénes aprobaron y quiénes cumpleveces [estudiante
reprobaron (para aprobar hay que obtener una nota igual o 22]
superior a 6.5). Ella realizó a todos sus estudiantes, en el [
primer periodo del año lectivo, dos exámenes y asignó un pregunta [Ingrese la nota del primer
trabajo de investigación. ¿Cómo puedes ayudarle? examen ] da "examenUno respuesta
R/. pregunta [Ingrese la nota del segundo
ANÁLISIS DEL PROBLEMA examen ] da "examenDos respuesta
Formular el problema: Se requiere calcular un promedio de pregunta [Ingrese la nota del trabajo de
tres notas para cada uno de los 22 alumnos. investigación ] da "trabajo respuesta
siotro (o :examenUno < 1 :examenUno > 10 :examenDos <
1
Pág.70 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
:examenDos > 10 :trabajo < 1 :trabajo > 10)
[
anuncia [Datos no validos ]
]
[
da "sumatoria :examenUno + :examenDos
+ :trabajo da "promedio :sumatoria / 3
siotro (:promedio < 6.5)
[
da "aprobar [ -> NO aprobó el primer periodo de
Geometría ]
]
[
da "aprobar [ -> SI aprobó el primer periodo de
Geometría ]
]
muestra (frase [El promedio del estudiante ] :estudiante
+1
[ es ]
:promedio :aprobar)

] ]
fin

TRADUCCIÓN DEL ALGORITMO EN SCRATCH

Nótese que en este ejemplo se evalúa si la proposición


compuesta es verdadera entonces los datos no son
validos. Como se utiliza el operador lógico “o”, basta con
que una de las proposiciones sea verdadera para que
toda la proposición compuesta también lo sea.
Adicionalmente, en la traducción a Scratch se utilizan
estructuras condicionales anidadas (ver la sustentación
educativa del uso de estructuras anidadas al final de esta
sección).

EJEMPLO
Escribir un procedimiento para leer los valores de dos de los
tres ángulos internos de un triángulo y mostrar en pantalla “Es
un Triángulo Rectángulo” si efectivamente es un triángulo de
este tipo o, en caso contrario, mostrar “No es un Triángulo
Rectángulo”.

Pág.71 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


DISEÑO DEL ALGORITMO ]
[
anuncia [NO es un Triángulo Rectángulo]
]
fin
TRAD
UCCI
ÓN
DEL
ALGO
RITM
O EN
SCRAT
CH

TRADUCCIÓN DEL ALGORITMO EN MICROMUNDOS


para triangulo
local "ANGULO1
local "ANGULO2
local "ANGULO3
local
"EsRectangulo
pregunta [Ingrese el 1er Ángulo del
Triángulo] da "ANGULO1 respuesta
pregunta [Ingrese el 2do Ángulo del
Triángulo] da "ANGULO2 respuesta

da "ANGULO3 180 - :ANGULO1 - :ANGULO2


da "EsRectangulo "NO ;inicializa la variable TIPO en NO
En este ejemplo se evalúa una a una las proposiciones
;si uno de los ángulos es igual a 90 cambia el valor de TIPO
para determinar sí uno de los ángulos es igual a 90.
a Nótese que la variable esRectángulo se inicializa con el
SI valor “NO”, en caso de que cualquiera de los ángulos sea
si :ANGULO1 = 90 [da "EsRectangulo igual a 90, entonces la variable esRectangulo se cambia a
"SI] si :ANGULO2 = 90 [da “SI”. Finalmente se evalúa el valor resultante de esta
"EsRectangulo "SI] si :ANGULO3 = 90 variable para mostrar el mensaje “si” o “no” es un
[da "EsRectangulo "SI] triángulo rectángulo.

;dependiendo del valor de EsRectangulo, muestra que tipo


de triángulo es siotro :EsRectangulo = "SI EJEMPLO
[ Escribir un procedimiento para leer los valores de dos de los
tres ángulos internos de un triángulo y mostrar en pantalla “Es
anuncia [SI es un Triángulo Rectángulo]
Pág.72 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
un Triángulo Rectángulo” si efectivamente es un triángulo de TRADUCCIÓN DEL ALGORITMO EN SCRATCH
este tipo o, en caso contrario, mostrar “No es un Triángulo
Rectángulo”. Utilizar operadores lógicos en la solución.

DISEÑO DEL ALGORITMO

Esta es una solución más simple, corta y elegante que la


hallada en el ejemplo anterior. La utilización del operador
lógico “o” permite evaluar en una sola instrucción si
alguno de los ángulos vale 90. Un problema inesperado
a plantear a los estudiantes consiste en preguntarles
¿qué pasa si alguien digita valores para los ángulos que
sumados den más de 180?
¿cómo controlar que esto no suceda?

TIP
En un programa se pueden incluir varias cláusulas
condicionales anidadas. Los comandos si y siotro se
pueden anidar de igual manera como se anida la función
si (if) en la Hoja de Cálculo.
TRADUCCIÓN DEL ALGORITMO EN MICROMUNDOS
para triangulo
local "ANGULO1 ACTIVIDAD
local "ANGULO2 Tomando como base el ejemplo anterior, realizar las
modificaciones necesarias para que adicionalmente, el
local "ANGULO3
programa muestre en pantalla “No es un Triángulo” en
pregunta [Ingrese el 1er Ángulo del caso de que cualquiera de los ángulos sea menor o igual
Triángulo] da "ANGULO1 respuesta a cero.
pregunta [Ingrese el 2do Ángulo del
Triángulo] da "ANGULO2 respuesta da
"ANGULO3 180 - :ANGULO1 - :ANGULO2
siotro (o :ANGULO1 = 90 :ANGULO2 = 90 :ANGULO3 = 90) Estructuras condicionales anidadas Hay
[ situaciones que requieren el uso de estructuras
anuncia [SI es un Triángulo Rectángulo] condicionales anidadas. En estas, el resultado de la
] primera proposición implica evaluar a continuación una
[ segunda proposición y esta a su vez requiere que se
evalúe una tercera proposición, y así sucesivamente,
anuncia [NO es un Triángulo Rectángulo]
hasta agotar todas las condiciones.
]
fin Plantear estructuras algorítmicas anidables (iterativa y
condicional) requiere procesos de pensamiento
asociados con el sistema operatorio de clasificación o
inclusión. Este sistema se empieza a adquirir cuando los
niños trabajan con inclusiones de clases tales como:
gatos(A) < felinos(B) < animales(C) < seres vivos(D).
Pero el sistema de clasificación está basado en cinco
operaciones: Composición (A+A'=B, B+B'=C, B-A'=A,
CB'=B); Inversión (-A-A'=-B); Identidad (A-A=0);
Tautología (A+A=A, donde A+B=B); Asociatividad
(A+(A'+B')=(A+A')+B').

Pág.73 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


Para poder determinar rápida y efectivamente cuándo la
solución de un problema requiere estructuras anidadas,
se deben manejar sistemas de clasificación o inclusión
de clases.

El siguiente caso ilustra muy bien este punto: "Se .


requiere elaborar un procedimiento que permita
determinar para un grupo de 10 personas si tienen
derecho o no a jubilarse a partir de los datos género,
edad y años de aportes; y las siguientes condiciones: si
es hombre debe tener más de 65 años de edad y más de
60 años si es mujer, pero en todo caso se deben haber
realizado aportes por más de 20 años".
UNIDAD 4: DEPURACIÓN
Para resolver este problema se puede plantear la
siguiente inclusión de clases: edad(A) < género(B) <
aportes(C).
CUANDO SE PRESENTAN PROBLEMAS

Ilustración 4-1: Cuarta fase del ciclo de programación.

Es muy difícil elaborar procedimientos perfectos en un


primer intento y la dificultad aumenta a medida que los
problemas se vuelven más complejos. Después de
traducir el algoritmo en un lenguaje de programación, el
procedimiento resultante debe ser probado y los
resultados validados (revisión). A este proceso se le
conoce como depuración y contribuye a mejorar en los
estudiantes la capacidad para resolver problemas puesto
que la depuración basada en la retroalimentación es una
habilidad útil para toda la vida (Stager, 2003).

La depuración de un procedimiento hace parte


fundamental del ciclo de programación y desde el punto
de vista educativo estimula en los estudiantes la
curiosidad, la perspectiva, la comunicación y promueve
valores como responsabilidad, fortaleza, laboriosidad,
paciencia y perseverancia. La programación facilita un
diálogo interior en el cual la retroalimentación constante y
el éxito gradual empujan a los alumnos a ir más allá de
sus expectativas (Stager, 2003).

Otras dos actividades relacionadas con esta etapa, que


no se tratarán en esta guía, son la afinación y la
documentación. La primera consiste en realizar retoques
para lograr una mejor apariencia del programa (en
pantalla o en los resultados impresos) o para ofrecer
funcionalidades más allá de los resultados esperados,

Pág.74 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


especificados en la fase de análisis del problema. La usuario una calificación, aplique el criterio de aprobación e
segunda tiene un carácter eminentemente comunicativo, imprima “Aprobado” o “Reprobado”, según sea el caso.
con la documentación de un programa se pone a prueba
la capacidad del estudiante para informar a otras R/.
personas qué hace su programa, cómo lo hace y el ANÁLISIS DEL PROBLEMA
significado de cada elemento utilizado. Esta actividad se
Formular el problema: Es un problema sencillo de selección
puede llevar a cabo mediante comentarios introducidos al
doble.
código o por medio de documentación formal en un
documento que se anexa al procedimiento elaborado. Resultados esperados: Un aviso que reporte si el estudiante
“Aprobó” o “Reprobó” el examen.
Datos disponibles: La calificación ingresada por el usuario. Para
aprobar, la nota debe ser mayor o igual a 6.0.
Depuración
Restricciones: Aplicar el criterio de aprobación.
La corrección de fallas es una de las situaciones que
Procesos necesarios: Solicitar al usuario que ingrese la
mayor frecuencia tienen en el mundo profesional. Con
esta actividad se intenta identificar fallas sintácticas o calificación. Evaluar si la calificación es igual o superior a 6.0;
lógicas en programas que no funcionan adecuadamente; en caso de ser verdadero, reportar “Aprobado”; en caso
una vez aislada la falla, esta se soluciona y se vuelve a contrario, reportar “Reprobado”.
probar el programa y a validar los resultados. Según
Jonassen (2003), para corregir fallas efectiva y DISEÑO DEL ALGORITMO
eficientemente se requiere conocimiento del sistema
(comprensión conceptual de cómo funciona el sistema),
conocimiento procedimental (cómo llevar a cabo tanto
procedimientos de solución de fallas, como actividades de
prueba) y conocimiento estratégico (saber cuándo, dónde
y por qué aplicar procedimientos de solución de fallas y
actividades de prueba).

Fallas de sintaxis
Este tipo de fallas solo se presenta en MicroMundos ya
que el entorno de programación de Scratch es gráfico y
los estudiantes no deben escribir el código. Además, los
bloques con las instrucciones son autoencajables, por
tanto no es posible ubicar un bloque de manera que se
generen fallas de sintaxis.

Las fallas sintácticas son las más sencillas de identificar


ya que el entorno de programación indica dónde se ha
producido el error y de que tipo es. Por ejemplo,
MicroMundos reportará el error “valorDos no tiene valor
en prueba” cuando, en el procedimiento “prueba”, se
intenta mostrar el contenido de la variable “valorDos” sin
haberla asignado antes. TRADUCCIÓN DEL ALGORITMO
para aprueba1
En caso de presentarse una falla de sintaxis, el estudiante local "calificación preguntas
debe: [Ingrese la Calificación] da
• Comprender el mensaje de error que reporta el "calificación respuesta
ambiente de programación (apoyarse en las opciones
siotro (o :calificación > 6.0 :calificación = 6.0)
de ayuda que ofrece MicroMundos o en el docente).
[
• Examinar el código del programa para identificar en
cuál instrucción se encuentra la falla anuncia [Aprobado]
• Corregir la falla ]
• Probar el programa de nuevo [
anuncia [Reprobado]
]
EJEMPLO 4-1 fin
Retomemos el ejemplo del estudiante que aprueba un examen
cuando obtiene una calificación mayor o igual a seis (ejemplo Obsérvese que MicroMundos arroja un mensaje de error
3-14). Se requiere elaborar un procedimiento que pida al cuando se ejecuta el procedimiento: “No sé cómo hacer
preguntas en aprueba1”. Este error se produce porque el
Pág.75 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
comando pregunta está mal escrito, en su lugar se criterio de aprobación e imprima “Aprobado” o “Reprobado”,
escribió preguntas. El problema se soluciona al escribir según sea el caso. Con el fin de ejemplificar una falla de lógica,
correctamente el comando indicado. se debe digitar en el área de procedimientos de MMP el
siguiente código que representa el algoritmo del ejemplo 4-1.

Fallas de lógica TRADUCCIÓN DEL ALGORITMO


Este tipo de falla se presenta tanto en MicroMundos como para aprueba2
en Scratch. Para identificar fallas de tipo lógico en un local "calificación pregunta
procedimiento que no se interrumpe en ningún momento [Ingrese la Calificación] da
y que arroja unos resultados, estos se deben revisar "calificación respuesta
cuidadosamente. Uno de los procedimientos más
siotro (o :calificación < 6.0 :calificación = 6.0)
utilizados es el que se conoce como prueba de escritorio.
Esta consiste seguir paso a paso cada una de las [
instrucciones del procedimiento, asignando valores anuncia [Aprobado]
iniciales a variables y constantes y, realizando las ]
operaciones indicadas en cada instrucción hasta llegar al [
final del procedimiento. Luego, comparar los resultados anuncia [Reprobado]
que produce la prueba de escritorio con los resultados
que arroja el procedimiento; ambos conjuntos de ]
resultados deben ser iguales. Esta metodología es viable fin
cuando los procedimientos son sencillos, con pocas
instrucciones.
Obsérvese que el procedimiento “aprueba2” se ejecuta
correctamente; no aparece ningún error de sintaxis. Pero
En caso de presentarse una falla de lógica, el estudiante
no funciona bien desde el punto de vista lógico. Si lo
debe:
probamos con el valor 5, el procedimiento nos reporta que
• Examinar el diagrama de flujo para detectar
el estudiante aprobó la materia, cuando esto no es
instrucciones que faltan, sobran o que se encuentran
correcto. Si lo probamos con 7, nos reporta que el
en la posición incorrecta
estudiante reprobó, cuando tampoco es exacto. En
• Asegurarse que las instrucciones representan
cambio, cuando lo probamos con 6 nos dice que el
rigurosamente el diagrama de flujo
estudiante aprobó y este dato si es correcto. El problema
• Utilizar las opciones de MicroMundos y Scratch para radica en que en el comando siotro se digitó
ver la ejecución del programa en forma lenta. erróneamente “<” en lugar de “>”, tal como aparece en el
diagrama de flujo.

EJEMPLO 4-2 Adicionalmente, en este ejemplo se puede observar la


Continuamos con el mismo ejemplo: Elaborar un sintaxis en MicroMundos de los operadores lógicos (y, o,
procedimiento que pida al usuario una calificación, aplique el
no), mediante los cuales se unen proposiciones sencillas para construir
proposiciones compuestas. Estos deben ir en seguida del paréntesis que abre la
proposición: siotro (o :calificación > 6.0 :calificación = 6.0) La proposición se lee
así: “calificación mayor que 6.0 o calificación igual a 6.0”. En la detección
y eliminación de fallas en un procedimiento, cuenta mucho la cantidad de fallas
similares que el estudiante ha tenido oportunidad de resolver. La “experiencia” es
un factor crucial; incluso, las fallas que se recuerdan con mayor precisión son
aquellas cuya solución presentó mayor dificultad (Jonassen, 2003). Con la
depuración, el estudiante realiza un conjunto de actividades que contribuyen a
aprender de ese problema, a reinterpretarlo, a formular otros nuevos y a
incrementar la comprensión de la solución hallada. Esta incita a los estudiantes a
preguntarse: “¿puedo obtener el mismo resultado de una forma diferente?” y
“¿puedo utilizar los métodos empleados para solucionar este problema en la
solución de otros que se me han presentado antes?”

Pág.76 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


ANEXO 1

RESUMEN DE COMANDOS DE MICROMUNDOS Y SCRATCH

A continuación se ofrece un resumen de las primitivas de MicroMundos y Scratch utilizadas en esta Guía.

DESCRIPCIÓN MICROMUNDOS SCRATCH


ADELANTE Adelante (ad) número Ver
Mueve la tortuga hacia adelante. Los valores at, de, iz.
mínimos y máximos para adelante son -9999 y adelante control1 repite
9999, respectivamente. 4 [ad 50 de 90]

ALTO Alto
Detiene el procedimiento que está activo. Alto solo Ver deténtodo, deténme y reporta.
puede usarse dentro de un procedimiento. para contar :número si
:número > 100 [alto]
muestra :número
contar :número + 5
fin

ANUNCIA anuncia palabra-o-lista


Muestra el mensaje en una caja de alerta. anuncia "bienvenido
Haciendo clic en Aceptar se cierra la caja. Si anuncia [Hola] anuncia
mueve la caja de alerta a una nueva posición texto1
mientras está en la pantalla, esta será la posición Ver pregunta y respuesta.
en que la próxima caja de alerta aparecerá en el
proyecto.

ATRÁS atrás (at) número


Mueve la tortuga hacia atrás. Los valores mínimos Ver ad, de, iz atrás
y máximos para atrás son -9999 y 9999, 45 at control1 repite
respectivamente. 4 [at 50 iz 90]

AZAR azar número azar


Devuelve un número entero positivo (incluyendo el control1 azar 2
0) menor que número. El número máximo es 9999. Repite 26 [ad azar 30 de azar 60]

Pág.77 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


BNOMBRES bnombres Ver
Borra de la memoria todas las variables globales. nombres.
MicroMundos no borra las variables cuando se bnombres
abre o se crea un nuevo proyecto. Por lo tanto se No aplica
recomienda usar bnombres cada vez que se inicie
un nuevo proyecto.
CON PLUMA Cp
Pone la pluma a la tortuga en uso. La tortuga Ver sp. repite 6 [sp ad 10
dejará una marca cuando se mueva, pero no cp ad 10]
cuando sea arrastrada.
CUMPLEVECES cumpleveces serie lista-
Activa la lista de instrucción para cada uno de los deinstrucción Ver
valores especificados en la serie. La primera cumplelista. cumpleveces [i
entrada es una lista con un nombre de variable 8][muestra :i] No aplica
temporal y un número máximo. La segunda cumpleveces [i 360] [fcolor :i / 10 ad
entrada es una lista de instrucciones que usa la 40 at 40 de 2]
variable incluida en la primera lista.
DA (ASIGNA) da vpalabra palabra-o-lista
Crea una variable y le asigna el valor palabra- Ver nombra, cosa, bnombre,
olista. Estas variables mantienen su valor siempre nombres y creavarproyecto.
y cuando no se las borre o se cierre MicroMundos. da "equipo [t1 t2 t3]
da "texto texto1

DESCRIPCIÓN MICROMUNDOS SCRATCH


DERECHA de número; derecha número
Gira la tortuga hacia la derecha. El máximo valor Ver ad, at,iz. derecha 45
para derecha es 9999. repite 5 [de -90 ad 15 de 90 ad 15]

ESCRIBE escribe (es) palabra-o-lista Ver


Escribe la palabra o la lista en la caja de texto en inserta. escribe "holaescribe No aplica
uso. El texto va seguido de un retorno de línea y de [Bienvenidos de nuevo] escribe
una secuencia de avance de línea. texto1

ESPERA espera número


Origina una pausa en la ejecución de un programa espera 2 espera
o de una instrucción. El tiempo se mide en décimas control1
de segundo.
ESPERAHASTA esperahasta cierto-o-falso-lista-
Antes de activar otra instrucción, espera hasta que deinstrucciones
cierto-o-falso-lista-de-instrucciones devuelva cierto. esperahasta [tocando? "t1 "t2] t3,
La entrada debe ser una lista de instrucciones que mt
devuelva cierto o falso cuando se active.
FRASE frase (fr) palabra-o-lista1 palabra-
Devuelve una lista formada por sus entradas olista2
(palabras o listas). Frase puede tomar más de dos (frase palabra-o-lista1 palabra-
entradas cuando frase y sus entradas se encierran olista2 palabra-o-lista3...) Ver
entre paréntesis. Frase no mostrará los corchetes lista.
de las listas individuales dadas como entrada. frase "uno [dos]
(frase "una "gran [ciudad]) frase
texto1 texto2

Pág.78 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


RUMBO frumbo número
Fija el rumbo de la tortuga (en grados) en la Ver rumbo.
dirección especificada. Los grados corresponden a frumbo 0 frumbo
los de la brújula: 0 apunta al norte, 90 al este, 180 control1
al sur y 270 al oeste. Derecha e izquierda hacen
girar a la tortuga un determinado número de grados
partiendo de la posición en que se encuentra en
ese momento. En cambio, frumbo hace que la
tortuga apunte en una dirección específica,
independientemente de su orientación anterior.
IZQUIERDA izquierda (iz) número Ver
Gira la tortuga a la izquierda. El máximo valor para ad, at, de.
izquierda es 9999. iz 45
ad 15
repite 4 [iz -90 ad 15 iz 90 ad 15]
LIMPIA PANTALLA Limpia
Limpia los gráficos sin cambiar la posición de la Ver bg y congelaf. limpia
tortuga.
LOCAL (VARIABLES) local palabra-o-lista Ver
Crea una variable local en el procedimiento dentro asigna, da y nombra. local No aplica
del cual se utilizó el mando local. Local sólo puede "lista da "lista páginas
ser usado dentro de un procedimiento.
MUESTRA muestra palabra-o-lista
Escribe una palabra o una lista en el Centro de muestra "hola muestra
Mando. Los corchetes exteriores de la lista no [hola todos]
aparecen. muestra :texto1

DESCRIPCIÓN MICROMUNDOS SCRATCH


NO no cierto-o-falso
Devuelve el valor lógico inverso de su entrada. Ver “y” y “o”. No aplica
no 1 = control1
NOMBRES Nombres Ver
Devuelve los nombres de todas las variables con bnombres
sus valores. muestra nombres
O o cierto-o-falso1 cierto-o-falso2
Devuelve cierto si alguna de sus entradas devuelve (o cierto-o-falso1 cierto-o-falso2
cierto. Si se usan más de dos entradas, o y sus cierto-o-falso3...) Ver “y” y “no”.
entradas deben estar entre paréntesis. o 1 = control1 control1 < 4 (o 1
= control1 control1 < 4 2 >
control2)

PORSIEMPRE porsiempre palabra-o-lista-a-activar


Activa la entrada en forma repetitiva como un Ver lanza, y Tiempo y
proceso paralelo independiente. Use detén, Detener Sincronización en los Temas de
Todo, o Ctrl+Inter para detener el proceso. Ayuda de MicroMundos.
porsiempre [ad 2]
porsiempre "cuar porsiempre
texto1
PREGUNTA pregunta palabra-o-lista Ver
Abre una caja de diálogo que muestra la pregunta y respuesta.
una zona para escribir la respuesta. Respuesta pregunta "¿Bien? pregunta
devuelve lo que se ha escrito en la caja de diálogo. [¿Cómo estás?]
Si se escribe una pregunta muy larga, solo pregunta texto1
aparecerá la parte que quepa dentro del espacio
dado. Si se arrastra la caja de diálogo a una nueva
posición mientras ésta muestra la pregunta, ésta
será la posición en que la nueva caja de diálogo se
abrirá dentro del proyecto.

Pág.79 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


REPITE repite número [lista-deinstrucciones]
Activa la lista de instrucciones el número de veces Ver cumpleveces y cumplelista para
especificado. opciones más avanzadas. repite 96
[at 40 ad 40 de 4]

RESPUESTA respuesta da “valor


Devuelve el contenido de la última respuesta que se respuesta
escribió en la caja de diálogos de pregunta. Usando si respuesta = "sí [ffig "contento] si
pregunta y respuesta, se pueden utilizar las respuesta = "no [ffig "triste]
palabras escritas en el teclado para crear un
programa interactivo.
SI si cierto-o-falso [lista-a-activar]
Activa la lista de instrucciones sólo si la proposición Ver siotro. si 5 > 2 [anuncia
de la primera entrada devuelve cierto. "correcto]

SIOTRO siotro cierto-o-falso


Activa la primera lista de instrucciones si la [lista-de-instrucciones1]
proposición devuelve cierto. Activa la segunda lista [lista-de-instrucciones2] Ver si.
de instrucciones si la proposición devuelve falso. siotro colordebajo = 15 [ad 50] [ at 50]

SIN PLUMA Sp Ver


Significa sin pluma. Saca la pluma a la tortuga en cp.
uso. La tortuga no dejará ningún trazo cuando se repite 6 [sp ad 10 cp ad 10]
mueva.

DESCRIPCIÓN MICROMUNDOS SCRATCH


Y y cierto-o-falso1 cierto-o-falso2 (y
Devuelve cierto si todas sus entradas devuelven cierto-o-falso1 cierto-o-falso2
cierto. Si se utilizan más de dos entradas, y debe cierto-o-falso3...)
estar entre paréntesis junto con todas sus Ver “o” y “no”. y 1
entradas. = 1 3 < 4 (y 1 = 1 3
< 4 2 > 1)

Pág.80 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


ANEXO 2

ESQUEMA DE LA PRESENTE GUÍA

Esta guía está escrita para docentes; por tanto, los temas se presentan en una secuencia propia de la programación de
computadores, tal como la establecen y manejan los especialistas de esta disciplina. Esta manera de exponer los contenidos
que se deben enseñar, facilita al docente la consulta de cualquier tema. Además, es la forma como por lo general se
presentan los libros de texto utilizados por los estudiantes universitarios.

ANEXO 3

PLAN DE TRABAJO CON ESTUDIANTES

La experiencia de utilizar esta guía con estudiantes de grado 5º de básica primaria en el Instituto Nuestra Señora de la
Asunción (INSA – http://www.insa-col.org) demostró que la secuencia óptima de presentación a los estudiantes de los temas
de Algoritmos y programación, para su aprendizaje, debe ser diferente al orden en que se exponen en esta guía. De la
misma forma como Onrubia & Rochera & Barberà (2001) aconsejan secuenciar la enseñanza de las matemáticas, la
sucesión de contenidos de la programación se debe planear de acuerdo a una estructura helicoidal, en la que los distintos
temas se retomen en diversas ocasiones a lo largo del proceso de enseñanza y aprendizaje, de forma que el estudiante
pueda comprender e interiorizar progresivamente dichos contenidos. Adicionalmente, este tipo de estructura facilita el
establecimiento de relaciones cada vez más elaboradas entre los distintos aspectos de los algoritmos y la programación.
La secuencia que se propone en el cuadro siguiente evita que la primera fase del ciclo de programación (analizar el
problema) se convierta en algo pesado y tedioso para los estudiantes. Cada unidad se puede cubrir en uno de los periodos
académicos en los que generalmente se divide el año lectivo.

CICLO DE UNIDAD 1 UNIDAD 2 UNIDAD 3 UNIDAD 4


PROGRAMACIÓN (1er Período) (2do Período) (3er Período) (4to Período)

Pág.81 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


• Problemas matemáticos • Ciclo de programación • • Análisis de problemas • Análisis de problemas
• Ejemplos Análisis de problemas (formular el problema; (formular el problema;
• Actividades (formular el problema; resultados esperados; datos resultados esperados;
resultados esperados; disponibles; restricciones; datos disponibles;
• Ciclo de programación
datos disponibles; procesos necesarios) restricciones; procesos
restricciones; procesos necesarios)
necesarios)

• Qué es un algoritmo • Pensamiento algorítmico • Diagrama de flujo • Diagrama de flujo


• Pseudocódigo • Variables (elaboración) (elaboración)
• Identificadores • Constantes • Expresiones • Tipos de datos
• Variables • Operadores
• Constantes • Expresiones
• Diagrama de flujo (símb.) • Diagrama de flujo
• Pensamiento algorítmico (elaboración)
• Uso de software de AV
(elaboración)
• Introducción a la prog. • Procedimientos • Estructura de repetición • Estructura condicional
• Procedimientos • Estructura secuencial
• Palabras reservadas
• Comentarios
• Procesos
• Interactividad usuario

• Tipos de fallas • Fallas de sintaxis • Fallas de lógica • Fallas de lógica


• Fallas de sintaxis • Fallas de concepción • Prueba de escritorio • Prueba de escritorio
• Fallas de precaución • Fallas de lógica • Verificación de • Verificación de
• Prueba de escritorio resultados resultados
• Documentación
• Afinamiento

Análisis de problemas Variables y constantes Operadores y expresiones Expresiones


TEMAS DE • Solución de problemas • Áreas • Polinomios aritméticos • Polinomios aritméticos
MATEMÁTICAS • Perímetros
Estructura de repetición Estructura condicional
Estructura secuencial • Multiplicación • Proposiciones
• Operaciones • Potenciación • Relaciones de orden
• Procedimientos • Polígonos
• Círculos

ANEXO 4

PROGRAMACIÓN DE COMPUTADORES
UNA PROPUESTA DE CURRÍCULO PARA SCRATCH
Esta propuesta hace parte del “Modelo Curricular Interactivo de Informática”
http://www.eduteka.org/modulos.php?catx=9&idSubX=280&ida=937&art=1
http://www.eduteka.org/curriculo2/Herramientas.php?codMat=16

Definición
Scratch es un entorno de programación desarrollado por un grupo de investigadores del Lifelong Kindergarten Group del
Laboratorio de Medios del MIT, bajo la dirección del Dr. Mitchel Resnick.
Este entorno aprovecha los avances en diseño de interfaces para hacer que la programación sea más atractiva y accesible
para todo aquel que se enfrente por primera vez a aprender a programar. Según sus creadores, fue diseñado como medio
de expresión para ayudar a niños y jóvenes a expresar sus ideas de forma creativa, al tiempo que desarrollan habilidades de
pensamiento lógico y de aprendizaje del Siglo XXI, a medida que sus maestros superan modelos de educación tradicional en
los que utilizan las TIC simplemente para reproducir prácticas educativas obsoletas.

Pág.82 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


Alcance
- Se busca que el estudiante utilice tanto estructuras de control como el conjunto de instrucciones (bloques) que ofrece el
entorno de programación Scratch para elaborar procedimientos con el fin de solucionar problemas, elaborar
simulaciones o comunicar información. Los estudiantes no elaborarán programas complejos, sólo se concentrarán
en la elaboración de procedimientos.

Objetivo General
- Al terminar la instrucción, el estudiante estará en capacidad de actuar creativamente para elaborar programas en
Scratch que resuelvan situaciones planteadas por el docente tales como: historias interactivas, simulaciones y
solución de problemas.

Objetivos Específicos
- Utilizar el sitio Web de Scratch y registrarse (Actividad 0)
- Reconocer el entorno de trabajo de Scratch (actividad 0)
- Utilizar apropiadamente las funciones básicas del entorno de trabajo de Scratch (abrir y cerrar programa, abrir y
cerrar proyectos existentes, cambiar el lenguaje del entorno) (actividad 0)
- Reconocer el entorno de trabajo del editor de pinturas (actividad 0)
- Utilizar el editor de pinturas (Actividad 1)
- Crear y editar objetos, disfraces, fondos y escenario (Actividad 1)
- Dar instrucciones básicas a objetos (al presionar, por siempre, esperar, mover, etc) (actividad 1)
- Crear historias interactivas con Scratch incorporando instrucciones como: pensar, pensar por N segundos, decir,
decir por N segundos, cambiar disfraz e instrucciones de sonido (actividad 2)
- Explicar en sus propias palabras qué es un evento y qué es un hilo (actividad 3)
- Crear programas que manejen eventos (sensores) y multihilos (enviar a todos, al recibir, al presionar objeto,
mostrar, esconder) (actividad 3 y actividad 4)
- Reconocer las formas de documentar la funcionalidad de un Proyecto en Scratch (agregar comentarios, notas del
proyecto). (actividad 4)
- Realizar modificaciones a programas existentes para mejorarlos. (actividad 4)
- Elaborar dibujos mediante el movimiento de objetos (funcionalidades de Lápiz) (Actividad 4B)
- Utilizar operaciones matemáticas y booleanas
- Crear y utilizar variables y listas
- Compartir con otras personas los trabajos realizados en Scratch.

CONTENIDOS

Utilizar el sitio web de Scratch y registrarse


o Acceder al sitio Web de Scratch o
Explorar el sitio Web de Scratch o
Registrarse en el sitio Web de Scratch
Evaluación (Indicadores de logro)
• Accede a la página Web de Scratch y se registra
en ella. Períodos de clase: 1 Actividades:

Pág.83 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


TEMA: Actividad Introductoria a Scratch http://www.eduteka.org/proyectos.php/5/2483

Reconocer el entorno de trabajo de Scratch


o Reconocer/Identificar la Barra de Títulos o
Reconocer la Barra de Menús o Reconocer
Bandera Verde y el Botón Parar o Reconocer el
Escenario
o Reconocer la información de Coordenadas
del Ratón dentro del Escenario o Reconocer el
Modo de Presentación o Reconocer los
Botones de Objeto o Reconocer la Lista de
Objetos
o Reconocer el Área de Información del
Objeto o Reconocer el Área de Programa o
Reconocer el Área de Disfraces o Reconocer
el Área de Sonidos o Reconocer el Área de
Fondos o Reconocer la Paleta de Bloques
Evaluación (logros)
• Sin ayuda de referencias, explica en sus propias palabras las principales partes del entorno de trabajo de Scratch
Períodos de clase: 1
Actividades:
TEMA: Actividad Introductoria a Scratch http://www.eduteka.org/proyectos.php/5/2483

Utilizar apropiadamente las funciones básicas del entorno de trabajo de Scratch (abrir y cerrar programa, abrir y
cerrar proyectos existentes, cambiar el lenguaje del entorno)
o Abrir y cerrar el programa o Abrir y cerrar un proyecto
existente o Crear un proyecto nuevo o Importar un Objeto
Sorpresa
o Duplicar, borrar, agrandar y achicar objeto (Barra herramientas)
o Guardar un proyecto
o Seleccionar lenguaje (idioma) de la interfaz o Ejecutar un
proyecto utilizando el botón Bandera Verde o Detener la ejecución
de un programa utilizando el botón Parar Todo o Seleccionar el
modo presentación Evaluación (logros)
• El estudiante demuestra que utiliza las opciones básicas del entorno, al: abrir, ejecutar y cerrar, proyectos existentes;
• Crea un proyecto nuevo en el que incorpore al menos un Objeto, le cambie el idioma a la interfaz y lo ejecute en los diferentes
modos de presentación que permite el entorno de trabajo. Períodos de clase: 2 Actividades:
TEMA: Actividad Introductoria a Scratch http://www.eduteka.org/proyectos.php/5/2483

Reconocer el entorno de trabajo del editor de pinturas


o Reconocer la opción Importar o Reconocer la
opción Deshacer o Reconocer la opción Rehacer o
Reconocer el lienzo o Reconocer la opción escalar o
Reconocer la opción rotar o Reconocer la opción
voltear o Reconocer la opción limpiar o Reconocer la
barra de herramientas o Reconocer las opciones de
área o Reconocer la opción de intercambiar colores o
Reconocer la paleta de colores o Reconocer la opción
de acercar
Evaluación (logros) o Sin ayuda de referencias, el estudiante indica cuáles son y para qué sirven las diferentes opciones del editor de
pinturas de Scratch. Períodos de clase: 2 Actividades:
TEMA: Actividad Introductoria a Scratch http://www.eduteka.org/proyectos.php/5/2483

Utilizar el editor de pinturas


o Importar una imagen de un archivo o Dibujar sobre el lienzo
o Deshacer o rehacer una acción en el lienzo o Escalar el
tamaño de una imagen
o Rotar una imagen en el sentido de las manecillas del reloj o
Voltear una imagen de forma vertical o horizontal o Limpiar un
trazo dibujado en el lienzo
o Dibujar figuras con la brocha, la línea, el rectángulo y la elipse
de la barra de herramientas.
o Utilizar el bote de pintura para llenar de color una figura o
Seleccionar el color con la herramienta de gotero o Duplicar
Pág.84 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
una imagen con la opción de estampar o Borrar una imagen
del lienzo o Insertar un texto en el lienzo
o Mover un texto o una imagen dentro del lienzo
o Cambiar los tamaños de las herramientas en la opción de área
o Cambiar de color las imágenes con la paleta de colores.
o Usar la lupa para acercar una imagen
Evaluación (logros) o Crea o edita una imagen, utilizando las principales opciones del
editor de pinturas Períodos de clase: 2 Actividades:
TEMA: Animando un paisaje en Scratch http://www.eduteka.org/proyectos.php/5/2447

Crear y editar Objetos, Disfraces, Fondos; y editar Escenario


o Pintar un Objeto nuevo (botón) o Pintar, Importar, Editar,
Copiar y Borrar Disfraces y Fondos.
o Mostrar al frente un Objeto < en lista de objetos > o Exportar
un Objeto
Evaluación (logros) o Explica la diferencia en la ruta de acceso al editor de pinturas cuando se va a: crear un objeto, a editar uno de sus
disfraces o a editar un fondo de un escenario.
o Crea nuevos objetos y edita sus disfraces.
o Realiza modificaciones sobre un fondo existente. Períodos de
clase: 2 Actividades:
TEMA: Animando un paisaje en Scratch http://www.eduteka.org/proyectos.php/5/2447

Dar instrucciones básicas a Objetos (al presionar, por siempre, esperar, mover, etc) – actividad 1 o
Utilizar la instrucción al presionar Bandera Verde [Bloque Control] o Utilizar la instrucción Por Siempre [Bloque Control]
o Utilizar la instrucción Esperar N segundos [Bloque Control] o Utilizar las instrucciones Si y Si – Sino [Bloque Control]
o Explicar la instrucción Esperar Hasta Que [Bloque Control] o Explicar la instrucción Por Siempre Si [Bloque Control]
o Utilizar la instrucción Mover N Pasos [Bloque Movimiento] o Utilizar la instrucción Ir a X: Y: [Bloque Movimiento]
o Utilizar la instrucción Ir a <posición de un objeto> [Bloque
Movimiento]
o Utilizar la instrucción Apuntar en dirección [Bloque Movimiento]
o Utilizar la instrucción Apuntar hacia <nombre objeto>
[Bloque Movimiento] o Utilizar la instrucción Rebotar si está
tocando borde [Bloque Movimiento] o Explicar la
instrucción Girar N grados [Bloque Movimiento] o Utilizar
la instrucción Cambiar X por [Bloque Movimiento] o Utilizar
la instrucción Cambiar Y por [Bloque Movimiento] o Utilizar
la instrucción Fijar posición X [Bloque Movimiento] o Utilizar
la instrucción Fijar posición Y [Bloque Movimiento]
o Mostrar en el escenario la “posición X” de un objeto [Bloque
Movimiento] o Mostrar en el escenario la “posición Y” de un
objeto [Bloque Movimiento] o Mostrar en el escenario la
“dirección” de un objeto [Bloque Movimiento] o Utilizar
la instrucción Deslizar en N segundos a posición X,Y [Bloque
Movimiento] o Utilizar el sensor “tocando <borde>” [Bloque
Sensores] o Utilizar la instrucción Cambiar efecto [Bloque
Apariencia] o Utilizar la instrucción Siguiente Disfraz [Bloque
Apariencia] o Utilizar la instrucción Fijar Tamaño a [Bloque
Apariencia] o Utilizar la instrucción Cambiar Tamaño por
[Bloque Apariencia] o Mostrar en el escenario el
“tamaño” de un objeto [Bloque Apariencia] o Mostrar
en el escenario el “número de disfraz” de un objeto [Bloque
Apariencia] o Enviar un objeto hacia atrás N capas [Bloque
Apariencia] o Copiar el programa de un Objeto a otro o
Cambiar el nombre a un Objeto, Disfraz o Fondo o
Cambiar el nombre al Escenario o Reconocer la
posición de un Objeto
o Activar la opción “ver los pasos separados” en el botón
EXTRAS o Utilizar la ayuda en línea de Scratch o Borrar
instrucciones
Evaluación (logros) o Utiliza, como mínimo, dos formas de mover un Objeto o Al mover un
objeto, incorpora al menos una instrucción repetitiva o Incorpora instrucciones de
Apariencia para enriquecer los movimientos de un Objeto. Períodos de clase: 4 Actividades:
TEMA: Animando un paisaje en Scratch http://www.eduteka.org/proyectos.php/5/2447

Pág.85 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


Crear historias interactivas con Scratch incorporando instrucciones como: pensar, pensar por N segundos, decir,
decir por N segundos, cambiar disfraz e instrucciones de sonido.
o Utilizar la instrucción Repetir [Bloque Control] o Utilizar
la instrucción Pensar [Bloque Apariencia]
o Utilizar la instrucción Pensar por N segundos [Bloque
Apariencia] o Utilizar la instrucción Decir [Bloque Apariencia]
o Utilizar la instrucción Decir por N segundos [Bloque Apariencia]
o Utilizar la instrucción Cambiar el Disfraz a [Bloque
Apariencia] o Utilizar la instrucción Cambiar el Fondo a
[Bloque Apariencia] o Utilizar la instrucción Fondo Siguiente
[Bloque Apariencia] o Utilizar la instrucción Enviar al Frente
[Bloque Apariencia] o Utilizar la instrucción Tocar sonido
[Bloque Sonido] o Utilizar la instrucción Tocar sonido y
esperar [Bloque Sonido] o Utilizar la instrucción Fijar
Volumen a [Bloque Sonido] o Utilizar la instrucción
Cambiar Volumen por [Bloque Sonido]
o Utilizar la instrucción Tocar Tambor Durante N Pulsos [Bloque
Sonido] o Utilizar la instrucción Detener todos los sonidos
[Bloque Sonido] o Utilizar la instrucción Silenciar sonidos
durante N pulsos [Bloque Sonido] o Utilizar la
instrucción Tocar nota <número nota> durante N pulsos [B.
Sonido] o Utilizar la instrucción Fijar instrumento a
<instrumento> [Bloque Sonido] o Mostrar en el escenario el
Volumen [Bloque Sonido] o Utilizar la instrucción
Cambiar tempo por <valor> [Bloque Sonido] o Utilizar
la instrucción Fijar tempo a N pulsos por minuto [Bloque Sonido]
o Mostrar en el escenario el valor de Tempo [Bloque Sonido]
o Importar un fondo (Escenario) o Importar un Objeto o
Importar un Disfraz o Grabar, Importar,
Reproducir, Borrar y Parar sonidos para un Objeto o Escenario.
Evaluación (logros) o A partir de un diálogo entre dos personajes, redactado previamente, crea una animación en la que se reproduzca de manera
sincronizada la interacción entre dichos personajes (movimientos y conversación).
o Incorpora sonidos a una animación existente, manejando tanto
sonidos de fondo, como independientes para cada Objeto
(personaje). Períodos de clase: 5 Actividades:
TEMA: Diálogos en Scratch http://www.eduteka.org/proyectos.php/5/2448

Establecer diferencias entre eventos e hilos o


Explicar qué es un evento
o Entender en qué casos se requiere programar por eventos o
Comprender qué es un hilo
o Entender en qué casos se requiere uno o más hilos asociados a un
Objeto
Evaluación (logros) o Dado un proyecto de Scratch por el docente, señala partes de los programas que corresponden a “hilos”
o Explica en sus propias palabras qué es un hilo en Scratch o Con base en un proyecto creado previamente, explica
qué instrucciones corresponden a eventos y por qué son eventos.
o Explica en sus propias palabras cómo se puede utilizar un evento en
un programa. Períodos de clase: 2 Actividades:
TEMA: Interacción de Objetos en Scratch - Carrera carros http://www.eduteka.org/proyectos.php/5/2449

Crear programas que manejen eventos (sensores) y multihilos (enviar a todos, al recibir, al presionar objeto)
o Utilizar la instrucción Enviar a todos [Bloque Control] o Utilizar la
instrucción Enviar a todos [Bloque Control] o Utilizar la instrucción Al
Recibir [Bloque Control] o Utilizar instrucción Al Presionar Objeto
[Bloque Control] o Utilizar la instrucción Al presionar tecla [Bloque
Control] o Utilizar la instrucción Repetir hasta que [Bloque Control] o
Utilizar la instrucción Detener Todo [Bloque Control] o Utilizar la
instrucción Detener Programa [Bloque Control] o Utilizar la instrucción
Mostrar [Bloque Apariencia] o Utilizar la instrucción Esconder [Bloque
Apariencia] o Utilizar la instrucción Fijar Efecto a [Bloque Apariencia]
o Utilizar la instrucción Quitar Efectos Gráficos [Bloque
Apariencia] o Utilizar la instrucción Posición X del ratón [Bloque
Sensores] o Utilizar la instrucción Posición Y del ratón [Bloque
Sensores] o Utilizar la instrucción Ratón presionado? [Bloque
Sensores] o Utilizar el sensor <Tecla> Presionada [Bloque Sensores] o
Utilizar el sensor Tocando <...> [Bloque Sensores] o Utilizar el sensor

Pág.86 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


Tocando el Color <...> [Bloque Sensores] o Utilizar la instrucción <color
1> sobre <color 2> [Bloque Sensores] o Utilizar la instrucción Distancia
a [Bloque Sensores] o Utilizar la instrucción Reiniciar cronómetro
[Bloque Sensores] o mostrar Cronómetro en el escenario [Bloque
Sensores]
o mostrar Volumen del sonido en el escenario [Bloque Sensores] o
mostrar resultado de ¿sonido fuerte?, en el escenario [Bloque
Sensores] o mostrar valor de un sensor, en el escenario [Bloque
Sensores] o mostrar en el escenario si un sensor está activado [Bloque
Sensores]
Evaluación (logros) o Dada una situación problema por el docente, desarrolla un programa en Scratch que incorpore al menos el manejo
de dos eventos. Períodos de clase: 8 Actividades:
TEMA: Interacción de Objetos en Scratch - Carrera carros http://www.eduteka.org/proyectos.php/5/2449
TEMA: Ampliando el juego Pong (parte 1) http://www.eduteka.org/proyectos.php/5/2458

Reconocer las formas de documentar la funcionalidad de un Proyecto en Scratch. o


Agregar comentarios a un programa o Agregar notas al Proyecto
Evaluación (logros) o Dado un proyecto elaborado previamente, le agrega comentarios a un Programa y
notas al Proyecto.
o Explica brevemente la importancia de agregar comentarios a un Programa y notas a un Proyecto. Períodos de
clase: 1 Actividades:
TEMA: Ampliando el juego Pong (parte 1) http://www.eduteka.org/proyectos.php/5/2458

Realizar modificaciones a programas existentes para mejorarlos. o Explicar qué hace cada una de las instrucciones
de un programa. o Agregar comentarios explicativos de la funcionalidad de un hilo (concepto general en lugar de
instrucción por instrucción) o Agregar o cambiar instrucciones que mejoren la funcionalidad o el desempeño del
programa.
Evaluación (logros) o Agrega comentarios explicativos de la funcionalidad de un
Programa (hilo)
o Dado un proyecto en Scratch por el docente, y unos requerimientos de modificación sobre el mismo, agrega o
cambia las instrucciones necesarias de tal manera que el programa cumpla con las nuevas especificaciones. Períodos de
clase: 1 Actividades:
TEMA: Ampliando el juego Pong (parte 1) http://www.eduteka.org/proyectos.php/5/2458

Elaborar dibujos mediante el movimiento de objetos (funcionalidades de Lápiz)


o Utilizar las instrucciones Subir Lápiz y Bajar Lápiz [Bloque Lápiz] o Utilizar la instrucción
Fijar Tamaño de Lápiz a [Bloque Lápiz] o Utilizar la instrucción Fijar Color de Lápiz a
[Bloque Lápiz] o Utilizar la instrucción Fijar Intensidad de Lápiz a [Bloque Lápiz] o
Utilizar la instrucción Cambiar Tamaño de Lápiz por [Bloque Lápiz] o Utilizar la
instrucción Cambiar Color de Lápiz por [Bloque Lápiz] o Utilizar la instrucción Cambiar
Intensidad de Lápiz por [Bloque Lápiz] o Utilizar la instrucción Borrar [Bloque Lápiz]
o Utilizar la instrucción Sellar (imagen del Objeto) [Bloque Lápiz]
Evaluación (logros) o Utiliza la funcionalidad de lápiz para hacer dibujos
sobre el escenario. Períodos de clase: 4 Actividades:
TEMA: Ampliando el juego Pong (parte 2) http://www.eduteka.org/proyectos.php/5/2459

Utilizar operaciones matemáticas y booleanas o Utilizar las


operaciones “ +, -, * , / “ [Bloque Números] o Utilizar la función Módulo
[Bloque Números] o Utilizar la función Redondear [Bloque Números]
o Utilizar funciones matemáticas (abs, raíz cuadrada, sin, cos, etc) [Bloque Números] o
Utilizar operaciones booleanas “ >, <, =, y ,o ,no “ [Bloque Números] o Utilizar la
instrucción Número al Azar entre 1 y N [Bloque Números]
Evaluación (logros) o Utiliza las operaciones matemáticas y booleanas para resolver problemas matemáticos planteados por el
docente. Períodos de clase: 4 Actividades:

Crear y utilizar variables y listas o Crear una Nueva


Variable [Bloque Variables] o Borrar una variable Bloque
Variables]
o Utilizar la instrucción Fijar <variable> a <valor> [Bloque Variables] o Utilizar la
instrucción Cambiar <variable> por <valor> [Bloque Variables] o Mostrar <variable>
en el escenario [Bloque Variables]
o Utilizar la instrucción Esconder <variable> del escenario [Bloque Variables] o Crear
una Nueva Lista [Bloque Variables] o Borrar una lista [Bloque Variables

Pág.87 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


o Mostrar <LISTA> en el escenario [Bloque Variables]
o Utilizar la instrucción Añade X a LISTA [Bloque Variables] o Utilizar la
instrucción Borrar (posición N) de LISTA [Bloque Variables]
o Utilizar la instrucción Insertar ELEMENTO en POSICIÓN N de LISTA [Bloque Variables]
o Utilizar la instrucción Reemplazar (posición N) de LISTA con NUEVO
ELEMENTO [Bloque Variables] o Utilizar la instrucción Item N de LISTA [Bloque
Variables] o Utilizar la instrucción Longitud de LISTA [Bloque Variables]
Evaluación (logros) o Utiliza variables para apoyar la solución de problemas o El
estudiante crea y manipula listas para el manejo de elementos de información. Períodos
de clase: 6 Actividades:

Compartir con otras personas los trabajos realizados en Scratch.


o Explicar la importancia de compartir con otras personas los trabajos realizados en
Scratch.
o Utilizar apropiadamente la instrucción Compartir
Evaluación (logros) o Una vez creado un proyecto, lo comparte con otras personas a través de la
página de Scratch. Períodos de clase: 1 Actividades:

NOTA GENERAL: Componente curricular de Scratch elaborado por Eduteka con el apoyo de Motorola Foundation, Motorola de Colombia Ltda. y la
gestión de la ONG Give to Colombia.

Pág.88 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


ANEXO 5

PROGRAMACIÓN DE COMPUTADORES
UNA PROPUESTA DE CURRÍCULO PARA MICROMUNDOS
Esta propuesta hace parte del “Modelo Curricular Interactivo de Informática”
http://www.eduteka.org/curriculo2/Herramientas.php?codMat=15

DEFINICIÓN
Algoritmos y programación se definen como los procesos de formulación de una solución a una situación planteada, apoyándose en
conceptos y estructuras propias de la programación.

ALCANCE
Se busca que el estudiante utilice metodologías y estructuras secuenciales, iterativas y condicionales para analizar problemas, diseñar
algoritmos, traducir algoritmos a un lenguaje de programación y depurar procedimientos sencillos con el fin de solucionar problemas.
Los estudiantes no elaborarán programas complejos, sólo se concentrarán en la elaboración de procedimientos.

OBJETIVO GENERAL
Al terminar la instrucción en Algoritmos y Programación, el estudiante debe estar en capacidad de utilizar metodologías y estructuras
secuenciales, iterativas y condicionales para analizar problemas, diseñar algoritmos, traducir algoritmos a un lenguaje de programación y
depurar los procedimientos resultantes.

OBJETIVOS ESPECÍFICOS
Al finalizar la instrucción en esta herramienta informática, el estudiante estará en capacidad de:

≈ Comprender una metodología para resolver problemas matemáticos.


Conocer los elementos que tienen en común la mayoría de los problemas matemáticos (estado inicial, meta, recursos y el estado actual
de conocimientos de quien pretende resolverlos)
Conocer las cuatro operaciones mentales que intervienen en la solución de problemas matemáticos (entender el problema, trazar un plan,
ejecutarlo y revisar)
Hacer conciencia sobre la utilización en la clase de matemáticas de estas cuatro operaciones para resolver problemas
PERÍODOS DE CLASE: 2
INDICADORES DE LOGRO: Sin ayuda de referencias, describe brevemente, y en sus propias palabras, las cuatro operaciones mentales que intervienen
en la solución de problemas matemáticos. [A, F]
NOTA: Aunque Algoritmos y Programación se puede integrar con varias asignaturas, las matemáticas es un área muy
adecuada ya que la forma de resolver problemas matemáticos se asemeja mucho al ciclo de programación.

≈ Comprender las etapas del ciclo de programación de computadores.


Conocer las cuatro etapas del ciclo de programación para resolver problemas con ayuda del computador (analizar el problema, diseñar un
algoritmo, traducir el algoritmo a un lenguaje de programación y depurar el programa)
Comprender la similitud que hay entre las operaciones mentales que intervienen en la solución de problemas matemáticos y las etapas
del ciclo de programación
Entender que la solución de problemas matemáticos mediante programación tiene dos ciclos (uno en el que se resuelve el problema con
lápiz y papel y otro en el que se automatiza la solución) Diferenciar entre Sistema Operativo y Software de Aplicación.
Diferencias entre Software de Aplicación y Procedimientos.
PERÍODOS DE CLASE: 1
INDICADORES DE LOGRO: Explica brevemente las cuatro etapas del ciclo de programación para resolver problemas con ayuda del computador. [A, F]

≈ Comprender qué es un algoritmo.


Comprender por qué no se debe empezar a diseñar un algoritmo hasta no haber analizado detalladamente los problemas que se desean
resolver
Identificar en el entorno: procesos, ciclos, rutinas o biorritmos que se puedan considerar como algoritmos (concepto intuitivo de algoritmo)
Comprender que un algoritmo es un conjunto de pasos sucesivos y organizados en secuencia lógica Comprender
la importancia de organizar en secuencia lógica los pasos de diversos procesos
PERÍODOS DE CLASE: 2
INDICADORES DE LOGRO: Describe al menos dos procesos, ciclos, rutinas o biorritmos que se den en el entorno y que puedan considerarse como
algoritmos.
[A, F]
Dada una lectura que describa una serie de instrucciones, sigue cada uno de los pasos indicados en esta, en el orden establecido. [F]

Pág.89 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


≈ Utilizar el lenguaje pseudocódigo para representar algoritmos.
Utilizar frases o proposiciones en español para representar instrucciones
Organizar en secuencia lógica las instrucciones que solucionan problemas planteados
Refinar los algoritmos representados en pseudocódigo (escribir una primera versión y luego descomponerla en subproblemas, si fuera
necesario)
Comprender la importancia de detallar al máximo las instrucción para que estas se puedan traducir a un lenguaje de programación
PERÍODOS DE CLASE: 3
INDICADORES DE LOGRO: Dado un problema de la vida cotidiana (como hacer un jugo de fruta), construye un algoritmo en pseudocódigo para
solucionarlo.
[A, F]
≈ Comprender qué son identificadores, variables y constantes.
Comprender que los identificadores son nombres que se dan a los elementos (variables, constantes, procedimientos) utilizados en los
algoritmos
Conocer un conjunto de reglas (convenciones) para asignar nombres a variables, constantes y procedimientos Conocer
qué es una variable
Entender cómo ayuda el uso de variables en la formulación de un algoritmo y en su utilización con diferentes conjuntos de datos iniciales
(generalización)
Conocer los tipos de variables y sus diferencias (globales y locales)
Conocer cómo asignar un valor a una variable
Conocer cómo utilizar el valor almacenado en una variable
Conocer qué es una constante
Conocer cómo asignar un valor a una constante
Conocer cómo utilizar el valor almacenado en una constante
PERÍODOS DE CLASE: 6
INDICADORES DE LOGRO: Dado un problema de la vida cotidiana, lista las variables y constantes presentes en este. [A, F]
Dada una lista de variables y constantes, les asigna nombres que pueda entender el lenguaje de programación. [A, F]
Dada una lista de variables y constantes, indica cómo asignarles valores a estos. [A, F]

≈ Conocer los símbolos que se utilizan para representar algoritmos mediante diagramas de flujo.
Comprender que los diagramas de flujo han sido una de las técnicas más utilizadas para representar gráficamente la secuencia de
instrucciones de un algoritmo
Identificar y recordar el significado de los principales símbolos estandarizados para elaborar diagramas de flujo (inicio, final, líneas de
flujo, entrada por teclado, llamada a subrutina, saluda impresa, salida en pantalla, conector, decisión, iteración, etc)
Conocer las principales reglas para elaborar diagramas de flujo (encabezado, dirección de flujo, iniciación de variables y constantes, etc)
PERÍODOS DE CLASE: 2
INDICADORES DE LOGRO: Dada una serie de símbolos para representar algoritmos, escribe al frente su significado. [A, F]
Dado un algoritmo sencillo, explica la función que realiza en cada uno de los pasos. [A, F]

≈ Reconocer el entorno de trabajo que ofrece un lenguaje de programación.


Entender la barra de título
Entender la barra de menús (Archivo, Edición, Ver, Insertar, Formato, Ventana)
Entender las barras de herramientas
Entender la barra de desplazamiento
Entender la barra de estado
Entender el área de trabajo PERÍODOS
DE CLASE: 1
INDICADORES DE LOGRO: En sus propias palabras, describe brevemente, el entorno de trabajo que ofrece el entorno de programación.
[A, F]
≈ Utilizar apropiadamente las funciones básicas de un lenguaje de programación.
Abrir y cerrar el ambiente de programación
Abrir y cerrar un procedimiento existente
Crear instrucciones nuevas dentro de un procedimiento existente
Guardar un procedimiento en una unidad de almacenamiento local o remota
Crear un proyecto nuevo
Escribir, con la sintaxis correcta, instrucciones en el lenguaje de programación utilizado
Compilar un procedimiento
Ejecutar un procedimiento
Utilizar las funciones de ayuda que ofrece el software
PERÍODOS DE CLASE: 3
INDICADORES DE LOGRO: Crea un nuevo procedimiento, lo graba en un lugar establecido por el profesor, lo cierra; si es necesario, lo abre nuevamente
para modificarlo. [A, F]
ACTIVIDADES: Tema: Caricaturas http://eduteka.org/actividades/actividades.php?idH=501

≈ Traducir algoritmos a un lenguaje de programación.


Identificar procedimientos que se utilicen frecuentemente en la vida diaria
Conocer qué significa un procedimiento en un programa de computador

Pág.90 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


Conocer la forma de elaborar un procedimiento con el lenguaje de programación seleccionado Comprender
la estructura de un procedimiento (línea de título, instrucciones y final)
Utilizar las reglas establecidas (convenciones) para nombrar procedimientos (identificadores)
Conocer qué significa “palabra reservada”
Conocer las principales primitivas (comandos) que ofrece el lenguaje de programación utilizado y tenerlas en cuenta para traducir los
algoritmos a dicho lenguaje
Conocer la sintaxis de las principales primitivas
Conocer la forma de ejecutar un procedimiento en forma directa
Conocer la forma de llamar un procedimiento desde otro procedimiento
Hacer comentarios en procedimientos
Traducir una a una las instrucciones de los diagramas de flujo al lenguaje de programación utilizado Elaborar
procedimientos que acepten parámetros
PERÍODOS DE CLASE: 3
INDICADORES DE LOGRO: A partir de un algoritmo construido sobre un problema matemático, lo traduce a un procedimiento en MMP. [A, F]
Abre un procedimiento y lo ejecuta. [A]
ACTIVIDADES: Tema: Caricaturas http://eduteka.org/actividades/actividades.php?idH=501

≈ Utilizar el recurso de interactividad con los usuarios de los procedimientos.


Entender qué es ser usuario de un programa de computador
Comprender la importancia de la interactividad con el usuario en la generalización de soluciones a problemas
Reconocer diferentes métodos de interacción con el usuario (teclado y ratón)
Utilizar los comandos apropiados para establecer interactividad con el usuario mediante el teclado
PERÍODOS DE CLASE: 2
INDICADORES DE LOGRO: Elabora un procedimiento que solucione un problema planteado por el docente, en el que solicite al usuario digitar alguna
información. [F]

≈ Reconocer los diferentes tipos de fallas que puede presentar un procedimiento.


Comprender que hay fallas que detecta el computador (compilador) y otras no (fallas humanas)
Conocer qué son las fallas de sintaxis y de precaución (detectables por el computador)
Conocer qué son las fallas de concepción, de lógica y de procedimiento (fallas humanas)
PERÍODOS DE CLASE: 2
INDICADORES DE LOGRO: En sus propias palabras, describe brevemente, los tipos de fallas que se pueden presentar en un
procedimiento. [F]
≈ Comprender en qué fases del ciclo de programación se pueden producir las fallas de sintaxis y de precaución.
Comprender qué es una falla de sintaxis
Entender en qué fase del ciclo de programación se pueden producir fallas de sintaxis
Conocer las causas más comunes por las que se producen las fallas de sintaxis
Comprender el significado de los mensajes de error que presenta el compilador cuando detecta una falla de sintaxis y solucionarla.
Conocer las medidas que se deben tomar para evitar las fallas de sintaxis
Comprender qué es una falla de precaución (recomendaciones técnicas o “warning error”)
Entender en qué fase del ciclo de programación se pueden producir fallas de precaución
Conocer las causas más comunes por las que se producen las fallas de precaución Conocer
las medidas que se deben tomar para evitar las fallas de precaución
PERÍODOS DE CLASE: 2
INDICADORES DE LOGRO: Dada una serie de fallas que se pueden presentar en un procedimiento, las relaciona con las fases del ciclo de programación
en las cuales estas se pueden producir. [F]
≈ Comprender los pasos para analizar problemas.
Conocer los pasos para analizar un problema que se quiere sistematizar mediante un procedimiento
Comprender en qué consiste el paso “formular el problema” (determinar y comprender exactamente en qué consiste el problema)
Comprender en qué consiste el paso “precisar los resultados esperados” (metas y submetas)
Comprender en qué consiste el paso “identificar los datos disponibles”
Comprender en qué consiste el paso “determinar las restricciones” (aquello que está permitido o prohibido hacer y/o utilizar para llegar a
una solución)
Comprender en qué consiste el paso “establecer los procesos necesarios” (operaciones)
Hacer conciencia de cómo estos pasos ayudan a lograr el objetivo de la primera etapa del ciclo de programación
PERÍODOS DE CLASE: 2
INDICADORES DE LOGRO: Sin ayuda de referencias, lista los pasos propuestos para analizar problemas (formular el problema, precisar los resultados
esperados, identificar los datos disponibles, determinar las restricciones y establecer los procesos necesarios) y describe brevemente en qué consiste cada uno.
[F]

≈ Definir y utilizar variables y constantes en los algoritmos.


Definir las variables y constantes necesarias para resolver un problema
Nombrar las variables y constantes definidas utilizando las reglas establecidas para ello
Inicializar las variables y constantes con los valores iniciales establecidos en el análisis del problema
PERÍODOS DE CLASE: 3
INDICADORES DE LOGRO: Dado un problema de la vida cotidiana, lista las variables y constantes presentes en este. [A, F]
Dada una lista de variables y constantes, les asigna nombres que pueda entender el lenguaje de programación. [A, F]
Pág.91 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
Dada una lista de variables y constantes, indica cómo asignarles valores a estos. [A, F]
≈ Comprender qué son operadores y expresiones.
Conocer que es un operador
Entender la clasificación de operadores (aritméticos, alfanuméricos, relacionales y lógicos).
Saber el orden de evaluación de los operadores Conocer
qué es una expresión
Entender los elementos que pueden conformar una expresión (valores, funciones, primitivas (comandos), constantes, variables, cadenas
alfanuméricas, operadores)
Conocer diferentes tipos de expresiones (aritméticas, alfanuméricas, lógicas y de asignación)
Comprender cómo se pueden unir varios de estos elementos mediante operadores para formar una expresión compuesta
PERÍODOS DE CLASE: 4
INDICADORES DE LOGRO: Dado un algoritmo por el docente, identifica y explica las expresiones y operadores presentes en este [F]

≈ Elaborar diagramas de flujo para representar soluciones de problemas.


Utilizar símbolos para representar instrucciones
Recordar y utilizar los principales símbolos estandarizados para elaborar diagramas de flujo (inicio, final, líneas de flujo, entrada por
teclado, llamada a subrutina, salida impresa, salida en pantalla, conector, decisión, iteración, etc)
Aplicar las reglas para elaborar diagramas de flujo (encabezado, dirección de flujo, iniciación de variables y constantes, etc)
Organizar en secuencia lógica las instrucciones que solucionan problemas planteados
Elaborar diagramas de flujo para representar soluciones de problemas
Refinar los algoritmos mediante la escritura de una primera versión y luego descomponerla en subproblemas (procedimientos), si fuera
necesario
Detallar al máximo las instrucción para que estas se puedan traducir a un lenguaje de programación
PERÍODOS DE CLASE: 4
INDICADORES DE LOGRO: Dado un problema matemático (como sumar los números pares comprendidos entre 2 y 1.000), construye un algoritmo en
forma de diagrama de flujo para solucionarlo. [F]

≈ Reconocer el entorno de trabajo que ofrece un software para elaborar diagramas de flujo (menús, barras, área de trabajo).
Entender la barra de título
Entender la barra de menús (Archivo, Edición, Ver, Insertar, Formato, Ventana)
Entender las barras de herramientas
Entender la barra de desplazamiento
Entender la barra de estado
Entender el área de trabajo
Entender las opciones de zoom (aumentar/disminuir la escala de visualización)
PERÍODOS DE CLASE: 1
INDICADORES DE LOGRO: En sus propias palabras, describe brevemente, el entorno de trabajo que ofrece el software seleccionado para elaborar
diagramas de flujo. [A, F]
NOTA: Ver la reseña de algunas herramientas descargables de Internet que facilitan el Aprendizaje Visual. Incluye descripción de
software para construir Diagramas de Flujo http://www.eduteka.org/HerramientasVisuales.php

≈ Utilizar apropiadamente las funciones básicas de un software para elaborar diagramas de flujo.
Abrir y cerrar la aplicación
Abrir y cerrar un diagrama de flujo existente
Crear instrucciones nuevas dentro de un diagrama de flujo utilizando el símbolo apropiado
Crear líneas de flujo entre las instrucciones de un diagrama de flujo
Adicionar un título general que identifique un diagrama de flujo
Seleccionar título, instrucciones o líneas de flujo
Mover de posición el título, las instrucciones o las líneas de flujo
Eliminar título, instrucciones o líneas de flujo
Utilizar el comando deshacer
Guardar un diagrama de flujo en una unidad de almacenamiento local o remota
Guardar un diagrama de flujo para que pueda abrirse con otras versiones del mismo software.
Exportar un diagrama de flujo a un formato gráfico para que lo puedan leer otros programas Utilizar
las funciones de ayuda que ofrece el software
PERÍODOS DE CLASE: 3
INDICADORES DE LOGRO: Utilizando un software para elaborar diagramas de flujo, crea un nuevo diagrama, lo graba en un lugar establecido por el
profesor, lo cierra; si es necesario, lo abre nuevamente para modificarlo. [A, F]
≈ Realizar operaciones básicas con instrucciones y líneas de flujo.
Editar el texto de instrucciones de un diagrama de flujo
Cambiar la apariencia de las instrucciones (color, fuente, tamaño, forma (símbolo), etc)
Cambiar la apariencia de las líneas de flujo (color, grosor de la línea, aspecto de la flecha, etc)
Utilizar las opciones de copiar y pegar para duplicar instrucciones
Utilizar la opción que ofrece el software para organizar automáticamente los diagramas de flujo
PERÍODOS DE CLASE: 1
INDICADORES DE LOGRO: Dado un problema por el profesor, elabora un procedimiento para solucionarlo; la solución debe incluir el análisis del
problema y el diagrama de flujo. [F]

Pág.92 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


≈ Elaborar procedimientos con estructura secuencial.
Conocer qué es una estructura secuencial
Conocer qué tipo de instrucciones puede contener una estructura secuencial (declaración de variables y constantes, asignación de
valores, entrada de datos, operaciones, reporte de resultados)
Utilizar el orden correcto de ejecución de las instrucciones del algoritmo
Elaborar procedimientos que contengan únicamente la estructura secuencial Reflexionar
sobre la estructura utilizada en la solución de los problemas
PERÍODOS DE CLASE: 6
INDICADORES DE LOGRO: A partir de un algoritmo construido sobre un problema matemático, lo traduce a un procedimiento en MMP. [A, F]
Abre un procedimiento y lo ejecuta. [A]
Elabora un procedimiento que solucione un problema planteado por el docente, en el que solicite al usuario digitar alguna información. [F]
Sin ayuda de referencias, describe con sus propias palabras qué es en programación una estructura secuencial. [F]

≈ Identificar los mensajes de error más comunes que presenta el lenguaje de programación utilizado (fallas de sintaxis) y
si los hay corregirlos.
Comprender el significado de los mensajes de error que presenta el compilador cuando detecta una falla de sintaxis Realizar
acciones correctivas en el programa cuando el compilador reporte una falla de sintaxis
PERÍODOS DE CLASE: 2
INDICADORES DE LOGRO: Dado por el docente un procedimiento que contenga fallas de sintaxis, identifica y corrige dichas fallas.
[F]
≈ Comprender en qué fases del ciclo de programación se pueden producir las fallas de concepción y de lógica.
Comprender qué es una falla de concepción (mala formulación del problema)
Entender en qué fase del ciclo de programación se pueden producir fallas de concepción
Conocer las causas más comunes por las que se producen las fallas de concepción
Conocer las medidas que se deben tomar para evitar las fallas de concepción
Comprender qué es una falla de lógica (algoritmos mal diseñados)
Entender en qué fase del ciclo de programación se pueden producir fallas de lógica
Conocer las causas más comunes por las que se producen las fallas de lógica Conocer
las medidas que se deben tomar para evitar las fallas de lógica
PERÍODOS DE CLASE: 2
INDICADORES DE LOGRO: Dado un algoritmo elaborado por otro estudiante, realiza la prueba de escritorio y predice que resultado arrojará el
computador con un conjunto determinado de datos de entrada. [F]
≈ Realizar prueba de escritorio a los algoritmos elaborados.
Comprender qué es una prueba de escritorio para un algoritmo Comprender
cómo se realiza una prueba de escritorio
Realizar la prueba de escritorio a los algoritmos diseñados (dando diferentes datos de entrada y siguiendo la secuencia indicada en el
diagrama)
PERÍODOS DE CLASE: 2
INDICADORES DE LOGRO: Dado un algoritmo elaborado por otro estudiante, realiza la prueba de escritorio y predice que resultado arrojará el
computador con un conjunto determinado de datos de entrada. [F]
≈ Analizar problemas utilizando una metodología con pasos ordenados.
Listar en forma ordenada los pasos indicados para analizar problemas (“formular el problema”, “precisar los resultados esperados”,
“identificar los datos disponibles”, “determinar las restricciones” y “establecer los procesos necesarios”).
Comprender que los pasos de la metodología para analizar problemas son dinámicos y cíclicos (no es necesario seguirlos en forma
secuencial)
Comprender la importancia y conveniencia de emplear una metodología para analizar problemas
PERÍODOS DE CLASE: 3
INDICADORES DE LOGRO: Dado un problema por el docente, realiza el primer paso de análisis (formular problemas) siguiendo las indicaciones
suministradas en clase. [F]
≈ Realizar el primer paso de la etapa de análisis: “Formular problemas”.
Formular por escrito problemas a partir de situaciones de la vida real, planteadas en forma verbal
Hacer conciencia sobre la naturaleza ambigua, imprecisa, incompleta e incongruente que en muchas ocasiones tiene el lenguaje natural y
cómo afecta esto la formulación de un problema
Determinar si se puede definir mejor los problemas planteados
Identificar y buscar en el diccionario las palabras desconocidas que aparecen en los problemas Reflexionar
sobre si se ha resuelto problemas similares con anterioridad
PERÍODOS DE CLASE: 3
INDICADORES DE LOGRO: Dado un problema por el docente, realiza el primer paso de análisis (formular problemas) siguiendo las indicaciones
suministradas en clase. [F]

≈ Realizar el segundo paso de la etapa de análisis: “Precisar el resultado esperado”.


Precisar con claridad cuál es resultado final (producto) que debe devolver el programa elaborado
Establecer el formato que debe tener el resultado final (impreso, en pantalla, diagramación, orden, etc) Identificar
la información relevante de un problema

Pág.93 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


PERÍODOS DE CLASE: 3
INDICADORES DE LOGRO: Dado un problema por el docente, realiza el segundo paso de análisis (precisar el resultado esperado) siguiendo las
indicaciones suministradas en clase. [F]

≈ Realizar el tercer paso de la etapa de análisis: “Identificar los datos disponibles”.


Identificar cuál es la información importante, para llegar a una solución, que se ofrece en la formulación de problemas
Identificar cuál es la información no relevante, para llegar a una solución, que se ofrece en la formulación de problemas (que se puede
omitir)
Identificar los datos de entrada (conocidos) y la(s) incógnita(s) (datos desconocidos)
Establecer las categorías en las cuales se pueden agrupar los datos
Determinar el nivel de conocimiento que se posee en el ámbito de los problemas que se pretende resolver y establecer una estrategia
para obtener los conocimientos que no se tienen actualmente, necesarios para llegar a una solución
PERÍODOS DE CLASE: 3
INDICADORES DE LOGRO: Dado un problema por el docente, realiza el tercer paso de análisis (identificar los datos disponibles) siguiendo las
indicaciones suministradas en clase. [F]

≈ Realizar el cuarto paso de la etapa de análisis: “Determinar las restricciones”.


Determinar lo que está permitido o prohibido hacer y/o utilizar para llegar a una solución (restricciones)
Identificar las condiciones que se plantean en la formulación de los problemas
Identificar los datos que pueden considerarse como fijos (constantes)
Identificar los datos que deben considerarse como variables
Identificar los datos que deben calcularse PERÍODOS
DE CLASE: 3
INDICADORES DE LOGRO: Dado un problema por el docente, realiza el cuarto paso de análisis (determinar las restricciones) siguiendo las indicaciones
suministradas en clase. [F]

≈ Realizar el quinto paso de la etapa de análisis: “Establecer los procesos necesarios”.


Determinar los procesos (operaciones) que permiten llegar a los resultados esperados a partir de los datos disponibles
Determinar las fórmulas que deben emplearse
Identificar como afectan las condiciones (restricciones) a los procesos
Identificar el orden en el que deben realizarse las operaciones
Dividir, si es el caso, un problema en otros más pequeños y fáciles de solucionar (procedimientos)
PERÍODOS DE CLASE: 3
INDICADORES DE LOGRO: Dado un problema por el docente, realiza el quinto paso de análisis (establecer los procesos necesarios) siguiendo las
indicaciones suministradas en clase. [F]
≈ Utilizar operadores y construir expresiones.
Utilizar operadores aritméticos para construir expresiones aritméticas que tengan en cuenta el orden de evaluación de los operadores
Utilizar operadores alfanuméricos para construir expresiones alfanuméricas
Utilizar operadores lógicos y relacionales para construir expresiones lógicas
Utilizar combinaciones apropiadas de operadores para construir expresiones de asignación
PERÍODOS DE CLASE: 3
INDICADORES DE LOGRO: Dado un problema por el docente que requiera plantear expresiones, identifica variables y constantes y las une mediante
operadores para establecer las expresiones correctas que resuelvan el problema. [F]
≈ Elaborar procedimientos con estructura iterativa.
Conocer qué es una estructura iterativa
Comprender en qué casos es ventajoso utilizar una estructura iterativa
Conocer qué tipo de instrucciones puede contener una estructura iterativa (instrucciones de control de ciclo, todas las instrucciones de la
estructura secuencial)
Conocer los comandos con los cuales se implementa la estructura iterativa
Utilizar el orden correcto de ejecución de las instrucciones del algoritmo
Elaborar procedimientos con una estructura iterativa que contenga y controle a una estructura secuencial Reflexionar
sobre los tipos de problemas que requieren utilizar la estructura iterativa en la solución
PERÍODOS DE CLASE: 6
INDICADORES DE LOGRO: Sin ayuda de referencias, describe con sus propias palabras qué es en programación una estructura iterativa (de repetición).
[F]
Dado por el docente un problema que requiera para su solución una estructura iterativa (repetición), elabora un procedimiento con una estructura
iterativa
que contenga y controle una estructura secuencial; la solución debe incluir el análisis del problema, el diagrama de flujo y la prueba de
escritorio. [F]
≈ Identificar fallas de lógica en los algoritmos elaborados y sí las hay corregirlas.
Comprender las fallas de lógica no son detectables por el compilador
Realizar acciones correctivas en el programa cuando mediante la prueba de escritorio se encuentre una falla de lógica
PERÍODOS DE CLASE: 2
INDICADORES DE LOGRO: Dado por el docente un algoritmo y el respectivo procedimiento los cuales contengan fallas de lógica, identifica y corrige
dichas fallas. [F]

Pág.94 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


≈ Comprender la importancia de verificar los resultados que produce un programa de computador.
Comprender la importancia de verificar resultados
Comprender cómo se verifican los resultados de un programa
PERÍODOS DE CLASE: 2
INDICADORES DE LOGRO: Dado por el docente un algoritmo y el respectivo procedimiento los cuales contengan fallas de lógica, identifica y corrige
dichas fallas. [F]
Sin ayuda de referencias, explica con sus propias palabras cuál es la importancia de verificar los resultados que produce un programa de computador.
[F]

≈ Reflexionar sobre la conveniencia de emplear una metodología con pasos ordenados para analizar problemas.
Hacer conciencia de la importancia y conveniencia de emplear una metodología para analizar problemas
Reflexionar sobre la importancia de poner por escrito el resultado del análisis de problemas (para cada uno de los pasos)
PERÍODOS DE CLASE: 1
INDICADORES DE LOGRO: Elabora un ensayo en el que plasma sus reflexiones cobre la conveniencia o no de emplear una metodología con pasos
ordenados para aprender a analizar problemas. [F]

≈ Comprender qué tipos de datos acepta el lenguaje de programación utilizado.


Conocer diferentes tipos de datos (números, palabras, listas, arreglos, etc)
Conocer qué tipos de datos acepta el lenguaje de programación utilizado y qué tratamiento le da a cada tipo
PERÍODOS DE CLASE: 3
INDICADORES DE LOGRO: Sin ayuda de referencias, contrasta las diferencias entre los tipos de datos que acepta el lenguaje de programación utilizado.
[F]

≈ Elaborar procedimientos con estructura condicional.


Conocer qué es una estructura condicional (selección simple y doble)
Comprender en qué casos es ventajoso utilizar una estructura condicional
Conocer qué tipo de instrucciones puede contener una estructura condicional (instrucciones de decisión, de control de ciclo y todas las
instrucciones de la estructura secuencial)
Conocer y utilizar correctamente los comandos con los cuales se implementa la estructura condicional de selección simple
Conocer y utilizar correctamente los comandos con los cuales se implementa la estructura condicional de selección doble
Comprender que las proposiciones utilizadas en la estructura condicional deben poder evaluarse como verdaderas o falsas (solo dos
valores posibles y excluyentes)
Utilizar correctamente los operadores relacionales y lógicos para construir proposiciones (sencillas y compuestas)
Expresar apropiadamente las proposiciones para que el lenguaje de programación las pueda entender y evaluar
Utilizar el orden correcto de ejecución de las instrucciones del algoritmo
Elaborar procedimientos con una estructura condicional que contenga y controle a una estructura secuencial
Reflexionar sobre el papel que cumple el lenguaje en la formulación y uso de relaciones de orden y de proposiciones
Reflexionar sobre los tipos de problemas que requieren utilizar la estructura condicional en la solución
Reflexionar sobre la importancia que tiene reconocer las estructuras de solución de problemas en la forma de planear secuencias de
acciones
PERÍODOS DE CLASE: 6
INDICADORES DE LOGRO: Sin ayuda de referencias, describe con sus propias palabras qué es en programación una estructura condicional. [F]
Dado por el docente un problema que requiera para su solución una estructura condicional, elabora un procedimiento con una estructura
condicional que
contenga y controle una estructura secuencial; la solución debe incluir el análisis del problema, el algoritmo en forma de diagrama de flujo y la prueba de
escritorio. [F]

≈ Verificar los resultados que produce un procedimiento.


Estimar el resultado que debe producir un procedimiento y compararlo con el realmente producido para determinar si se encuentra
cercano al valor estimado
Realizar todas las operaciones manualmente con un conjunto de datos iniciales y comparar el resultado con el que arroja el procedimiento
luego de introducirle el mismo conjunto de datos
PERÍODOS DE CLASE: 2
INDICADORES DE LOGRO: A partir de la lectura de problemas, identifica correctamente el resultado esperado, los datos disponibles, las restricciones y
los procesos necesarios para resolverlos. [F]
Dada una situación del mundo real, enuncia (formula) un problema que tenga todos los elementos (resultado esperado, datos disponibles,
restricciones y
procesos necesarios) y explica por qué es un problema. [F]
≈ Comprender la importancia de documentar los procedimientos.
Comprender qué es la documentación de procedimientos y las ventajas que ofrece
Entender que los procedimientos documentados son más fáciles de leer y comprender por otras personas diferentes a quien los escribió
PERÍODOS DE CLASE: 1
INDICADORES DE LOGRO: Sin ayuda de referencias, explica brevemente y con sus propias palabras cuál es la importancia de documentar los
procedimientos.
[F]

Pág.95 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


≈ Comprender la importancia de ajustar (afinar o mejorar) los procedimientos.
Comprender en qué consiste ajustar un procedimiento
Comprender que los requerimientos iniciales pueden estar mal planteados, por tanto el procedimiento resultante se puede mejorar
Conocer el impacto que tiene en la imagen de un programador la realización de mejoras en los procedimientos (ir más allá de lo
solicitado)
PERÍODOS DE CLASE: 2
INDICADORES DE LOGRO: Sin ayuda de referencias, explica brevemente y con sus propias palabras cuál es la importancia de ajustar (afinar o mejorar)
los procedimientos. [F]

NOTA GENERAL: El número de clases que aparece asociada a cada uno de los objetivos específicos indica la cantidad de
períodos de clase, de 55 minutos, estimado por los profesores participantes, necesarios para impartir la instrucción y realizar
ejercicios y prácticas necesarios para que el estudiante pueda dominar lo que se pretende enseñar.

ESTÁNDARES
A. Operaciones y Conceptos Básicos
B. Problemas Sociales, Éticos y Humanos
C. Herramientas de las TIC para la Productividad
D. Herramientas de las TIC para la Comunicación
E. Herramientas de las TIC para la Investigación
F. Herramientas de las TIC para la Solución de Problemas y la Toma de Decisiones

Pág.96 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


ANEXO 6

ANÁLISIS DEL PROBLEMA

Form ular el problem a :

Resultados esperados :

Datos Disponibles :

Restricciones :

Procesos Necesarios :

ANEXO 7

Pág.97 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


Pág.98 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
ANEXO 8

Interfaz de Scratch, versión 1.4 (http://scratch.mit.edu)

Pág.99 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


Pág.100 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
BIBLIOGRAFÍA CITADA O CONSULTADA

21st Century Skills (2004): Logros indispensables para los estudiantes del Siglo XXI. [Consulta en línea: Eduteka, Marzo 16, 2009,
http://www.eduteka.org/SeisElementos.php]
Aebli, Hans (2001): 12 Formas básicas de enseñar, una didáctica basada en la psicología; Ediciones Narcea, Madrid.
Banaji, Shakuntal & Burn, Andrew (2006): The rhetorics of creativity: a review of the literature. Centre for the Study of Children, Youth
and Media, Institute of Education (University of London), Londres [consulta en línea: Creative Partnership, Abril 13, 2009,
http://www.creative-partnerships.com/data/files/rhetorics-of-creativity-12.pdf]
Beltrán, Luis Pompilio & Suárez, Alberto (1999): Matemáticas con tecnología aplicada 5; Prentice Hall, Bogotá.
Bernays, P (1949): Lógica y ciencia; Actas del congreso internacional de filosofía de la ciencia, Colloque de Logique, Paris.
Brandsford, John & Stein, Barry (1984): The IDEAL problem solver, [Consulta en línea de un resumen del contenido del libro: npsnet,
Marzo 27, 2004, http://www.npsnet.com/waletzky/BookSummaries/TheIDEALProblemSolver.html]
Brown, Stephen & Walter, Marion (1990): The art of problem posing, [Consulta en línea: Questia, Marzo 27, 2007,
http://www.questia.com/PM.qst?a=o&d=58818239]
Bunge, Mario (1959): Metascientific queries; Ed. Charles C. Thomas, Springfield.
Bustamante Arias, Alfonso (2007): Notas para un curso de Lógica y argumentación; Universidad Icesi, Cali, primera edición.
Cajaraville Pegito, José A. (1989): Ordenador y educación matemática, algunas modalidades de uso; Editorial Síntesis, Madrid.
Cantillo Parra, Lucila (1990): Matemática concreta 5, cuaderno de actividades; Editorial Voluntad, Bogotá.
Caro Pineda, Silvina (2003): Lógica de programación y algoritmos; Centro de investigaciones para el desarrollo CIPADE, Uniboyacá,
Tunja. Carreras Llorenç y Otros (2001): Cómo educar en valores; Narcea Ediciones, Madrid.
Casasbuenas, Cecilia & Eslava, Carola (1985): Cubo mágico 4; Educar Editores, Bogotá.
Casasbuenas, Cecilia & Cifuentes, Virginia (1998a): Cuenta jugando 4; Editorial Norma, Bogotá.
Casasbuenas, Cecilia & Cifuentes, Virginia (1998b): Cuenta jugando 5; Editorial Norma, Bogotá.
Castellanos, Ricardo & Ferreira, Gonzalo (2000a): Informática 1; Editorial Alfa Omega, Bogotá.
Castellanos, Ricardo & Ferreira, Gonzalo (2000b): Informática 2; Editorial Alfa Omega, Bogotá.
Castellanos, Ricardo & Ferreira, Gonzalo (2000c): Informática 3; Editorial Alfa Omega, Bogotá.
Castellanos, María Victoria de & Torres, Gladis (1986): Sistema matemático 4; Editorial Norma, Bogotá.
Castiblanco Paiba, Ana Cecilia & Castiblanco Paiba, José Antonio (1988): Practiquemos matemática 5; Intermedio Editores, Bogotá.
Clements, Douglas H. & Meredith, Julie S. (1992): Research on Logo, effects and efficacy, [Consulta en Línea: Logo Foundation, MIT,
Febrero 26 de 2007, http://el.media.mit.edu/logo-foundation/pubs/papers/research_logo.html] Copi, Irving & Cohen, Carl (2000):
Introducción a la Lógica; Editorial Limusa, México.
Corbí Bellot, Antonio y Otros (1998): Fundamentos de programación, Volumen I: Metodología; Universidad de Alicante, España.
Craft, Ana (2001): An Analysis of Research and Literature on Creativity in Education. Qualifications and Curriculum Authority.
Creative Partnerships (2006): The rhetorics of creativity: a review of the literature; Institute of Education, University of London;
[Consulta en Línea: Creative Partnerships, Abril 13 de 2009, http://www.creative-partnerships.com/research-resources/]
Cuena, José (1986): Inteligencia artificial, sistemas expertos (sistemas basados en reglas y programación lógica); Alianza Editorial,
Madrid. Daintith, John (1982): Diccionario de matemáticas; Editorial Norma, Bogotá.
De Bono, Edward (1970): El pensamiento lateral, Editorial Paidos Ibérica, Barcelona.
---------- (1992): El pensamiento creativo, Editorial Paidos Ibérica, Barcelona.
Del Rio Gómez, Sara Luz (2003): Técnica de solución de problemas utilizando una computadora; [Consulta en Línea: Unam, Enero 15 de
2007, http://www.bibliodgsca.unam.mx/tesis/tes9sarg/toc.htm]
Delors, Jacques (1996): La educación encierra un tesoro; Informe de la Unesco de la comisión internacional sobre la educación para el
siglo XXI; Grupo Santillana, Madrid.
Deval, Juan (2001): Aprender en la vida y en la escuela; Ediciones Morata, Madrid, segunda edición.
Díaz Pulecio, Laura Jeannette (1993): Recreo matemático 5, cuaderno de actividades; Editorial Voluntad, Bogotá.
Edie, Arvid R. Y Otros (1997): Engineering fundamentals and problem solving; McGraw Hill, Estados Unidos, tercera edición.
Feicht, Louis (2000): Old computer tricks: Enhance algebraic thinking; Learning & Leading with technology, Volumen 27, Número 8.
Ferrater Mora, José (1957): ¿Qué es la lógica?; Editorial Columba, Argentina.
Gallardo Ruiz, José & García López, Carmen: Apuntes para la asignatura informática, diseño de algoritmos y programas; [Consulta en
línea: Universidad de Málaga, Diciembre 8 de 2004, http://www.lcc.uma.es/personal/pepeg/mates] Gallo, Gonzalo (2004): El sentido
de la vida; Periódicos Asociados, Bogotá.
Gardner, Howard (1993): Creating minds: An anatomy of creativity seen through the lives of Freud, Einstein, Picasso, Stravinsky, Eliot,
Graham and Gandhi. Basic Books, Nueva York.
Garza, Rosa María & Leventhal, Susana (2000): Aprender cómo aprender; Editorial Trillas, México.
Good, Thomas & Brophy, Jere (1996): Psicología Edutactiva Contemporánea; McGraw Hill, México, quinta edición.
Pág.101 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
Gutiérrez, José Blun & Montenegro, Ignacio (1995): Juguemos con Logo 2; Fecón Ltda., Bogotá.
Guzdial, Mark (2000): Soporte tecnológico para el aprendizaje basado en proyectos, Capítulo 3 del libro Aprendiendo con tecnología,
Crhis Dede (compilador); Paidos, Argentina.
Holloway, G.E.T. (1982): Percepción del espacio en el niño según Piaget; Ediciones Piados Ibérica, Barcelona.
Iranzo, Pascual Julián (2005): Lógica simbólica para informáticos; Alfaomega, México.
ISTE (2007): Estándares Nacionales Estadounidenses de TIC para Estudiantes. [Consulta en línea: Eduteka, Marzo 18, 2009,
http://www.eduteka.org/estandaresestux.php3]
Jiménez Collazos, Luz Elena (2002): Conceptos básicos de programación con Java; Universidad Icesi, Cali.
Johansson, Frans (2005): El efecto Medici. Ediciones Deusto, Barcelona.
Jonassen, David; Carr, Chad; Yue, Hsiu-Ping (1998): Computadores como herramientas de la mente; [Consulta en línea: Eduteka, Abril 7
de 2007, http://eduteka.org/tema_mes.php3?TemaID=0012]
Joyanes Aguilar, Luis (2001): Fundamentos de programación, algoritmos y estructura de datos; Mc Graw Hill, México, segunda edición.
Lau, Joe & Chan, Jonathan (2004): OpenCourseWare on critical thinking, logic, and creativity: Strategic reasoning; [Consulta en línea:
Critical Thinking Web, Junio 15 de 2007, http://philosophy.hku.hk/think/strategy/]
Lizcano de Guerrero, Carmen (1999): Plan curricular; Ediciones Universidad Santo Tomás, Bogotá, segunda edición.
López, Eliana (2004): La evaluación en educación en valores; [Consulta en línea: Organización de Estados Iberoamericanos OEI, Agosto
31 de 2004, http://www.campus.oei.org/valores/boletin10a02.htm]
López Fríaz, Blanca Silvia (2000): Pensamientos crítico y creativo. Trillas, México.
López García, Juan Carlos (2009): Programación de computadores y creatividad; Guía de Algoritmos y Programación para docentes
[Consulta en línea: Eduteka, Julio 16, 2009, http://www.eduteka.org/ProgramacionCreatividad.php].
Malan, David (2007): Scratch para los futuros científicos de la computación; Ponencia presentada en el octavo simposio técnico de
ACM, Covington, Kentucky [Consulta en línea: Eduteka, Noviembre 9, 2009, http://www.eduteka.org/ScratchMalan.php].
Marquínez Argote, Germán & Sanz Adrados, Juan José (1988): Lógica; Universidad Santo Tomás, Bogota.
Melo R., Clara Esther (2001); Dominios 5, matemáticas para básica primaria; Editorial Escuelas del Futuro, Bogotá.
MEN (2003): Estándares básicos de calidad en matemáticas y lenguaje, versión adaptada para las familias colombianas; Ministerio de
Educación Nacional de Colombia (MEN); Proyecto MEN-ASCOFADE, Bogotá; [Consulta en línea: MEN, Febrero 16 de 2004,
http://www.eduteka.org/pdfdir/MENEstMatLen.pdf]
---------- (2000): Lineamientos curriculares para el área de tecnología e informática; Ministerio de Educación Nacional de Colombia
(MEN).
---------- (1999): Nuevas tecnologías y currículo de matemáticas, lineamientos curriculares; Cooperativa Editorial Magisterio, Bogotá.
---------- (1996): Educación en tecnología, propuesta para la educación básica; Documento I; Ministerio de Educación Nacional de
Colombia (MEN).
Moursund, David (1999): Project-Based learning using information technology; ISTE Publications.
---------- (1996): Increasing your expertise as a problem solver, some roles of computers; [Consulta en línea: Universidad de Oregon,
Enero 28 de 2004, http://darkwing.uoregon.edu/~moursund/PSBook1996/introduction.htm]
---------- (2006): Computational Thinking and Math Maturity: Improving Math Education in K-8 Schools; [Consulta en línea: Universidad
de Oregon, Octubre 25 de 2007, http://uoregon.edu/~moursund/Books/ElMath/ElMath.html]
NAP (2004): Computer Science: Reflections on the field, reflections from the field; [consulta en línea: National Academy Press;
http://nap.edu/catalog/11106.html]
NRC -National Research Council- (2004): Being fluent with information technology; National Academy Press (NAP), Washington, D.C. ;
[Consulta en línea: NAP, Enero 30 de 2005, http://www.nap.edu/html/beingfluent/]
Niño, Carlos Alberto & Rodríguez, Beryeny (1999): Mi libro matemático 5; Ediciones Magíster, Bogotá.
Olmos Gil, Tulio (2003): Lógica para niños; [Consulta en línea: Aldea Educativa, Enero 08 de 2004,
http://www.terra.com.ve/aldeaeducativa/temas/tareas28726.html]
Onrubia, Javier & Rochera, Maria José & Barberà, Elena (2001): La enseñanza y el aprendizaje de las matemáticas: una perspectiva
psicológica; capítulo 19 del libro Desarrollo psicológico y educación, César Coll (compilador), Alianza Editorial, Madrid.
Ortiz de Maschwitz, Elena María (2000): Inteligencias múltiples en la educación de la persona; Editorial Magisterio, Bogotá.
Papert, Seymour (1993): Mindstorms: Children, computers, and powerful ideas; Basic Books, New York, segunda
edición. Piaget, Jean (1964): Seis estudios de psicología; Seix Barral, Barcelona, 1977 (Éditions Gonthier, Ginebra,
1964). ---------- (1969a): Biología y conocimiento; Siglo XXI Editores, México.
---------- (1993): Estudios sobre lógica y psicología (compilación Alfredo Deaño y Juan Delval); Ediciones Altaya, Barcelona.
Piaget, Jean & Inhelder Bärbel (1969b): Psicología del niño; Ediciones Morata, Madrid.
Polya, George (1957): How to solve it; Princeton University Press, segunda edición.
Ramírez Bohórquez, Tania (2004): Deje atrás el temor a la matemática; Editorial Nuevo Mundo, Bogotá; Tercera Edición.
Resnick, Mitchel (2007a): Sembrando las semillas para una sociedad más creativa. Laboratorio de medios de MIT, Massachussets
[Consulta en línea: Eduteka, Marzo 16, 2009, http://www.eduteka.org/ScratchResnickCreatividad.php].

Pág.102 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php


---------- (2007b): All I really need to know (about creative thinking) I learned (by studying how children learn) in kindergarten; [Consulta
en línea: Eduteka, Noviembre 9, 2009, http://web.media.mit.edu/~mres/papers/kindergarten-learning-approach.pdf].
Resnick, Mitchel y Otros (2009): Scratch: Progamming for all; [Consulta en línea: Communications of the ACM, Noviembre 9, 2009,
http://cacm.acm.org/magazines/2009/11/48421-scratch-programming-for-all/fulltext].
Ritter M., Grace Alexandra & Borja P., Raúl André (2000): Algoritmos y Programación; Universidad Icesi, Cali.
Rizo Cabrera, Celia & Campistrous Pérez, Luis (2005): Didáctica y solución de problemas; Ponencia presentada en el XIX Simposio
Costarricense sobre Matemáticas, Ciencias y Sociedad [Consulta en línea: Universidad Nacional Heredia, Marzo 16 de 2007,
http://www.cimm.ucr.ac.cr/simposios/recursos/XIX/campistrous.pdf ]
Robinson, Ken (1999): All Our Futures: Creativity, Culture and Education. National Advisory Committee on Creative and Cultural
Education and DfEE publications, Inglaterra.
Rodríguez, Benjamín & Castro Walter (1995): Serie matemática construyamos 5; Educar Editores, Bogotá.
Rojas A., Vicente & Ñacato C., José (1980): Técnica de flujogramas I; Editora Andina, Quito, séptima edición.
Rumbaugh, James y Otros (1996): Modelado y diseño orientado a objetos, metodología OMT; Prentice Hall, España.
Sabino, Carlos (1980): El proceso de investigación, Ed. El Cid Editor, Bogotá.
Sánchez, Margarita A. de (1991): Desarrollo de habilidades de pensamiento, Editorial Trillas, México, Decimocuarta reimpresión:
2004. ---------- (1993): Aprende a pensar, guía del instructor; Editorial Trillas, México.
Savater, Fernando (1991): Ética para Amador, Editorial Ariel, Barcelona.
---------- (1996): El valor de educar; Editorial Ariel, Barcelona.
Serrano Pérez, Hugo (1998): Razonamiento abstracto; Fénix impresores, Cali.
Sierra Vásquez, Francisco Javier (2001): La tecnología informática y la escuela; [Consulta en línea: Ciberhabitat, Enero 8 de 2004,
http://ciberhabitat.com/escuela/maestros/tiyescuela/ti_3.htm]
Schunk, Dale H. (1997): Teorías de aprendizaje; Prentice Hall, México, segunda edición.
Solano, Guillermo (1991): Diseño lógico de exámenes; Editorial Trillas, México.
Soto Sarmiento, Ángel Alonso (1997): Educación en tecnología, un reto y una exigencia social; Cooperativa Editorial Magisterio, Bogotá.
Spoor, Cunera & Jinich, Emanuel (1990): Primeros pasos en Logo; McGraw Hill, México.
Stager, Gary (2003): En pro de los computadores; [Consulta en línea: Eduteka, Enero 13 de 2004,
http://www.eduteka.org/ProComputadores.php] Stenberg, Robert (1997): Inteligencia exitosa. Paidos, España.
Treff, August & Jacobs, Donald (1983): Life skills mathematics; Media Materials, Baltimore.
Trejos Buriticá, Omar Iván (1999): La esencia de la lógica de programación; Editorial Papiro, Pereira.
Tucker, Allen –editor- (2003): A model currículum for K-12 computer science, Final report of the ACM K-12 education task force
curriculum committee; [Consulta en línea: ACM, Septiembre 12 de 2004, http://www.acm.org/education/K12] Vasta, Ross y
Otros (1996): Psicología infantil; Ariel, Barcelona.
Watt, Daniel (1987): Aprendiendo con IBM Logo; McGraw-Hill, Bogotá.
Wilson, James; Fernández, María & Hadaway, Nelda (1993): Technology and problem solving; [Consulta en línea: Universidad de
Georgia, Abril 6 de 2004, http://jwilson.coe.uga.edu/emt725/Pssyn/Pssyn.html]
Woolfolk, Anita E. (1999): Psicología educativa; Prentice Hall, México, séptima edición.
Yarce, Jorge (2004): Valor para vivir los valores; Editorial Norma, Bogotá.
Zea Restrepo, Claudia María y Otros (2000): Informática y escuela, un enfoque global (Conexiones); Editorial Universidad Pontificia
Bolivariana, Medellín.
Zemelman, Steven; Daniels, Harvey; & Hyde, Arthur (1998): Mejores prácticas en matemáticas; Editorial Heineman; [Consulta en línea:
Eduteka, Julio 21 de 2004, http://www.eduteka.org/MejoresPracticas.php]
Zuleta Estanislao (1985): Educación y democracia; Hombre Nuevo Editores, Medellín, quinta edición.
---------- (1996): Lógica y crítica; Editorial Univalle, Cali.

Pág.103 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy