Algoritmos Programacion
Algoritmos Programacion
Algoritmos Programacion
ALGORITMOS Y
PROGRAMACIÓN
GUÍA
PARA DOCENTES
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.
• 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.
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
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:
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
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
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.
.
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).
¿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.
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.)
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.
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
otro.
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.
ACTIVIDAD
Pedir a los estudiantes que analicen el siguiente ejemplo y que
escriban en forma de ecuación las situaciones planteadas.
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
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:
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.
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
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
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.
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.
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
Scratch
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.
ESTRUCTURA SECUENCIAL
EJEMPLO 3-5
Escribir un procedimiento para dibujar en la pantalla una figura
simétrica igual a la siguiente:
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
para simetríaEstrella
limpia
cp
simetríaCuadricula
derecha 45
simetríaCuadricula fin
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.
] fin
Ahora con el uso del comando cumpleveces:
para camello2b
cumpleveces [i 85]
[
muestra [Esto es un camello]
]
fin
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
ACTIVIDADES
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”.
EJEMPLO 3-13
ACTIVIDAD
Escribir en el espacio si la propuesta corresponde a una
cadena, expresión, oración o proposición:
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
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”.
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').
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.
A continuación se ofrece un resumen de las primitivas de MicroMundos y Scratch utilizadas en esta Guía.
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
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
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.
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.
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 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
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
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
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
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.
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:
≈ 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 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]
≈ 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]
≈ 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]
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
Resultados esperados :
Datos Disponibles :
Restricciones :
Procesos Necesarios :
ANEXO 7
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].