SlideShare una empresa de Scribd logo
EDUCACIÓN BÁSICA ⊕


ALGORITMOS Y
  PROGRAMACIÓN
                                                      GUÍA
                                                 PARA DOCENTES

                                                      SEGUNDA EDICIÓN




                                                        JUAN CARLOS LÓPEZ GARCÍA


⊕ La Educación Básica en Colombia comprende los grados 1º a 9º; primaria de 1° a 5° y secundaria de 6° a 9°
  Esta Guía está diseñada para ser utilizada, por los maestros, con estudiantes de grados 4° a 9°.


Pág.1 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: 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.


               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.


Pág.2 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
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
                            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

Pág.3 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
UNIDAD 1: DESARROLLO DE HABILIDADES DE PENSAMIENTO

DESARROLLO DE HABILIDADES DE PENSAMIENTO DE ORDEN SUPERIOR

Existe actualmente un consenso general dentro de la                    compromete a los estudiantes en la consideración de
comunidad educativa mundial sobre la necesidad de                      varios aspectos importantes para la solución de
superar el tipo de enseñanza basada en la transmisión                  problemas: decidir sobre la naturaleza del problema,
de contenidos para apuntarle en su lugar al desarrollo                 seleccionar una representación que ayude a resolverlo
de capacidades. Investigaciones y estudios recientes                   y, monitorear sus propios pensamientos (metacognición)
proponen diversos conjuntos de habilidades que la                      y estrategias de solución. Este último, es un aspecto que
educación debe fomentar para que los estudiantes                       deben desarrollar desde edades tempranas. No
puedan tener éxito en el mundo digital y globalizado en                debemos olvidar que solucionar problemas con ayuda
el que van a vivir. Este planteamiento exige, sin                      del computador puede convertirse en una excelente
dilaciones, implementar estrategias que contribuyan                    herramienta para adquirir la costumbre de enfrentar
efectivamente en el desarrollo de esas habilidades                     problemas predefinidos de manera rigurosa y
planteadas como fundamentales para la educación en el                  sistemática, aun, cuando no se utilice un computador
Siglo XXI (21st Century Skills, 2004).                                 para solucionarlo.

En la mayoría de conjuntos de habilidades propuestos                   Esto en cuanto a la solución de problemas, pero hay
figuran las habilidades de pensamiento de orden                        otra habilidad de pensamiento que también se puede
superior entre las que se incluye la destreza para                     ayudar a desarrollar con un cursos de Algoritmos y
solucionar problemas; por esta razón, se requiere                      Programación: La Creatividad.
seleccionar estrategias efectivas para ayudar a que los
estudiantes las desarrollen. Para atender esta                         En los últimos años, la creatividad forma parte de las
necesidad, la programación de computadores constituye                  prioridades de los sistemas educativos en varios países,
una buena alternativa, siempre y cuando se la enfoque                  junto a otras habilidades de pensamiento de orden
al logro de esta destreza y no a la formación de                       superior. Al punto que los Estándares Nacionales
programadores. Es importante insistir en esta                          Norteamericanos de TIC para Estudiantes (NETS-S)
orientación debido a que las metodologías utilizadas en                formulados en 1998, estaban encabezados por
Educación Básica para llevar a cabo cursos de                          “Operaciones y conceptos básicos de las TIC” y la
Algoritmos y Programación, son heredadas de la                         Creatividad no figuraba. Sin embargo, en la nueva
educación superior y muchos de los docentes que las                    versión de estos Estándares, liberada en 2008, la
utilizan se dedican principalmente a enseñar los                       creatividad encabeza los seis grupos de estándares.
vericuetos de lenguajes de programación profesionales                  Otro ejemplo muy diciente es la creación en Inglaterra
tales como Java, C++, Visual Basic, etc. Hablar hoy de                 del Consorcio para la Creatividad que busca promover
aprender a diseñar y construir aplicaciones (programas)                en la educación el desarrollo de habilidades de
complejas, implica una labor titánica que en la mayoría                pensamiento que conduzcan la formación de personas
de los casos está fuera del alcance de la Educación                    orientadas a la creatividad y a la innovación.
Básica ya que demanda necesariamente enfoques de
programación como el orientado a objetos al que                        Una de las razones para que la creatividad se hubiese
apuntan la mayoría de tendencias en Ingeniería de                      convertido en tema prioritario es que tiene un alto
Sistemas.                                                              impacto en la generación de riqueza por parte de las
                                                                       empresas de la Sociedad de la Creatividad. En esta
Por esta razón, en la Educación Básica es altamente                    empresas, los reconocimientos profesionales se dan
recomendable utilizar ambientes de programación                        gracias al talento, la creatividad y la inteligencia. La
basados en Logo, fáciles de utilizar y que permitan                    creatividad reemplazó las materias primas como fuente
realizar procedimientos que contengan estructuras                      fundamental de crecimiento económico. Para tener éxito
básicas (secuencial, decisión y repetición), pero siempre              en esta nueva Sociedad, las regiones deben desarrollar,
conducentes al desarrollo de habilidades del Siglo XXI.                atraer y retener a personas talentosas y creativas que
Solo en los últimos grados de básica secundaria o en la                generen innovaciones (Banaji & Burn, 2006). Cada vez
Media Técnica sería aconsejable introducir a los                       es mayor el número de empresas que fundamentan su
estudiantes a la programación orientada a objetos                      modelo de negocio en la creatividad y la innovación;
mediante entornos de programación visuales y                           para ellas, son indispensables personas que además de
amigables como Alice, KPL o Processing.                                tener los conocimientos requeridos para desempeñarse
                                                                       en los diferentes cargos, tengan habilidad para pensar y
Desde el punto de vista educativo, la programación de                  actuar creativamente.
computadores posibilita no solo activar una amplia
variedad de estilos de aprendizaje (Stager, 2003) sino                 Ejemplo tangible de esto es el que la Comisión Europea,
desarrollar el pensamiento algorítmico. Adicionalmente,                consciente de la importancia que tienen la creatividad y
Pág.4 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
la innovación para el desarrollo social y económico de                     ayuda en la solución de problemas. Esto sugiere
los países del viejo continente, decidiera proclamar el                    que una evaluación autentica en matemáticas debe
2009 como el “Año de la Creatividad y la Innovación”                       realizarse con libro y cuaderno abiertos, permitir el
(http://create2009.europa.eu/).                                            uso de calculadora y computador; en cuyo caso el
                                                                           computador puede aportar un ambiente de
El reto enorme que recae hoy sobre los sistemas                            aprendizaje y evaluación enriquecidos.
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                       con un curso de algoritmos y programación:
la sociedad griega en tiempos de Alejandro el Grande                       Inteligencia artificial, robótica, aprendizaje asistido
era prioridad que las personas desarrollaran su cuerpo                     por computador (CAL), aprendizaje asistido por
como preparación para los quehaceres del campo de                          computador altamente interactivo e inteligente
batalla, para la sociedad actual es prioritario que las                    (HIICAL), etc.
personas desarrollen sus habilidades de pensamiento
de orden superior para que pueden desempeñarse con                     Es muy importante tener presente que resolver
éxito en ella. Pero, dado que el desarrollo de estas                   problemas matemáticos mediante procedimientos tiene
habilidades se debe iniciar desde edad temprana, la
                                                                       dos ciclos: uno en el cual se resuelve el problema
educación debe asumir su cuota de responsabilidad en
                                                                       matemático en sí (con papel y lápiz) y otro en el que esa
esta importante tarea.
                                                                       solución se automatiza en el computador. Crear un
                                                                       procedimiento para calcular el área de cualquier
Desde este punto de vista, la presente “Guía de                        rectángulo a partir de las dimensiones de sus lados,
Algoritmos y Programación”, dirigida a docentes de                     requiere que el estudiante primero resuelva el problema
Educación Básica, se concentra en el desarrollo de la
                                                                       matemático (entender el problema, trazar un plan,
creatividad y de habilidades para solucionar problemas
                                                                       ejecutar el plan y revisar) y luego elabore el
predefinidos. Para facilitar a los docentes su utilización
                                                                       procedimiento que pida los datos de entrada, realice los
en el aula, los ejemplos que se proponen corresponden                  cálculos y muestre el resultado (analizar el problema,
a temas de Matemáticas y Ciencias Naturales para                       diseñar un algoritmo, traducir el algoritmo a un lenguaje
grados cuarto y quinto de Básica Primaria.                             de programación y depurar el programa).


Programación y Matemáticas                                             Programación y Ciencias Naturales
Son varios los temas de las matemáticas cuya
                                                                       En Ciencias Naturales también hay temas en los cuales
comprensión se puede mejorar mediante la integración                   realizar actividades de programación de computadores
de esta asignatura con un curso de algoritmos y                        puede ayudar a mejorar su comprensión por parte de los
programación:
                                                                       estudiantes.
•   Concepto de variable. Una variable es una ubicación                Mediante el trabajo con entornos de programación como
    de memoria en el computador o en la calculadora                    Scratch o MicroMundos, los estudiantes aprenden a
    que tiene un nombre (identificador) y en la que se                 seleccionar, crear y manejar múltiples formas de medios
    pueden almacenar diferentes valores.                               (texto, imágenes y grabaciones de audio). La
•   Concepto de función. La mayoría de calculadoras                    comunicación efectiva requiere hoy en día, para ser
    científicas vienen de fabrica con cientos de                       creativa y persuasiva, la escogencia y manipulación de
    funciones y los estudiantes pueden crear                           los mismos tipos de medios que estos entornos de
    procedimientos que se comportan como funciones                     programación ponen al alcance de los estudiantes. Se
    (aceptan parámetros, realizan cálculos y reportan un               espera que a medida que ellos ganan experiencia
    resultado).                                                        creando con medios, se vuelvan más perceptivos y
•   Manejo de ecuaciones y graficación.                                críticos en el análisis de los que tienen a su alcance en
•   Modelado matemático. Algunas de las ideas clave                    el mundo que los rodea (Rusk, Resnick & Maloney,
    de los modelos matemáticos están presentes en los                  2007).
    manipulables      virtuales     (simulaciones      y
    micromundos). Estos manipulables se pueden                         Por ejemplo, realizar proyectos cuyo producto final sea
    emplear tanto en procesos de entrenamiento (drill                  la comunicación de resultados obtenidos en procesos de
    and practice) como de educación matemática. Sin                    indagación y/o experimentación en clase de Ciencias:
    embargo, la tendencia es a utilizarlos en ambientes
    en los que los estudiantes se convierten en                        •   Explicación de las partes de una célula y su
    diseñadores y no en simples consumidores.                              importancia como unidad básica de los seres vivos.
•   Evaluación. En la mayoría de las situaciones                       •   Exposición de los diversos sistemas de órganos del
    extraescolares, las personas que necesitan utilizar                    ser humano con la respectiva explicación de su
    matemáticas     regularmente     tienden   a    usar                   función.
    calculadoras, computadores y otros dispositivos                    •   Clasificación de los seres vivos en diversos grupos
    especializados (GPS, medición con láser, etc) como                     taxonómicos (plantas, animales, microorganismos,
Pág.5 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
etc).                                                              •   Representación del movimiento y desplazamiento de
•   Descripción y comparación de diversos tipos de                         objetos con diferentes velocidades.
    neuronas.                                                          •   Ilustración interactiva del sistema solar.
•   Explicación de las funciones de los diversos
    componentes de un circuito eléctrico.                              En el caso de las Ciencias Naturales es fundamental
•   Descripción de los principales elementos del sistema               tener en cuenta que los proyectos que se realicen
    solar que incluya las relaciones de tamaño,                        utilizando entornos de programación como Scratch o
    movimiento y posición.                                             MicroMundos pueden requerirse conocimiento básico
                                                                       del tema por parte de los estudiantes. En este caso, los
Adicionalmente, la elaboración de simulaciones es un                   proyectos se convierten en profundización para la
veta muy rica para formular proyectos en Ciencias                      comprensión de esos temas.
Naturales. Estas sin duda contribuyen a la comprensión
de fenómenos naturales ya que en este tipo de                          De lo contrario, se debe incluir en cada proyecto un
actividades los estudiantes actúan como diseñadores.                   componente previo de investigación en el cual los
No se debe pasar por alto que los estudiantes aprendan                 estudiantes puedan alcanzar los conocimientos básicos
más construyendo materiales de instrucción que                         conceptuales requeridos para llevar a cabo el proyecto.
estudiándolos (Jonassen, Carr & Yue, 1998).                            La mayoría de estos proyectos de este tipo se enfocan
                                                                       en la comunicación de hallazgos de indagaciones y/o
Para poder construir las simulaciones los estudiantes                  experimentaciones.
deben coordinar periodicidad y reglas de interacción
entre varios objetos móviles programables (tortugas y                  Una tercera opción es trabajar con el entorno de
objetos). Además, la posibilidad de programar                          programación como actividad exploratoria a un tema
interacciones con el usuario de la simulación ofrece                   dado en Ciencias Naturales; sin embargo, este enfoque
oportunidades valiosas para comprometer al estudiante                  requiere una planeación cuidadosa para que se logre el
“diseñador” en la reflexión sobre detección de actividad,              objetivo de aprendizaje y la actividad no se quede
retroalimentación, usabilidad y otros elementos                        únicamente en lo lúdico.
presentes en los sistemas de computo que se utilizan
diariamente en empresas y hogares.

Los siguientes son algunos ejemplos de proyectos cuyo
producto final consiste en una simulación sobre diversos
temas que son fundamentales en Ciencias Naturales:

•   Imitación del comportamiento de seres vivos en
    ecosistemas, teniendo en cuenta necesidades y
    cantidades disponibles de energía y nutrientes
    (cadena alimentaria).
•   Representación del fenómeno migratorio de varias
    especies de animales como respuesta a cambios en
    el ambiente y en los ecosistemas en los que viven.
•   Ilustración interactiva de la adaptación de los seres
    vivos a variaciones en el entorno en que viven.
•   Demostración del funcionamiento de circuitos
    eléctricos en serie y en paralelo.
•   Imitación del efecto de la transferencia de energía
    térmica en los cambios de estado de algunas
    sustancias.
•   Representación del ciclo de vida de una planta
    teniendo en cuenta factores ambientales (semilla –
    siembra – desarrollo planta – florecimiento –
    polinización – semilla).
•   Diseño de experimentos en los cuales se deba
    modificar una variable para dar respuesta a
    preguntas.
•   Imitación de fenómenos de camuflaje con un
    entorno y relacionarlos con ciertas necesidades en
    algunos seres vivos.




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

Una de las acepciones que trae el Diccionario de Real                      empíricas para llegar a una solución. El método
Academia de la Lengua Española (RAE) respecto a la                         heurístico conocido como “IDEAL”, formulado por
palabra Problema es “Planteamiento de una situación                        Bransford y Stein (1984), incluye cinco pasos:
cuya respuesta desconocida debe obtenerse a través de                      Identificar el problema; definir y presentar el
métodos científicos”. Con miras a lograr esa respuesta,                    problema; explorar las estrategias viables; avanzar
un problema se puede definir como una situación en la                      en las estrategias; y lograr la solución y volver para
cual se trata de alcanzar una meta y para lograrlo se                      evaluar los efectos de las actividades (Bransford &
deben hallar y utilizar unos medios y unas estrategias.                    Stein, 1984). El matemático Polya (1957) también
La mayoría de problemas tienen algunos elementos en                        formuló un método heurístico para resolver
común: un estado inicial; una meta, lo que se pretende                     problemas que se aproxima mucho al ciclo utilizado
lograr; un conjunto de recursos, lo que está permitido                     para programar computadores. A lo largo de esta
hacer y/o utilizar; y un dominio, el estado actual de                      Guía se utilizará este método propuesto por Polya.
conocimientos, habilidades y energía de quien va a                     •    Algoritmos : Consiste en aplicar adecuadamente
resolverlo (Moursund, 1999).                                               una serie de pasos detallados que aseguran una
                                                                           solución correcta. Por lo general, cada algoritmo es
Casi todos los problemas requieren, que quien los                          específico de un dominio del conocimiento. La
resuelve, los divida en submetas que, cuando son                           programación de computadores se apoya en este
dominadas (por lo regular en orden), llevan a alcanzar el                  método, tal como veremos en la Unidad 2.
objetivo. La solución de problemas también requiere que                •    Modelo de procesamiento de información : El
se realicen operaciones durante el estado inicial y las                    modelo propuesto por Newell y Simon (1972) se basa
submetas, actividades (conductuales, cognoscitivas) que                    en plantear varios momentos para un problema
alteran la naturaleza de tales estados (Schunk, 1997).                     (estado inicial, estado final y vías de solución). Las
                                                                           posibles soluciones avanzan por subtemas y
Cada disciplina dispone de estrategias específicas para                    requieren que se realicen operaciones en cada uno
resolver problemas de su ámbito; por ejemplo, resolver                     de ellos.
problemas matemáticos implica utilizar estrategias                     •    Análisis de medios y fines : Se funda en la
propias de las matemáticas. Sin embargo, algunos                           comparación del estado inicial con la meta que se
psicólogos opinan que es posible utilizar con éxito                        pretende alcanzar para identificar las diferencias.
estrategias generales, útiles para resolver problemas en                   Luego se establecen submetas y se aplican las
muchas áreas. A través del tiempo, la humanidad ha                         operaciones necesarias para alcanzar cada submeta
utilizado diversas estrategias generales para resolver                     hasta que se alcance la meta global. Con este
problemas. Schunk (1997), Woolfolk (1999) y otros,                         método se puede proceder en retrospectiva (desde la
destacan los siguientes métodos o estrategias de tipo                      meta hacia el estado inicial) o en prospectiva (desde
general:                                                                   el estado inicial hacia la meta).
• Ensayo y error : Consiste en actuar hasta que algo                   •    Razonamiento analógico : Se apoya en el
     funcione. Puede tomar mucho tiempo y no es seguro                     establecimiento de una analogía entre una situación
     que se llegue a una solución. Es una estrategia                       que resulte familiar y la situación problema. Requiere
     apropiada cuando las soluciones posibles son pocas                    conocimientos suficientes de ambas situaciones.
     y se pueden probar todas, empezando por la que                    •    Lluvia de ideas : Consiste en formular soluciones
     ofrece mayor probabilidad de resolver el problema.                    viables a un problema. El modelo propuesto por
     Por ejemplo, una bombilla que no prende: revisar la                   Mayer (1992) plantea: definir el problema; generar
     bombilla, verificar la corriente eléctrica, verificar el              muchas soluciones (sin evaluarlas); decidir los
     interruptor.                                                          criterios para estimar las soluciones generadas; y
• Iluminación : Implica la súbita conciencia de una                        emplear esos criterios para seleccionar la mejor
     solución que sea viable. Es muy utilizado el modelo                   solución. Requiere que los estudiantes no emitan
     de cuatro pasos formulado por Wallas (1921):                          juicios con respecto a las posibles soluciones hasta
     preparación, incubación, iluminación y verificación.                  que terminen de formularlas.
     Estos cuatro momentos también se conocen como                     •    Sistemas de producción : Se basa en la aplicación
     proceso creativo. Algunas investigaciones han                         de una red de secuencias de condición y acción
     determinado que cuando en el periodo de incubación                    (Anderson, 1990).
     se incluye una interrupción en el trabajo sobre un                •    Pensamiento lateral : Se apoya en el pensamiento
     problema se logran mejores resultados desde el                        creativo, formulado por Edwar de Bono (1970), el
     punto de vista de la creatividad. La incubación ayuda                 cual difiere completamente del pensamiento lineal
     a "olvidar" falsas pistas, mientras que no hacer                      (lógico). El pensamiento lateral requiere que se
     interrupciones o descansos puede hacer que la                         exploren y consideren la mayor cantidad posible de
     persona que trata de encontrar una solución creativa                  alternativas para solucionar un problema. Su
     se estanque en estrategias inapropiadas.                              importancia para la educación radica en permitir que
• Heurística : Se basa en la utilización de reglas                         el estudiante: explore (escuche y acepte puntos de
Pág.7 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
vista diferentes, busque alternativas); avive                       ejemplo, en “Recreo Matemático 5” (Díaz, 1993) y en “Dominios 5”
   (promueva el uso de la fantasía y del humor); libere                (Melo, 2001) se pueden identificar las siguientes sugerencias
   (use la discontinuidad y escape de ideas                            propuestas a los estudiantes para llegar a la solución de un problema
   preestablecidas); y contrarreste la rigidez (vea las                matemático:
   cosas desde diferentes ángulos                y evite               1. COMPRENDER EL PROBLEMA.
   dogmatismos). Este es un método adecuado cuando                         • Leer el problema varias veces
   el problema que se desea resolver no requiere
                                                                           • Establecer los datos del problema
   información adicional, sino un reordenamiento de la
   información disponible; cuando hay ausencia del                         • Aclarar lo que se va a resolver (¿Cuál es la pregunta?)
   problema y es necesario apercibirse de que hay un                       • Precisar el resultado que se desea lograr
   problema; o cuando se debe reconocer la posibilidad                     • Determinar la incógnita del problema
   de perfeccionamiento y redefinir esa posibilidad como                   • Organizar la información
   un problema (De Bono, 1970).
                                                                           • Agrupar los datos en categorías
Como se puede apreciar, hay muchas estrategias para                        • Trazar una figura o diagrama.
solucionar problemas; sin embargo, esta Guía se enfoca                 2. HACER EL PLAN.
principalmente en dos de estas estrategias: Heurística y                   • Escoger y decidir las operaciones a efectuar.
Algorítmica.                                                               • Eliminar los datos inútiles.
                                                                           • Descomponer el problema en otros más pequeños.
Según Polya (1957), cuando se resuelven problemas,                     3. EJECUTAR EL PLAN (Resolver).
intervienen cuatro operaciones mentales:                                   • Ejecutar en detalle cada operación.
1. Entender el problema                                                    • Simplificar antes de calcular.
2. Trazar un plan                                                          • Realizar un dibujo o diagrama
3. Ejecutar el plan (resolver)                                         4. ANALIZAR LA SOLUCIÓN (Revisar).
4. Revisar                                                                 • Dar una respuesta completa
                                                                           • Hallar el mismo resultado de otra manera.
Numerosos autores de textos escolares de matemáticas                       • Verificar por apreciación que la respuesta es adecuada.
hacen referencia a estas cuatro etapas planteadas por
Polya. Sin embargo, es importante notar que estas son                  EJEMPLO
flexibles y no una simple lista de pasos como a menudo                 En un juego, el ganador obtiene una ficha roja; el segundo, una ficha
se plantea en muchos de esos textos (Wilson,                           azul; y el tercero, una amarilla. Al final de varias rondas, el puntaje se
Fernández & Hadaway, 1993). Cuando estas etapas se                     calcula de la siguiente manera: Al cubo de la cantidad de fichas rojas
siguen como un modelo lineal, resulta contraproducente                 se adiciona el doble de fichas azules y se descuenta el cuadrado de
para cualquier actividad encaminada a resolver                         las fichas amarillas. Si Andrés llegó 3 veces en primer lugar, 4 veces
problemas.                                                             de último y 6 veces de intermedio, ¿Qué puntaje obtuvo? (Adaptado
                                                                       de Melo (2001), página 30).
                                                                       R/.
                                                                       COMPRENDE
                                                                       • Leer detenidamente el problema
                                                                       • ¿Cuántos colores de fichas se reparten?
                                                                       • ¿Cuántas fichas rojas, azules y amarillas obtuvo Andrés?
                                                                       • ¿Qué pregunta el problema?
                                                                       PLANEA
                                                                       • Para hallar el puntaje que obtiene Andrés por sus llegadas de
                                                                            primero, calcular el cubo de la cantidad de fichas rojas.
   Ilustración 1-1: Interpretación dinámica y cíclica de las etapas
                                                                       • Para hallar el puntaje por sus llegadas en segundo lugar, calcular
           planteadas por Polya para resolver problemas.
                                                                            el doble de la cantidad de fichas azules.
                                                                       • Para hallar el puntaje que pierde por sus llegadas en último
Es necesario hacer énfasis en la naturaleza dinámica y
                                                                            lugar, calcular el cuadrado de la cantidad de fichas amarillas.
cíclica de la solución de problemas. En el intento de
trazar un plan, los estudiantes pueden concluir que                    • Para hallar el puntaje total, calcular la suma de los puntajes por
                                                                            las fichas rojas y azules, restarle los puntos de las fichas
necesitan entender mejor el problema y deben regresar
                                                                            amarillas.
a la etapa anterior; o cuando han trazado un plan y
                                                                       RESUELVE
tratan de ejecutarlo, no encuentran cómo hacerlo;
entonces, la actividad siguiente puede ser intentar con                • Por tres fichas rojas: 33 = 27 puntos
un nuevo plan o regresar y desarrollar una nueva                       • Por seis fichas azules: 6 x 2 = 12 puntos
comprensión del problema (Wilson, Fernández &                          • Por cuatro fichas amarillas: 42 = 16 puntos
Hadaway, 1993; Guzdial, 2000).                                         • Para obtener el puntaje final de Andrés, sumar los puntos
                                                                            obtenidos con las fichas rojas y azules (27 + 12 = 39 puntos) y de
TIP                                                                         este resultado restar los puntos representados por las fichas
La mayoría de los textos escolares de matemáticas abordan la                amarillas (39 – 16 = 23 puntos).
Solución de Problemas bajo el enfoque planteado por Polya. Por         REVISA
Pág.8 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
• El puntaje que obtuvo Andrés es 23 puntos.                            • Fomentar la utilización de representaciones visuales
• Verificar las operaciones y comparar los cálculos con la solución       que favorezcan la comprensión de conceptos
  estimada.                                                               (diagramas de flujo, mapas conceptuales, diagramas
                                                                          de Venn, etc).
El anterior es un problema típico en clase de                           • Dar       retroalimentación       personalizada      en
matemáticas. Es muy importante que los estudiantes                        consideración al esfuerzo hecho por los estudiantes
reflexionen sobre las actividades que realizan para                       para solucionar problemas.
solucionarlo (metacognición) y las agrupen de acuerdo a                 • Verificar que una cantidad importante de la
las etapas que contenga la estrategia de solución                         instrucción ocurra en grupos pequeños o en
empleada.                                                                 situaciones de uno a uno.
                                                                        • Ventilar los errores y malentendidos más comunes.
ACTIVIDAD                                                               • Promover la interacción tanto estudiante-docente,
En la academia de las ciencias sociales hay dos grupos de materias:       como estudiante-estudiante. Los niños son los
Geografía, con 124 alumnos; Historia, con 220; y Educación                mejores maestros de otros niños en cosas tan
Ambiental, con 185. Si hay 25 alumnos que estudian Geografía y            importantes para ellos como el aprendizaje de
Educación Ambiental, 37 que estudian Educación Ambiental e                diversos juegos (Savater, 1996).
Historia, y ninguno toma las tres materias, ¿cuántos alumnos tiene la
academia? (Adaptado de Melo, 2001, página 46).
                                                                        • Ofrecer actividades que den oportunidad a los
                                                                          estudiantes de discutir, hacer conjeturas, sacar
                                                                          conclusiones,      defender      ideas     y    escribir
El estudiante debe tener en cuenta (y anotar) las actividades que
                                                                          conceptualizaciones.
realiza para resolver este problema y agruparlas en cada una de las
cuatro etapas propuestas por Polya (comprende, planea, resuelve y       • Proporcionar oportunidades para realizar trabajo
revisa). Para resolver este problema, los estudiantes deben tener         reflexivo y colaborativo entre estudiantes.
conocimientos sobre conjuntos (representación, clasificación e
intersección). Es buena idea que construyan una tabla para
organizar la información y un diagrama de Venn para representar los     Solución de problemas y programación
datos.                                                                  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
Establecer un modelo para solucionar problemas es un                    de aprendizaje. Los estudiantes pueden encontrar
paso fundamental pero no suficiente. Según Clements &                   diversas maneras de abordar problemas y plantear
Meredith (1992) y Zemelman, Daniels & Hyde (1998) y                     soluciones, al tiempo que desarrollan habilidades para:
otros, los docentes deben adoptar una serie de buenas                   visualizar caminos de razonamiento divergentes,
prácticas con el fin de ayudar a los estudiantes a                      anticipar errores, y evaluar rápidamente diferentes
desarrollar habilidades para resolver problemas:                        escenarios mentales (Stager, 2003).
• Plantear verbalmente problemas con variedad de
   estructuras y de formas de solución.
• Presentar diversas estrategias de solución de
   problemas.
• Asignar problemas que tengan aplicación en la vida
   diaria.
• Ofrecer experiencias que estimulen la curiosidad de
   los estudiantes y construyan confianza en la
   investigación, la solución de problemas y la
   comunicación.
• Permitir a los estudiantes tomar la iniciativa en el
   planteamiento de preguntas e investigaciones que les
   interesen.
• Hacer preguntas que involucren pensamiento de
   orden superior.
• Verificar que los estudiantes son conscientes de las
   estrategias que deben utilizar y de los procesos que
   deben aprender.
• Plantear problemas que proporcionen contextos en
   los que se aprendan conceptos y habilidades.
• Proveer ejemplos de cómo los conceptos y
   habilidades utilizados podrían aplicarse en otros                          Ilustración 1-2(a): Área de trabajo de MicroMundos EX
   contextos.                                                                                  (interfaz del programa)
• Promover, de manera creciente, la abstracción y la
   generalización     mediante    la    reflexión y   la                Quienes han utilizado Logo con estudiantes de básica
   experimentación.                                                     primaria (especialmente con grados 3º a 5º - 8 a 11
Pág.9 - 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                esperado. Así, Logo promueve lo que Piaget (1964)
se familiarizan con la interfaz del programa y la utilizan             denominó “la conquista de la difícil conducta de la
para darle instrucciones a la tortuga. Por ejemplo,                    reflexión” que se inicia a partir de los siete u ocho años
utilizan el “centro de mando” (área de comandos) para                  cuando niños y niñas dejan de actuar por impulso y
introducir manualmente, una a una, las instrucciones                   empiezan a pensar antes de proceder. Además,
para construir un rectángulo. Esta forma de utilizar Logo              demanda de los estudiantes planificar, formular hipótesis
promueve la exploración y permite al estudiante ver                    y anticipar qué sucederá.
inmediatamente cuál es el efecto que produce cada
instrucción ejecutada.
                                                                       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
                                                                         adelante 120
                                                                         derecha 90
                                                                         adelante 80
                                                                         derecha 90
                                                                         adelante 120
                                                                       Fin

      Ilustración 1-2(b): Área de trabajo de Scratch Versión 1.4
                                                                       Cuando se invoca este procedimiento escribiendo “rectángulo” en el
                        (interfaz del programa)                        “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 se encuentran entre “para
EJEMPLO                                                                rectángulo” [to rectangulo] y “fin” [end] (MicroMundos) o debajo de la
Pedir a los estudiantes que escriban en el “Centro de Mando” las       instrucción [al presionar bandera verde]. Antes de escribir el anterior
instrucciones para dibujar un rectángulo con las siguientes medidas:
                                                                       procedimiento, los estudiantes deben analizar la figura geométrica
Lado1= 80; Lado2=120.                                                  que desean construir, describirla y reflexionar acerca de cómo se
                                                                       unen sus partes (dos pares de lados paralelos de igual longitud y
         MicroMundos                             Scratch               cuatro ángulos iguales de 90 grados). Deben explicar el todo
cp                                  El Centro de Mando de              mediante la composición de las partes, y esta composición supone,
adelante 80                         MicroMundos no tiene               por tanto, la existencia de autenticas operaciones de segmentación o
derecha 90                          equivalente en Scratch.            partición y de operaciones inversas de reunión o adición, así como
adelante 120                                                           desplazamientos por separación o concentración (Piaget, 1964).
derecha 90
adelante 80                                                            Pedir a los estudiantes que escriban un procedimiento
derecha 90                                                             más general para dibujar cualquier rectángulo, significa
adelante 120                                                           que ellos deben tratar las dimensiones de la figura como
                                                                       variables (Lado1= ?; Lado2= ?) y no como constantes
A medida que el estudiante introduce cada una de estas                 (Lado1= 80; Lado2= 120). Además, deben construir una
instrucciones se dibuja cada uno de los lados que conforman el         definición de rectángulo que el computador entienda; de
rectángulo.                                                            esta manera, empiezan a construir conocimiento intuitivo
NOTA: Ver en el Anexo 1 un resumen de las primitivas (comandos e       acerca de la definición de esta figura geométrica,
instrucciones) de MicroMundos y de Scratch utilizadas en esta guía.    conocimiento que luego pueden formalizar en una
                                                                       definición abstracta de la misma (Clements & Meredith,
Sin embargo, en esta guía se utilizará el “área de                     1992).
procedimientos” de MicroMundos para programar el
computador. Los procedimientos son módulos con                         Adicionalmente, la programación de computadores
instrucciones que se inician con el comando “para” y que               compromete a los estudiantes en varios aspectos
el computador ejecuta automáticamente, una tras otra,                  importantes de la solución de problemas: decidir sobre
hasta encontrar el comando “fin”. Emplear Logo de esta                 la naturaleza del problema,          seleccionar una
manera exige que el estudiante piense en todos los                     representación que les ayude a resolverlo, y monitorear
comandos que conforman un procedimiento antes de                       sus propios pensamientos (metacognición) y estrategias
escribirlo, ejecutarlo y comprobar si produce el resultado
Pág.10 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
de solución. Este último, es un aspecto que ellos deben                Analizar el problema (entenderlo)
desarrollar desde edades tempranas y solucionar
problemas con ayuda del computador puede convertirse
en una 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                               Ilustración 1-4: Primera fase del ciclo de programación.
implica abrirle un espacio a la programación en el
estudio de las matemáticas, pero enfocándose en los                    Los programas de computador tienen como finalidad
problemas matemáticos y en el uso del computador                       resolver problemas específicos y el primer paso consiste
como una herramienta para solucionar problemas de                      en definir con precisión el problema hasta lograr la mejor
esta área (Wilson, Fernández & Hadaway, 1993).                         comprensión posible. Una forma de realizar esta
                                                                       actividad se basa en formular claramente el problema,
Numerosos autores de libros sobre programación,                        especificar los resultados que se desean obtener,
plantean cuatro fases para elaborar un procedimiento                   identificar   la   información     disponible      (datos),
que realice una tarea específica. Estas fases                          determinar las restricciones y definir los procesos
concuerdan con las operaciones mentales descritas por                  necesarios para convertir los datos disponibles (materia
Polya para resolver problemas:                                         prima) en la información requerida (resultados).
1. Analizar el problema (Entender el problema)
2. Diseñar un algoritmo (Trazar un plan)                               Estas etapas coinciden parcialmente con los elementos
3. Traducir el algoritmo a un lenguaje de programación                 generales que, según Schunk (1997), están presentes
   (Ejecutar el plan)                                                  en todos los problemas:
4. Depurar el programa (Revisar)                                       1. Especificar claramente los resultados que se desean
                                                                          obtener (meta y submetas)
Como se puede apreciar, hay una similitud entre las                    2. Identificar la información disponible (estado inicial)
metodologías propuestas para solucionar problemas                      3. Definir los procesos que llevan desde los datos
matemáticos (Clements & Meredith, 1992; Díaz, 1993;                       disponibles hasta el resultado deseado (operaciones)
Melo, 2001; NAP, 2004) y las cuatro fases para
solucionar problemas específicos de áreas diversas,
mediante la programación de computadores.




  Ilustración 1-3: fases para elaborar un programa de computador.
                                                                          Ilustración 1-5: Etapas a desarrollar en la fase de análisis de un
                                                                                               problema (entenderlo)

                                                                       Para establecer un modelo que los estudiantes puedan
                                                                       utilizar en la fase de análisis del problema, debemos
                                                                       agregar dos temas a los elementos expuestos por
                                                                       Schunk (1997): formular el problema y determinar las
                                                                       restricciones.
Pág.11 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
Ahora veamos con mayor detalle cada una de las etapas                  Además, es conveniente que los estudiantes se
del análisis de un problema.                                           habitúen a analizar los problemas desde diferentes
                                                                       puntos de vista y a categorizar la información dispersa
                                                                       que reciben como materia prima (Schunk, 1997).
Formular el problema
La solución de un problema debe iniciar por determinar y               En programación es frecuente que quien programa deba
comprender exactamente en qué consiste ese problema.                   formular el problema a partir de los resultados
La mayoría de los problemas que se resuelven en el                     esperados. Es muy importante que el estudiante sea
aula de clase llegan a manos de los estudiantes                        consciente de que cuando las especificaciones de un
perfectamente formulados. Esta etapa es una buena                      programa se comunican mediante lenguaje natural,
oportunidad para plantear situaciones en forma verbal o                estas    pueden    ser    ambiguas,   incompletas   e
escrita que vinculen la enseñanza de las matemáticas                   incongruentes. En esta etapa se debe hacer una
con el entorno en el que vive el estudiante y que tengan               representación precisa del problema (Rumbaugh, 1996);
una variedad de estructuras y de formas de solución                    especificar lo más exactamente posible lo que hay que
(Zemelman, Daniels & Hayde, 1998).                                     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 cuesta
manera se contrarresta la costumbre tan común en el                    850.000 de contado o 960.000 a crédito. Ella tiene 600.000 pesos en
aula de que los problemas sean formulados por el                       efectivo.
profesor o tomados de los libros de texto (Brown &                     R/.
Walter, 1990).                                                         Como el efectivo que tiene doña Ruby no le alcanza para comprar el
                                                                       televisor de contado, ella tiene dos opciones: comprarlo totalmente a
EJEMPLO                                                                crédito o pagar una parte de contado (cuota inicial) y el resto a
OPCIÓN 1:                                                              crédito.
Juan Felipe es jefe de bodega en una fabrica de pañales                Para poder resolver el problema se debe conocer el número de
desechables y sabe que la producción diaria es de 744 pañales y        cuotas si desea pagarlo totalmente a crédito o conocer el número de
que en cada caja donde se empacan para la venta caben 12               cuotas y el valor total del televisor si se da una cuota inicial de
pañales. ¿Cuántas cajas debe conseguir Juan Felipe para empacar        600.000 pesos.
los pañales fabricados en una semana?
OPCIÓN 2:
Juan Felipe es jefe de bodega en una fabrica de pañales                Precisar los resultados esperados
desechables y una de las tares del día consiste en llamar al           (meta y submetas)
proveedor de los empaques y ordenarle la cantidad suficiente de        Para establecer los resultados que se esperan (meta) es
cajas para empacar los pañales fabricados en la semana próxima. El     necesario identificar la información relevante, ignorar los
jefe de producción le informó ayer a Juan Felipe que la producción     detalles sin importancia, entender los elementos del
diaria será de 744 pañales y en cada caja cabe una docena de ellos.    problema y activar el esquema correcto que permita
¿Qué debe hacer Felipe?                                                comprenderlo en su totalidad (Woolfolk, 1999).

La Opción 1 plantea directamente el problema que el estudiante         Determinar con claridad cuál es el resultado final
debe resolver. Mientras que la Opción 2 plantea una situación y la     (producto) que debe devolver el programa es algo que
pregunta es ¿Qué debe hacer Felipe?. La Opción 2 demanda al            ayuda a establecer la meta. Es necesario analizar qué
estudiante leer muy bien el texto para comprender la situación y así   resultados se solicitan y qué formato deben tener esos
poder formular el problema de Juan Felipe. Es algo similar a           resultados (impresos, en pantalla, diagramación, orden,
preguntar al estudiante “cuánto es 7 menos 3” versus preguntar “sí     etc). El estudiante debe preguntarse:
Rosa tiene 7 naranjas y Julio tiene 3, cuántas naranjas de más tiene   • ¿Qué información me solicitan?
Rosa”.                                                                 • ¿Qué formato debe tener esta información?
La comprensión lingüística del problema (entender el
significado de cada enunciado) es muy importante. El
                                                                       Identificar datos disponibles
estudiante debe realizar una lectura previa del problema
                                                                       (estado inicial)
con el fin de obtener una visión general de lo que se le
                                                                       Otro aspecto muy importante en la etapa de análisis del
pide y una segunda lectura para poder responder
                                                                       problema consiste en determinar cuál es la información
preguntas como:
                                                                       disponible. El estudiante debe preguntarse:
• ¿Puedo definir mejor el problema?
                                                                       • ¿Qué información es importante?
• ¿Qué palabras del problema me son desconocidas?
                                                                       • ¿Qué información no es relevante?
• ¿Cuáles son las palabras clave del problema?
                                                                       • ¿Cuáles son los datos de entrada? (conocidos)
• ¿He resuelto antes algún problema similar?
                                                                       • ¿Cuál es la incógnita?
• ¿Qué información es importante?
                                                                       • ¿Qué información me falta para resolver el
• ¿Qué información puedo omitir?
                                                                          problema? (datos desconocidos)
Pág.12 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
• ¿Puedo agrupar los datos en categorías?
                                                                       Establecer procesos (operaciones)
Otro aspecto importante del estado inicial hace                        Consiste en determinar los procesos que permiten llegar
referencia al nivel de conocimiento que el estudiante                  a los resultados esperados a partir de los datos
posee en el ámbito del problema que está tratando de                   disponibles. El estudiante debe preguntarse:
resolver. Es conveniente que el estudiante se pregunte a               • ¿Qué procesos necesito?
sí mismo:                                                              • ¿Qué fórmulas debo emplear?
• ¿Qué conocimientos tengo en el área o áreas del                      • ¿Cómo afectan las condiciones a los procesos?
   problema?                                                           • ¿Qué debo hacer?
• ¿Son suficientes esos conocimientos?                                 • ¿Cuál es el orden de lo que debo hacer?
• ¿Dónde puedo obtener el conocimiento que necesito
   para resolver el problema?                                          En la medida de lo posible, es aconsejable dividir el
• ¿Mis compañeros de estudio me pueden ayudar a                        problema original en otros más pequeños y fáciles de
   clarificar mis dudas?                                               solucionar (submetas), hasta que los pasos para
• ¿Qué expertos en el tema puedo consultar?                            alcanzarlas se puedan determinar con bastante
                                                                       precisión (módulos). Esto es lo que en programación se
En el ámbito de las matemáticas, se conoce como                        denomina diseño descendente o top-down (Joyanes,
conocimiento condicional a aquel que activan los                       2001).
estudiantes cuando aplican procedimientos matemáticos
concretos de manera intencional y consciente a ciertas                 El diseño descendente se utiliza en la programación
situaciones. “El conocimiento condicional proporciona al               estructurada de computadores debido a que facilita:
alumno un sistema de valoración sobre la extensión y                   • La comprensión del problema
las limitaciones de su saber (qué sabe sobre el tema, su               • Las modificaciones en los módulos
capacidad de memoria, etc), a la vez que examina la                    • La verificación de la solución
naturaleza de la demanda del profesor y su objetivo
último, y evalúa variables externas como pueden ser el                 Al realizar divisiones sucesivas del problema en otros
tiempo que tiene o con quién realiza la tarea” (Orubia &               más pequeños y manejables (módulos), hay que tener
Rochera & Barberà, 2001).                                              cuidado para no perder de vista la comprensión de este
                                                                       como un todo. El estudiante, luego de dividir el problema
EJEMPLO                                                                original en submetas (módulos), debe integrar cada
Esteban está ahorrando para comprar una patineta que vale 55.000       parte de tal forma que le permita comprender el
pesos. Su papá le ha dado una mesada de 5.000 pesos durante 7          problema como un todo (Woolfolk, 1999).
semanas. Por lavar el auto de su tío tres veces recibió 8.000 pesos.
Su hermano ganó 10.000 pesos por hacer los mandados de su              Igualmente hay que tener cuidado cuando se utiliza este
mamá y 4.000 por sacar a pasear el perro. ¿Esteban tiene ahorrado      enfoque para resolver problemas complejos o extensos,
el dinero suficiente para comprar la patineta o aún le falta?          en cuyo caso resulta más aconsejable utilizar una
(Adaptado de Casasbuenas & Cifuentes (1998b), página 23).              metodología orientada a objetos. Especialmente, cuando
R/.                                                                    profesores universitarios manifiestan su preocupación
Formular el problema: Ya se encuentra claramente planteado.            por el aprendizaje de malas prácticas de programación
Resultados esperados: Si o no tiene Esteban ahorrado el dinero         en el colegio. Hay casos en los cuales algunos
suficiente para comprar una patineta que vale 55.000 pesos.            estudiantes no han podido cambiar su forma de pensar
Datos disponibles: Los ingresos de Esteban: 5.000 pesos por 7          “estructurada” por otra orientada a objetos, la cual hace
semanas + 8.000 pesos. Los 10.000 y 4.000 pesos qué ganó el            parte de los programas universitarios modernos en la
hermano de Esteban son irrelevantes para la solución de este           carrera de Ingeniería de Sistemas. Es aconsejable que
problema y se pueden omitir.                                           los ejemplos y actividades planteados a los estudiantes
                                                                       contengan solo un problema cuya solución sea muy
                                                                       corta (no necesariamente sencillo de resolver). De esta
Determinar las restricciones                                           forma ellos podrán enfocarse en aplicar completamente
Resulta fundamental que los estudiantes determinen                     la metodología propuesta para analizar problemas
aquello que está permitido o prohibido hacer y/o utilizar              (formular el problema, especificar los resultados,
para llegar a una solución. En este punto se deben                     identificar la información disponible, determinar las
exponer las necesidades y restricciones (no una                        restricciones y definir los procesos) sin perderse en el
propuesta de solución). El estudiante debe preguntarse:                laberinto de un problema demasiado complejo.
• ¿Qué condiciones me plantea el problema?
• ¿Qué está prohibido hacer y/o utilizar?                              Las operaciones para llegar a los resultados esperados
• ¿Qué está permitido hacer y/o utilizar?                              se implementan en Logo mediante procedimientos. Por
• ¿Cuáles datos puedo considerar fijos (constantes)                    ejemplo, si se desea producir un software para trabajar
   para simplificar el problema?                                       con figuras geométricas de diferentes tipos, el triángulo
• ¿Cuáles datos son variables?                                         rectángulo será uno de los objetos a tener en cuenta y
• ¿Cuáles datos debo calcular?                                         este a su vez, debe prestar los siguientes servicios
                                                                       (Jiménez, 2002):
Pág.13 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
1.   Un procedimiento para leer los datos de entrada.              Cinco pasos que deben tener en cuenta los estudiantes para resolver
       2.   Un procedimiento para calcular el área.                       problemas matemáticos (Rodríguez, 1995):
       3.   Un procedimiento para calcular la hipotenusa.                      1. Leer con mucho cuidado el problema hasta entenderlo.
       4.   Un procedimiento para calcular el perímetro.                       2. Buscar la(s) pregunta(s).
       5.   Un procedimiento para mostrar los resultados.                      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é?
                                                                          • ¿Qué debes hacer luego? ¿Para qué?
                                                                          • ¿Cuál debe ser la respuesta (estimada) del problema?


                                                                          ACTIVIDAD
                                                                          Basándose en la metodología expuesta en esta unidad, dividir a los
                                                                          estudiantes en grupos y distribuir entre ellos la tarea de análisis
                                                                          detallado (“Formular el problema”, “Resultados esperados”, “Datos
      Ilustración 1-6: Descripción de los servicios que debe estar en     disponibles”, “Determinar las restricciones” y “Procesos necesarios”)
            capacidad de prestar el objeto “triángulo rectángulo”.        de los siguientes problemas (uno por grupo):
                                                                          1. Hallar el área de un cuadrado cuyo lado mide 5 cm.
EJEMPLO                                                                   2. Hallar uno de los lados de un rectángulo cuya área es de 15 cm2
De acuerdo con la metodología descrita, analizar el problema de               y uno de sus lados mide 3 cm.
hallar el área de un triángulo rectángulo cuya Base mide 3 cm, la         3. Hallar el área y el perímetro de un círculo cuyo radio mide 2 cm.
Altura 4 cm y la Hipotenusa 5 cm.                                         4. Hallar el área de un pentágono regular de 6 cm de lado y con 4
R/                                                                            cm de apotema.
Formular el problema: Ya se encuentra claramente planteado.
Resultados esperados: El área de un triángulo rectángulo.                 Dato Curioso
Datos disponibles: Base, Altura, Hipotenusa, tipo de triángulo. La        Deep Blue de IBM fue el primer computador que superó a un
incógnita es el área y todos los valores son constantes. El valor de la   campeón mundial de ajedrez cuando le ganó una partida a Gary
hipotenusa se puede omitir. El estudiante debe preguntarse si sus         Kasparov en febrero de 1996. La victoria de Deep Blue formaba
conocimientos actuales de matemáticas le permiten resolver este           parte de una serie de seis partidas, que Kasparov terminó ganando
problema; de no ser así, debe plantear una estrategia para obtener        4-2. En 1997, una versión nueva y mejorada de Deep Blue
los conocimientos requeridos.                                             contraatacó en una segunda serie. Esta vez, el computador, capaz
Determinar las restricciones: Utilizar las medidas dadas.                 de planear una vertiginosa cantidad de 200 millones de posiciones
Procesos necesarios: Guardar en dos variables los valores de Base         por segundo, ganó la serie a Kasparov por 3.5 a 2.5 puntos. (Libro
y Altura; Guardar en una constante el divisor 2; aplicar la fórmula       Gunness de los Records 2002)
área=base*altura/2; comunicar el resultado (área).

ACTIVIDAD
La mayoría de las metodologías propuestas para la solución de
problemas matemáticos se aproxima al ciclo de programación de
computadores. Se puede iniciar planteando a los estudiantes
problemas matemáticos como los siguientes, encontrados en
Casasbuenas & Cifuentes (1998b):
 1. Luisa quiere invertir sus ahorros en la compra de discos
      compactos de moda. Si tiene $68.000, ¿Cuántos discos
      comprará?

Analizar el problema:
• ¿Qué tienes en cuenta cuando vas a comprar un disco?
• ¿Tienes información suficiente para resolver el problema de
    Luisa?                                                                     Ilustración 1-7: Fases segunda, tercera y cuarta, del ciclo de
                                                                                                       programación.
• ¿Qué dato averiguarías para saber cuántos discos puede
    comprar Luisa?
Plantear ahora este problema utilizando la metodología de “Formular
el problema”, “Resultados esperados”, “Datos disponibles”,                Diseñar el algoritmo (trazar un plan)
“Determinar las restricciones” y “Procesos necesarios”.                   Este tema se tratará en profundidad en las unidades 2 y
                                                                          3 de esta guía. Por el momento, podemos resumir que
TIP                                                                       únicamente hasta cuando se ha realizado un análisis a

Pág.14 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
fondo del problema (utilizando alguna metodología), se                    representado gráficamente se pasa a la etapa de
puede proceder a elaborar el algoritmo (diagrama de                       traducción a un lenguaje de programación determinado
flujo). Este consiste en la representación gráfica,                       (en nuestro caso será Logo). Cada lenguaje posee sus
mediante símbolos geométricos, de la secuencia lógica                     propias reglas gramaticales, por lo tanto es fundamental
de las instrucciones (plan) que posteriormente serán                      que los estudiantes conozcan de antemano la sintaxis
traducidas a un lenguaje de programación, como Logo,                      de los comandos que deben utilizar para resolver el
para ejecutarlas y probarlas en un computador.                            problema. A mayor dominio del lenguaje de
                                                                          programación, mayor posibilidad de llegar rápidamente a
EJEMPLO                                                                   una solución satisfactoria. A esta fase de traducción se
Diseñar un algoritmo (seudocódigo y diagrama de flujo) para hallar el     le conoce comúnmente como codificación.
área de un triángulo rectángulo cuya Base mide 3 cm, la Altura 4 cm
y la Hipotenusa 5 cm.                                                     EJEMPLO
R/                                                                        A partir del ejemplo anterior, escribir un procedimiento en Logo que
                       ANÁLISIS DEL PROBLEMA                              se llame triángulo para hallar el área de un triángulo rectángulo cuya
Formular el problema: Ya se encuentra claramente planteado.               Base mide 3 cm, la Altura 4 cm y la Hipotenusa 5 cm.
Resultados esperados: El área de un triángulo rectángulo.                 R/
Datos disponibles: Base, Altura, Hipotenusa, tipo de triángulo. La                                       MicroMundos
incógnita es el área y todos los valores son constantes. El valor de la             para triángulo
hipotenusa se puede omitir. El estudiante debe preguntarse si sus                      local "div
conocimientos actuales de matemáticas le permiten resolver este                        local "base
problema; de no ser así, debe plantear una estrategia para obtener                     local "altura
los conocimientos requeridos.                                                          local "área
Determinar las restricciones: Utilizar las medidas dadas.                              da "div 2
Procesos necesarios: Guardar en dos variables (BASE y ALTURA)                          da "base 3
los valores de Base y Altura; Guardar en una constante (DIV) el                        da "altura 4
divisor 2; aplicar la fórmula BASE*ALTURA/DIV y guardar el                             da "área :base * :altura / :div
resultado en la variable AREA; comunicar el resultado (AREA).                          muestra :área
                                                                                    fin
                 ALGORITMO EN SEUDOCÓDIGO
Paso 1: Inicio                                                                                           Scratch
Paso 2: Asignar el número 2 a la constante "div"
Paso 3: Asignar el número 3 a la constante “base”
Paso 4: Asignar el número 4 a la constante “altura”
Paso 5: Guardar en la variable "área" el resultado de base*altura/div
Paso 6: Imprimir el valor de la variable "área"
Paso 7: Final




                                                                          Al escribir en el centro de mando de MicroMundos la palabra
                                                                          triángulo se debe obtener como resultado 6. En el caso de Scratch,
                                                                          hacer clic en la bandera verde y se debe obtener el mismo resultado.


                                                                          Depurar el programa (revisar)
                                                                          Este tema se tratará en profundidad en la Unidad 4 de
                                                                          esta guía. Después de traducir el algoritmo en un
                                                                          lenguaje de programación como Logo, el programa
                                                                          resultante debe ser probado y validados los resultados.
              ALGORITMO EN DIAGRAMA DE FLUJO                              A este proceso se le conoce como depuración. Depurar
                                                                          programas contribuye a mejorar la capacidad en los
Ilustración 1-8: Diagrama de Flujo para hallar el área de un triángulo    estudiantes para resolver problemas; la depuración
                            rectángulo.                                   basada en la retroalimentación es una habilidad útil para
                                                                          toda la vida (Stager, 2003).

                                                                          Quienes han escrito alguna vez un programa de
Traducir el algoritmo (ejecutar el plan)                                  computador, saben de la dificultad que representa
Este tema se tratará en profundidad en las Unidades 3 y                   elaborar programas perfectos en el primer intento,
4 de esta guía. Una vez que el algoritmo está diseñado y
Pág.15 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
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:




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




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

Si se quiere llegar a un planteamiento, para Educación                 final llega a ser aceptada por un grupo cultural
Básica, que contribuya efectivamente a desarrollar la                  particular”.
creatividad programando computadores, es conveniente
como primera medida, llegar a un acuerdo sobre qué es                  En los Estándares Nacionales Estadounidenses de TIC
la creatividad, pues varios autores la definen de manera               para Estudiantes (NETS’S), reformulados por ISTE, el
diferente.                                                             primer grupo corresponde a Creatividad e Innovación.
                                                                       Para ISTE, los estudiantes al finalizar sus Educación
De acuerdo con el Diccionario de la Real Academia                      Media deben demostrar pensamiento creativo, construir
Española (RAE), creatividad es la facultad de crear o la               conocimiento y desarrollar productos y procesos
capacidad de creación. Por su parte, la enciclopedia                   innovadores utilizando las TIC.
Microsoft Encarta define la Creatividad como la
capacidad de inventar algo nuevo, de relacionar algo                   Según ISTE (2007), los estudiantes deben estar en
conocido de forma innovadora o de apartarse de los                     capacidad de aplicar su conocimiento previo para
esquemas de pensamiento y conducta habituales.                         generar nuevas ideas, productos o procesos; crear
Según Wikipedia, la creatividad es un proceso mental y                 trabajos originales como medios de expresión personal
social que implica generar nuevas ideas o conceptos, o                 o grupal; usar modelos y simulaciones para explorar
nuevas asociaciones entre ideas y conceptos conocidos,                 sistemas y temas complejos; e identificar tendencias y
lo que habitualmente produce soluciones originales. Las                prever posibilidades.
definiciones anteriores se refieren al acto de inventar
cualquier cosa nueva (Ingenio), a la capacidad de                      Según el Comité Consultivo Nacional para la Educación
encontrar soluciones originales y a la voluntad de                     Creativa y Cultural de Inglaterra (NACCCE, por su sigla
modificar o transformar el mundo.                                      en Inglés), la creatividad se define como la actividad
                                                                       imaginativa que tiene como objetivo producir resultados
Ana Craft (2001) anota que las definiciones de                         tanto originales como generadores de valor (Robinson,
creatividad más aceptadas en los últimos 50 años son                   1999).
aquellas que unen creatividad e imaginación. Este
enfoque sugiere que cada persona tiene potencial                       Para el Consorcio de Habilidades de Aprendizaje para el
creativo ya que este es un aspecto fundamental de la                   Siglo XXI, las habilidades de aprendizaje e innovación
naturaleza humana. Ella se refiere a la “creatividad con c             se están reconociendo como aquellas que separan a los
minúscula” como la habilidad para hacer frente, de                     estudiantes que están preparados para los ambientes de
manera efectiva, a los retos y cambios que nos plantea                 vida y de trabajo del Siglo XXI, cada vez más complejos,
la vida en el siglo XXI. Esta es la creatividad que sirve              de los que no lo están. Hacer énfasis en creatividad,
para afrontar tareas cotidianas (elaborar una nueva                    pensamiento crítico, comunicación y colaboración es
receta o un arreglo floral, escribir una carta o poema,                esencial en la preparación de los estudiantes para el
enseñar un nuevo truco a alguien, etc). También entra                  futuro. Entre las competencias de creatividad e
en juego cuando se deben superar obstáculos tales                      innovación que propone el Consorcio están: demostrar
como      desempleo      y   pobreza      o    aprovechar              originalidad e inventiva en el trabajo; desarrollar,
oportunidades. Esta “creatividad” se contrapone a la                   implementar y comunicar nuevas ideas a otros; tener
“Creatividad con C mayúscula” propuesta por el                         apertura y responder a perspectivas nuevas y diversas;
psiquiatra Gene Cohen (citado por Banaji & Burn, 2006),                y actuar con ideas creativas para realizar una
que caracteriza los logros extraordinarios de personas                 contribución tangible y útil en el campo en el que ocurre
poco corrientes como artistas renombrados, científicos e               la innovación.
inventores.
                                                                       Por su parte, el Consorcio para la Creatividad propone
Stenberg (1997), autor reconocido en este campo,                       que ésta se refiere a mucho más que “hacer arte”. La
argumenta que la creatividad no es solo una capacidad,                 creatividad tiene que ver con el desarrollo de la
sino un proceso en el que intervienen tres tipos de                    capacidad para: cuestionar, hacer conexiones, innovar,
inteligencia: creativa (ir más allá de lo dado y engendrar             resolver problemas y reflexionar críticamente; todas
ideas nuevas e interesantes), analítica (analizar y                    éstas son habilidades altamente valoradas en el mundo
evaluar ideas, resolver problemas y tomar decisiones) y                laboral actual; y agregan, “el aprendizaje creativo
práctica (traducir teorías abstractas en realizaciones                 empodera a los jóvenes a imaginar un mundo diferente y
efectivas). Estas dos últimas inteligencias aportan la                 les da confianza y motivación para llevar a cabo lo que
posibilidad de diferenciar entre ideas innovadoras                     imaginan” (Creative Partnerships, 2006).
buenas y malas y, además, relacionarlas con la vida
cotidiana (López, 2000). Por su parte, Gardner (1993)                  Son muchas las definiciones que intentan explicar el
define a la persona creativa como alguien que                          concepto de creatividad, aquí solo se exponen algunas
“regularmente resuelve problemas, genera productos o                   de ellas a fin de dar una perspectiva amplia a los
define nuevos cuestionamientos en un dominio, de                       docentes en este campo. El desarrollo de pensamiento
manera que en principio se considera nueva pero que al                 algorítmico que promueve esta guía, mediante el

Pág.17 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
enfoque de solución de problemas predefinidos, se                      realizar observaciones, hacer abstracción en diversos
complementa con el desarrollo de pensamiento creativo.                 temas, realizar ejercicios de dibujo y utilizar metáforas y
Pues en el mundo actual, en el que lo único permanente                 analogías.
es el cambio, además de aprender a resolver tipos
específicos de problemas, los estudiantes deben                        Sin embargo, puede sonar ambicioso implementar toda
aprender a improvisar creativamente cuando se                          una metodología para desarrollar la creatividad en un
encuentren con situaciones inesperadas y a explorar                    curso de Algoritmos y Programación. Por esto y para
alternativas de solución variadas (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
“genialidad” (C mayúscula).                                            predefinidos que para resolverlos pueden hacer uso de
                                                                       metodologías como la propuesta por Polya. Es
Respecto al genio creativo, el Consorcio para la                       precisamente esta metodología la que se ha utilizado
Creatividad considera que éste es un discurso                          para resolver problemas matemáticos; sin embargo,
posromántico apoyado por quienes han visto la                          algunos docentes han manifestado preocupación ya que
creatividad únicamente como una cualidad especial de                   si bien, la metodología ayuda a que los estudiantes
pocas personas, generalmente artistas, tales como                      estructuren su pensamiento, muchos de ellos se
escritores, músicos, pintores, etc (Banaji & Burn, 2006).              encasillan en ella y les cuesta trabajo encontrar
Los que explican la creatividad desde una perspectiva                  soluciones alternativas.
basada en características de la personalidad afirman
que las personas creativas tienen rasgos comunes:                      En este sentido, entornos de programación como
buen humor; confianza en sí mismos; flexibilidad y                     Scratch y MicroMundos, comprometen a los estudiantes
adaptabilidad;    alta    capacidad    de     asociación;              en la búsqueda de soluciones innovadoras a problemas
sensibilidad; curiosidad intelectual; percepción y                     inesperados; no se trata solamente de aprender a
observación agudas; iniciativa para tomar riesgos;                     solucionar problemas de manera predefinida, sino de
imaginación;      expresividad;     capacidad      crítica;            estar preparado para generar nuevas soluciones a
entusiasmo; y, tenacidad (López, 2000). Por el contrario,              medida que los problemas se presentan (Resnick,
quienes no son creativos presentan recurrentemente                     2007).
algunas de los siguientes rasgos: tienden a
especializarse en ciertos temas; son extremadamente                    Por su parte, formular alternativas, se basa en el primer
racionales; les falta confianza en si mismos; no tienen                principio básico del Pensamiento Lateral propuesto por
motivación; su capacidad para escuchar es reducida;                    De Bono (1970): “cualquier modo de valorar una
respetan la autoridad en exceso; no son buenos                         situación es sólo uno de los muchos modos posibles de
observadores; y, tienen deficiente pensamiento crítico.                valorarla”. La búsqueda de alternativas a una situación o
                                                                       problema parece un proceso típico del pensamiento
Sin embargo, buena parte de los autores que han                        lógico; sin embargo, desde el punto de vista de la
trabajado en profundidad el tema de la creatividad, entre              creatividad no se busca la mejor alternativa sino la
ellos Resnick, De Bono y Johansson, no solo                            formulación del mayor número posible de alternativas.
argumentan que si es posible desarrollarla, sino que                   Por lo tanto, es conveniente fijar de entrada y poner por
aportan propuestas concretas para trabajarla en el aula                escrito, el número de alternativas que los estudiantes
de clase. Además, plantean que las siguientes                          deben plantear. Desde la lógica, por lo general la
habilidades cognitivas, susceptibles de desarrollar, están             búsqueda se interrumpe cuando se halla una alternativa
presentes en las personas consideradas como creativas:                 que parece satisfactoria.
se plantean nuevos objetivos; exploran un mayor
número de alternativas; evalúan, durante el transcurso                 Como aprestamiento a la realización de proyectos que
del proceso de solución, los objetivos, las alternativas y             busquen deliberadamente desarrollar la creatividad, es
las tareas; se aseguran de entender a cabalidad los                    deseable que los estudiantes realicen actividades tales
problemas; son observadores; usan la abstracción; usan                 como: hacer asociación de ideas sobre temas ya vistos
metáforas y analogías; desglosan la tarea en subtareas                 en clase, elaborar listados de atributos de objetos
y desarrollan productos intermedios; y, usan estrategias               cotidianos, buscar al menos 30 usos para cada uno de
metacognitivas (López, 2000).                                          los objetos cotidianos propuestos, Jugar con Torres de
                                                                       Hanoi de tres y cuatro discos y, elaborar figuras con el
Según De Bono (1970), es conveniente empezar a                         Tangram, entre otras. Estas actividades permiten
enseñar, a partir de los 7 años, técnicas de pensamiento               evidenciar el estilo de pensamiento predominante de
que faciliten el desarrollo de la creatividad. Entre las que           cada estudiante. Quienes piensan convergentemente
se pueden implementar en cursos de diferentes                          tenderán a abordar los problemas de forma lógica,
asignaturas tenemos: plantear problemas inesperados,                   ordenada y a establecer relaciones comunes; quienes
formular alternativas, proponer e implementar diseños,                 piensan divergentemente, tenderán a hacer juicios
Pág.18 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
ilógicos, innovadores y poco comunes.                                   cantidad de alternativas de solución que generen los
                                                                        estudiantes a un problema planteado, que las
                                                                        respuestas correctas. Por tanto, debe evitarse a toda
Espiral del pensamiento creativo                                        costa, la emisión de juicios de valor negativos ante
Con el fin de promover el desarrollo de la creatividad,                 cualquier alternativa, por ilógica que parezca.
esta Guía propone utilizar la Espiral del Pensamiento
Creativo propuesta por Mitchel Resnick (2007). En esta,                 Adicionalmente, en las diferentes fases de la Espiral, se
los estudiantes imaginan lo que quieren hacer; crean un                 debe aprovechar cualquier oportunidad para plantear
proyecto basado en sus ideas; juegan con sus ideas y                    problemas inesperados y para solicitar a los estudiantes
creaciones; comparten sus ideas y creaciones con otros                  que formulen alternativas de solución a cada problema o
y reflexionan sobre sus experiencias; lo anterior los lleva             situación que se presente. En este mismo sentido, la
a imaginar nuevas ideas y nuevos proyectos. La espiral                  práctica indica que en reiteradas ocasiones los
genera un proceso indefinido de mejoramiento continuo.                  estudiantes plantean a sus docentes situaciones que
                                                                        ellos desean desarrollar en sus proyectos. Dichas
                                                                        situaciones se convierten en problemas inesperados que
                                                                        los docentes deben resolver. Estas situaciones las
                                                                        pueden aprovechar los docentes para plantearlas a toda
                                                                        la clase como problemas inesperados.


                                                                        EJEMPLO

                                                                        Proyecto: La cadena alimentaria

                                                                        Estándares MEN que se cubren (Colombia): Explico la dinámica
                                                                        de un ecosistema teniendo en cuenta las necesidades de energía y
                                                                        nutrientes de los seres vivos (cadena alimentaria).

                                                                        Descripción: En este proyecto los estudiantes deben representar el
                                                                        comportamiento de varios seres vivos en su respectivo ecosistema,
                                                                        teniendo en cuenta tanto necesidades como cantidades disponibles
Ilustración 1-9: Espiral del Pensamiento Creativo diseñada por el Dr.   de energía y nutrientes (cadena alimentaria). Para ello, deben
                             Mitchel Resnick                            elaborar una simulación, en MicroMundos o en Scratch, de una
                                                                        cadena alimentaria teniendo en cuenta seres productores,
En un comienzo, este proceso lo debe planear y dirigir el               hervivoros, carnívoros y omnivoros.
docente. Sin embargo, a medida que los estudiantes lo
interiorizan, aprenden a recorrerla de manera                           Fases del proyecto:
independiente para desarrollar sus propias ideas,                       1. Los estudiantes deben imaginar un ecosistema que contenga
ponerlas a prueba, desafiar límites y fronteras,                            por lo menos cuatro seres vivos. Luego deben dibujar o importar
experimentar con alternativas, recibir retroalimentación                    los seres vivios que imaginaron. Además, deben dibujar el
de otros y generar nuevas ideas con base en sus                             escenario que representa el ecosistema.
experiencias (Resnick, 2007).                                               En este punto, el docente debe estimular la reflexión para que
                                                                            ellos verifiquen que el ecosistema que dibujaron corresponde
Es muy importante que al diseñar las diferentes fases de                    con los seres vivientes que en la simulación incluyeron en este.
un proyecto, en el cual los estudiantes utilizarán un                       Un problema inesperado puede plantearse mediante la pregunta
ambiente     de   programación     como     Scratch    o                    ¿todos los seres vivos que representaste viven en ese
MicroMundos, los docentes tengan en cuenta los                              ecosistema? Si la respuesta es negativa, deben plantear por
elementos de la espiral de la creatividad. Por ejemplo,                     escrito al menos tres alternativas de solución (por ejemplo:
se deben incluir en el proyecto espacios para compartir                     cambiar el ecosistema, cambiar alguno de los seres vivos,
el trabajo realizado, para escuchar y valorar la                            cambiarlo todo, etc).
retroalimentación del grupo a cada trabajo individual y                     Además, cada ser vivo debe tener un tamaño proporcional en
para reflexionar sobre las posibles mejoras que se                          relación a los otros seres y elementos del ecosistema.
pueden realizar con base en la retroalimentación                            En caso de ser necesario, se debe destinar un lapso de tiempo
recibida.                                                                   de la clase para investigar ,en Internet o en la Biblioteca
                                                                            Escolar, qué seres vivos habitan en el ecosistema que
Para que la Espiral del Pensamiento Creativo funcione,                      dibujaron.
los docentes deben promover un ambiente en el que se                    2. Esta fase inicia con otro problema inesperado: “La tarea quedó
permita imaginar, transformar, idealizar, desestructurar y                  mal planteada y hay que corregirla, de los cuatro seres vivos
reestructurar. Un ambiente donde se pueda comunicar,                        que se crearon en la fase anterior, debe haber por lo menos un
donde haya tolerancia para las reacciones espontáneas                       ser vivo de cada tipo: productor, herbívoro, carnívoro y
(López, 2000). Los docentes deben propiciar un                              omnivoro”.
ambiente de confianza, en el que sea más importante la                      Los estudiantes deben investigar qué seres vivos de cada tipo
Pág.19 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
habitan en el ecosistema que dibujaron. Luego, dibujar o             cierta región de la pantalla, se debe hacer un control
     importar los seres vivos correctos para que se cumpla la             permanente (dentro de un por siempre) con el comando
     condición planteada en la tarea rectificada. No es necesario que     “posición y de objeto1” ó “posición x de objeto 1”. Si el
     eliminen los seres vivos que habían creado en la fase 1,             ser supera ese valor, entonces se lo desplaza en una
     siempre y cuando correspondan al ecosistema.                         posición menor en el eje x o y, y se gira 45 grados.
3.   A continuación, deben programar el desplazamiento de los
     seres vivos por todo el espacio disponible y de manera aleatoria     En la fase 6 es recomendable crear cada uno de los
     (se pueden utilizar las instrucciones “rebotar si está tocando un    seres vivos (ejemplo, el conejo) y hacerle toda la
     borde” y “número al azar entre 1 y 15 grados” como parámetro         programación para que se comporte de acuerdo a lo
     de la instrucción girar).                                            esperado. Una vez funcione correctamente la
     Como problema inesperado pedir que se restrinja el movimiento        programación, se copia varias veces el ser vivo
     de manera que se aproxime al comportamiento real de cada ser         (ejemplo, el conejo) y se ubica en posiciones diferentes
     vivo. Por ejemplo, si el fondo tiene tierra y firmamento, entonces   del escenario. Además, cada copia del ser vivo debe
     un ser vivo que no vuela, no se puede mover en el área de la         aparecer en momentos diferentes para simular la tasa
     pantalla que representa el firmamento. Agregar variables para        de reproducción.
     controlar la velocidad a la que se desplaza cada ser vivo.
     Algunos, como las plantas, tendrán velocidad 0.                      Por último, bien sea que los estudiantes utilicen el
4.   Los estudiantes comparten el trabajo realizado con el resto de la    entorno de programación en Ciencias Naturales para
     clase y reciben retroalimentación tanto de sus compañeros,           comunicar resultados obtenidos en procesos de
     como del docente.                                                    indagación y/o experimentación o para elaborar
5.   Atender la retroalimentación suministrada. Hacer la                  simulaciones de diversos fenómenos naturales, los
     programación correspondiente para que cuando a un ser vivo lo        docentes deben promover comportamientos personales
     toque otro al que le sirve de alimento, el primero desaparezca       y sociales fundamentales para el funcionamiento de la
     (como si se lo hubiera comido).                                      Espiral del Pensamiento Creativo, tales como:
6.   El problema inesperado ahora es que debe programarse la              • Escuchar activamente a compañeros y compañeras.
     aparición de varios seres vivos iguales, ubicados en diferentes      • Reconocer puntos de vista diferentes y compararlos
     posiciones de la pantalla (por ejemplo, si uno de los seres vivos        con los propios.
     de la animación es un conejo, copiar entonces el objeto conejo,      • Reconocer y aceptar el escepticismo de los demás
     al menos tres veces, pues en un ecosistema rara vez se                   compañeros ante la información que se presenta.
     encuentra un solo animal de cada especie). Solicitar a los           • Cumplir con las funciones asignadas cuando se
     estudiantes, al menos dos alternativas, para realizar esta tarea.        trabaja en grupo.
     Las apariciones deben hacerse de acuerdo a una tasa de               • Respetar y cuidar los seres vivos y objetos
     reproducción establecida para cada uno de los seres vivos. Por           presentes en el entorno.
     ejemplo, se reproducen más rápidamente los conejos que los
     zorros.
     Se puede destinar un tiempo de la clase para investigar la tasa
     de reproducción de cada uno de los seres vivos que se incluyen
     en la animación.
7.   Compartir con el resto de la clase el trabajo realizado y recibir
     retroalimentación de los compañeros.
8.   Realizar los últimos ajustes al funcionamiento de la simulación y
     agregar controles para manipular las tasas de reproducción y/o
     la velocidad de desplazamiento para cada ser vivo.
9.   Socializar con el resto de la clase el trabajo finalizado.


En este ejemplo hay que prestar atención a lo siguiente:

En la fase 3, se debe crear una variable por cada ser
vivo, que controle la velocidad a la cual este se va a
mover (los que no se desplazan, como las plantas,
deben inicializarse con valor 0). Por lo regular, esta
condición se implementa con el comando “esperar x
segundos”; sin embargo, nótese que si el valor de la
variable aumenta, en lugar de aumentar la velocidad, lo                   .
que hace es disminuirla ya que el tiempo de espera será
mayor. Para limitar el desplazamiento de un ser vivo a




Pág.20 - 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?

                                                                                          ALGORITMO EN SEUDOCÓDIGO
                                                                       Paso 1: Inicio.
                                                                       Paso 2: Leer los dos números (“a” y “b”). Avanzar al paso 3.
                                                                       Paso 3: Comparar “a” y “b” para determinar cuál es mayor. Avanzar
                                                                       al paso 4.
                                                                       Paso 4: Si “a” y “b” son iguales, entonces ambos son el resultado
                                                                       esperado y termina el algoritmo. En caso contrario, avanzar al paso
                                                                       5.
                                                                       Paso 5: Si “a” es menor que “b”, se deben intercambiar sus valores.
                                                                       Avanzar al paso 6; si “a” no es menor que “b”, avanzar al paso 6.
                                                                       Paso 6: realizar la operación “a” menos “b”, asignar el valor de “b” a
                                                                       “a” y asignar el valor de la resta a “b”. Ir al paso 3.

      Ilustración 2-1: Segunda fase del ciclo de programación.         Investigaciones realizadas en Educación Básica (en
                                                                       ambientes constructivistas) recomiendan incluir la
Luego de analizar detalladamente el problema hasta                     solución de problemas en el currículo de matemáticas
entenderlo completamente, se procede a diseñar un                      de forma que provea oportunidades a los estudiantes
algoritmo (trazar un plan) que lo resuelva por medio de                para crear sus propios algoritmos y generalizarlos a un
pasos sucesivos y organizados en secuencia lógica. El                  conjunto específico de aplicaciones (Wilson, Fernández
concepto intuitivo de algoritmo (procedimientos y reglas)              & Hadaway, 1993). Los estudiantes deben reflexionar
se puede encontrar en procesos naturales de los cuales                 sobre sus habilidades de planificación y sobre cómo
muchas veces no se es conciente. Por ejemplo, el                       pueden utilizar esas habilidades en diferentes contextos.
proceso digestivo es un concepto intuitivo de algoritmo                Por otra parte, en un estudio sobre Logo (Clements &
con el que se convive a diario sin que haga falta un                   Meredith, 1992), se concluye que cuando los maestros
definición “matemática” del mismo. Tener claro el                      enfatizaron en la elaboración de un plan para desarrollar
proceso digestivo, no implica que los alimentos                        un procedimiento matemático (este incluía el uso de
consumidos nutran más. La familiaridad de lo cotidiano                 estrategias como dividir conceptos grandes en otros
impide a las personas ver muchos algoritmos que se                     más pequeños) encontraron que los estudiantes
suceden a su alrededor. Procesos, rutinas o biorritmos                 empezaron a utilizar con mayor frecuencia estrategias
naturales como la gestación, las estaciones, la                        de planificación y de dibujo para resolver problemas
circulación sanguínea, los ciclos cósmicos, etc, son                   matemáticos en los cuales no utilizaban Logo.
algoritmos    naturales    que    generalmente     pasan
desapercibidos.                                                        Dato Curioso
                                                                       La palabra Algoritmo tiene su origen en el nombre del matemático
La rama del saber que mayor utilización ha hecho del                   Persa "Mohamed ibn Musa al Khwarizmi" (825 d.C.). Su apellido fue
enfoque algorítmico es las matemáticas. Durante miles                  traducido al latín como Algorismus y posteriormente paso al español
de años el ser humano se ha esforzado por abstraer la                  como Algoritmo. Khwarizmi fue bibliotecario en la corte del califa al-
estructura de la solución de problemas con el fin de                   Mamun y astrónomo en el observatorio de Bagdad. Sus trabajos de
determinar claramente cuál es el camino seguro, preciso                álgebra, aritmética y tablas astronómicas adelantaron enormemente
y rápido que lleva a esas soluciones. Son abundantes                   el pensamiento matemático y fue el primero en utilizar la expresión
los ejemplos: máximo común divisor, teorema de                         al-yabr (de la que procede la palabra álgebra). Su trabajo con los
Pitágoras, áreas de figuras geométricas, división, suma                algoritmos introdujo el método de cálculo utilizando la numeración
de números fraccionarios, etc. Todos estos algoritmos                  arábiga y la notación decimal.
matemáticos independizan los datos iniciales del
problema de la estructura de su solución, lo que permite
su aplicación con diferentes conjuntos de datos iniciales              En el ámbito de la computación, los Algoritmos son una
(variables).                                                           herramienta que permite describir claramente un
                                                                       conjunto     finito   de    instrucciones,   ordenadas
                                                                       secuencialmente y libres de ambigüedad, que debe
EJEMPLO                                                                llevar a cabo un computador para lograr un resultado
Consideremos el algoritmo de Euclides para hallar el Máximo Común      previsible. Vale la pena recordar que un programa de
Divisor (MCD) de dos números enteros positivos dados. Obsérvese        computador consiste de una serie de instrucciones muy
que no se especifica cuáles son los dos números, pero si se            precisas y escritas en un lenguaje de programación que
establece claramente una restricción: deben ser enteros y positivos.   el computador entiende (Logo, Java, Pascal, etc).

                                                                       En resumen, un Algoritmo es una secuencia ordenada
Pág.21 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
de instrucciones, pasos o procesos que llevan a la                     comunicación depende de elementos como vocabulario,
solución de un determinado problema. Los hay tan                       uso de comodines en lugar de vocablos precisos, uso de
sencillos y cotidianos como seguir la receta del médico,               adverbios coloquiales en lugar de adverbios formales,
abrir una puerta, lavarse las manos, etc; hasta los que                etc. Es fundamental que los estudiantes aprendan a
conducen a la solución de problemas muy complejos.                     diferenciar entre comunicación informal y comunicación
                                                                       formal, cuya principal característica es la precisión. Los
                                                                       algoritmos no admiten ningún tipo de ambigüedad ya
EJEMPLO                                                                que los lenguajes de programación tienen un
Un procedimiento que realizamos varias veces al día                    vocabulario restringido y preciso. Esto exige la
consiste en lavarnos los dientes. Veamos la forma de                   utilización de un conjunto determinado de palabras,
expresar este procedimiento como un Algoritmo:                         mandos o primitivas en cualquiera de los procedimientos
    1. Tomar la crema dental                                           que se elaboren.
    2. Destapar la crema dental
    3. Tomar el cepillo de dientes                                     ACTIVIDAD
    4. Aplicar crema dental al cepillo                                 Discutir en parejas el ejemplo de la bombilla y proponer algunas
    5. Tapar la crema dental                                           mejoras. Luego, un voluntario pasa al tablero y escribe un Algoritmo
    6. Abrir la llave del lavamanos                                    con participación de toda la clase.
    7. Remojar el cepillo con la crema dental
    8. Cerrar la llave del lavamanos
    9. Frotar los dientes con el cepillo
    10. Abrir la llave del lavamanos                                   Pensamiento Algorítmico
    11. Enjuagarse la boca                                             Cuando se habla de algoritmos, con frecuencia
    12. Enjuagar el cepillo                                            aparecen tres tipos de pensamiento que generalmente
    13. Cerrar la llave del lavamanos                                  se relacionan con ellos y que se utilizan
    14. Secarse la cara y las manos con una toalla                     indiscriminadamente como sinónimos: Pensamiento
                                                                       Computacional, Pensamiento Algorítmico y Pensamiento
                                                                       Procedimental. Por lo tanto es importante puntualizar a
EJEMPLO                                                                qué se refiere cada uno de estos pensamientos.
El ejemplo de cambiar una bombilla (foco) fundida es uno de los más
utilizados por su sencillez para mostrar los pasos de un Algoritmo:    Según Moursund (2006), el pensamiento computacional
      1. Ubicar una escalera debajo de la bombilla fundida             hace referencia a la representación y solución de
      2. Tomar una bombilla nueva                                      problemas utilizando inteligencia humana, de máquinas
      3. Subir por la escalera                                         o de otras formas que ayuden a resolver el problema. El
      4. Girar la bombilla fundida hacia la izquierda hasta soltarla   pensamiento algorítmico se refiere al desarrollo y uso de
      5. Enroscar la bombilla nueva en el plafón hasta apretarla       algoritmos que puedan ayudar a resolver un tipo
      6. Bajar de la escalera                                          especifico de problema o a realizar un tipo especifico de
      7. Fin                                                           tarea. Por su parte, el pensamiento procedimental se
                                                                       ocupa del desarrollo y utilización de procedimientos
                                                                       diseñados para resolver un tipo especifico de problema
En términos generales, un Algoritmo debe ser:                          o para realizar un tipo especifico de tarea, pero que no
• Realizable: El proceso algorítmico debe terminar                     necesariamente, siempre resulta exitoso.
    después de una cantidad finita de pasos. Se dice
    que un algoritmo es inaplicable cuando se ejecuta                  Por otra parte y de acuerdo con un reporte del Consejo
    con un conjunto de datos iniciales y el proceso                    Nacional de Investigación de Estados Unidos (National
    resulta infinito o durante la ejecución se encuentra               Research Council, NRC, 2004), conocido como “Being
    con un obstáculo insuperable sin arrojar un                        Fluent with Information Technology”, el Pensamiento
    resultado.                                                         Algorítmico     incluye    elementos    tales    como:
• Comprensible: Debe ser claro lo que hace, de                         descomposición funcional, repetición (iteración y/o
    forma que quien ejecute los pasos (ser humano o                    recursión), organización de datos (registro, campo,
    máquina) sepa qué, cómo y cuándo hacerlo. Debe                     arreglo, lista, etc), generalización y parametrización,
    existir un procedimiento que determine el proceso                  diseño por descomposición de un problema en partes
    de ejecución.                                                      más pequeñas y manejables (top-down) y refinamiento.
• Preciso: El orden de ejecución de las instrucciones
    debe estar perfectamente indicado. Cuando se                       El Pensamiento Algorítmico está fuertemente ligado al
    ejecuta varias veces, con los mismos datos iniciales,              pensamiento      procedimental    requerido    en    la
    el resultado debe ser el mismo siempre. La precisión               programación de computadores; sin embargo, su
    implica determinismo.                                              desarrollo puede conducir a los estudiantes a
                                                                       aproximarse guiada y disciplinadamente a los problemas
Un aspecto muy importante sobre el cual los estudiantes                de forma que este pueda transferirse a otros ambientes
deben reflexionar es la ambigüedad del lenguaje natural                diferentes a los de la programación. En pocas palabras,
que utilizan para comunicarse diariamente con sus                      la programación de computadores aporta al ámbito
semejantes. La informalidad o formalidad en la                         escolar un laboratorio para desarrollar habilidades
Pág.22 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
indispensables en la vida real del Siglo XXI.                          formales, los estudiantes demuestran su inteligencia por
                                                                       medio del uso lógico de símbolos relacionados con
Una diferencia notoria entre un algoritmo y un programa                conceptos 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                       programación de computadores y que puede ayudar a
problema. Se puede observar que una técnica de                         los estudiantes a desarrollar los pensamientos
solución (correspondiente al algoritmo) se puede utilizar              algorítmico y procedimental consiste en que ellos
en       diferentes       situaciones        problemáticas             realicen actividades con juegos de estrategia como
(correspondiente a los programas). De manera inversa,                  “Sokoban”, “Misión Escape”, “Tetris” e “Implode”, así
se espera que una solución exitosa de problemas                        como ejercicios de Razonamiento Abstracto. En
incorpore procesos generales que son independientes                    Sokoban se deben llevar las piedras hacia el lugar
de las situaciones específicas (NRC, 2004). Esto se                    donde aparecen los prismas y para lograrlo, estas se
conoce como experiencias de vida y los estudiantes                     deben empujar con el personaje teniendo cuidado en los
deben adquirirlas en su paso por la educación básica y                 movimientos que se hacen para no bloquear el juego ya
media para desempeñarse adecuadamente en su vida                       que el personaje solo puede empujar una piedra a la vez
diaria.                                                                y no puede moverlas hacia atrás, siempre hacia delante.
                                                                       Hay disponibles varias versiones de Sokoban para
Este es todo un reto para la educación, reto en el que la              descargar y para jugar en línea.
programación de computadores puede hacer una
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
guardarlo en el disco duro) es una tarea relativamente
sencilla. Pero el proyecto puede aumentar su
complejidad si se añaden funciones para dar formato al
texto (fuentes, tamaño y características especiales).
Posteriormente el proyecto puede crecer si se agregan
funcionalidades para manejar imágenes y tablas. Al
igual que en este ejemplo, se pueden diseñar proyectos
de clase interesantes para mantener motivados a los
estudiantes y cuyas tareas y retos sean progresivos en
complejidad; que cada nuevo reto parta de lo construido
con anterioridad. En resumen, los procedimientos son                    Ilustración 1: El marcianito debe mover la cuatro piedras redondas
un tipo particular de tarea que busca solucionar                                     hasta ubicarlas sobre los rombos morados.
problemas específicos y al desarrollarlos se ponen en                     http://www.matejoven.mendoza.edu.ar/matejue/juegos/sokoban/sokoban.htm
juego los pensamientos algorítmico y procedimental.
                                                                       Por su parte, el juego “Misión Escape” de la serie
David Moursund (2006) se basó en sus propias                           “Chicos      del    Barrio”     de    Cartón     Networks
experimentaciones y en la teoría de los cuatro estados                 (http://www.cartoonnetworkla.com/spanish/) se puede
de desarrollo cognitivo planteada por Piaget para                      utilizar para mejorar la habilidad de los estudiantes para
proponer un planteamiento que amarra la computación                    llevar a cabo tareas en forma ordenada y lógica. En este
con una escala de desarrollo cognitivo en la que se da                 juego, los participantes deben encontrar la mejor vía de
bastante protagonismo al desarrollo del pensamiento                    escape a través de la casa del árbol y recorrerla en la
algorítmico en los niños. Según Moursund (2006) en la                  menor cantidad de movimientos posibles. Para despejar
etapa de las operaciones concretas los niños empiezan                  el camino de objetos hay que seguir las reglas del juego
a manipular lógica y sistemáticamente símbolos en un                   y si no se mueven los objetos precisos, en la dirección
computador y aprenden a apoyarse en software para                      correcta y en el orden adecuado, el camino se puede
resolver un rango amplio de problemas y tareas de tipo                 bloquear.
general. De esta manera, ganan habilidad considerable
tanto en la utilización de lenguajes como Scratch y
MicroMundos, como en la manipulación de ambientes
gráficos. Posteriormente, en la etapa de operaciones
Pág.23 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
2       1
                       3




 Ilustración 2: Comienzo del nivel tres del juego “Misión Escape” de           Adaptado de “Razonamiento Abstracto”, Serrano (1998)
  Cartoon Network. El personaje debe alcanzar la baldosa café que
               aparece en la parte inferior del cuadrado.               Por su parte, juegos como Guido van robot, Tetris,
                                                                        Implode y el mismo Sokoban, además de la versión para
                                                                        Computadores Personales (PCs), ofrecen versiones
                                                                        para los computadores OX de la iniciativa OLPC (One
                                                                        Laptop Per Child). Esto es importante ya que cada día
                                                                        más niños en América Latina disponen de estos equipos
                                    1                                   y los utilizan como herramienta para el aprendizaje.
                       2

                           3                                            ACTIVIDAD
                                                                        Invitar a los estudiantes a reflexionar sobre el lenguaje que utiliza
                                                                        diariamente para comunicarse con sus padres, hermanos, profesores
  Ilustración 3: El personaje ya ha movido los obstáculos (1, 2, 3) y   y compañeros. ¿Utiliza un lenguaje preciso? ¿utiliza vocablos
 está a punto de alcanzar la baldosa café que le permite avanzar al     corrientes?
                            nivel siguiente.
                                                                        ACTIVIDAD
La ilustración 2 muestra el comienzo del nivel tres del                 A diferencia de los seres humanos que realizan actividades sin
juego (cada nivel es más difícil que el anterior). El                   detenerse a pensar en los pasos que deben seguir, los
personaje de ”Chicos del Barrio” se encuentra en el                     computadores son muy ordenados y necesitan que el programador
punto de inicio y debe encontrar el mejor camino para                   les especifique cada uno de los pasos necesarios y su orden lógico
llegar a la baldosa café de la parte inferior del cuadrado.             de ejecución.
Para lograrlo, debe mover las cajas precisas (marcadas                  Listar una serie de pasos para realizar una tarea y presentarlos a los
con 1, 2 y 3), en la dirección correcta y en el orden                   estudiantes en forma desordenada para que ellos los ordenen.
adecuado. En la ilustración 3 se pueden apreciar las                    Por ejemplo, ordenar los pasos para pescar:
cajas movidas y el personaje a punto de alcanzar la                     ___ El pez se traga el anzuelo.
baldosa café que le permite avanzar al nivel siguiente.                 ___ Enrollar el sedal.
                                                                        ___ Tirar el sedal al agua.
El razonamiento abstracto es otro tipo de actividad de                  ___ Llevar el pescado a casa.
aprestamiento que se puede llevar a cabo con los                        ___ Quitar el Anzuelo de la boca del pescado.
estudiantes    para desarrollar los pensamientos                        ___ Poner carnada al anzuelo.
algorítmico y procedimental. El razonamiento abstracto                  ___ Sacar el pescado del agua.
básicamente es un proceso de ordenación de objetos,
situaciones o sucesos en secuencias lógicas de acuerdo                  ACTIVIDAD
con algún criterio previamente establecido. Para ello se                Solicitar a los estudiantes que traigan para la próxima clase los
debe comprender e interpretar los cambios en función                    siguientes elementos:
de la forma cómo varían las características de interés de               • Arroz, lentejas o maíz (medio puñado).
los objetos o sucesos estudiados. Todo cambio conduce                   • Una banda de caucho.
a una alteración de algún aspecto del objeto, suceso o                  • Un vaso plástico.
situación (Sánchez, 1993).                                              • Un trozo de papel resistente (15cm x 15cm aproximadamente).

Actividades como la siguiente exige de los estudiantes                  Divida los estudiantes en dos grupos y suministre a un grupo las
un alto grado de observación para determinar qué es lo                  siguientes instrucciones para elaborar “Maracas”:
que cambia (figura, forma, posición, etc) y cuál es el                   1. Recortar del papel resistente un trozo más grande que la boca
patrón de cambio (dirección, tamaño, color, etc):                             del vaso plástico.
                                                                         2. Introducir el arroz, las lentejas o el maíz en el vaso (cada
                                                                              elemento produce una sonoridad diferente).
                                                                         3. Poner sobre la boca del vaso el papel.
Pág.24 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
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.25 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
REPRESENTACIÓN DE ALGORITMOS

Los Algoritmos se puede expresar de muchas maneras,
pero en esta guía se tratarán solo dos formas:                         Utilizar Diagramas de Flujo para representar un
Seudocódigo y Diagrama de Flujo. En Seudocódigo la                     algoritmo tiene claras ventajas, especialmente cuando
secuencia de instrucciones se representa por medio de                  son construidos por estudiantes de básica y media.
frases o proposiciones, mientras que en un Diagrama                    Numerosas investigaciones han mostrado que el
de Flujo se representa por medio de gráficos.                          Aprendizaje Visual es uno de los mejores métodos para
                                                                       enseñar habilidades del pensamiento. Las técnicas que
EJEMPLO                                                                utilizan formas graficas para representar ideas e
Elaborar un Algoritmo para calcular el área de cualquier triángulo     información ayudan a los estudiantes a clarificar su
rectángulo y presentar el resultado en pantalla.                       pensamiento, y a procesar, organizar y priorizar nueva
                                                                       información. Los diagramas visuales revelan patrones,
                          SEUDOCÓDIGO                                  interrelaciones e interdependencias además de
Paso 1: Inicio                                                         estimular el pensamiento creativo.
Paso 2: Asignar el número 2 a la constante "Div"
Paso 3: Conocer la base del triángulo y guardarla en la variable       La utilización de Diagramas ayuda a los estudiantes a:
"Base"                                                                 • Clarificar el pensamiento : Ellos pueden ver cómo se
Paso 4: Conocer la altura del triángulo y guardarla en la variable        conectan los procesos y se dan cuenta de cómo
"Altura"                                                                  estos se pueden organizar o agrupar para darles el
Paso 5: Guardar en la variable "Area" el valor de multiplicar "Base"      orden lógico correcto.
por "Altura"                                                           • Identificar pasos erróneos : Sobre un diagrama es
Paso 6: Guardar en la variable "Area" el valor de dividir "Area"          más fácil identificar los cambios que se requieren
entre "Div"                                                               para el correcto funcionamiento de un programa de
Paso 7: Reportar el valor de la variable "Area"                           computador que hacerlo sobre el código.
Paso 8: Final
                      DIAGRAMA DE FLUJO                                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;
                                                                       • Verificar si se han tenido en cuenta todas las
    Ilustración 2-4: Algoritmo para calcular el área de cualquier         posibilidades;
                         triángulo rectángulo                          • Comprobar si hay procedimientos duplicados;
                                                                       • Representar gráficamente una solución (es más
El seudocódigo está compuesto por proposiciones                           simple hacerlo con gráficas que mediante palabras);
informales en español que permiten expresar
                                                                       • Facilitar a otras personas la comprensión de la
detalladamente las instrucciones que llevan desde un                      secuencia lógica de la solución planteada;
estado inicial (problema) hasta un resultados deseado
                                                                       • Posibilitar acuerdos con base en la aproximación
(solución). Por lo regular, los algoritmos se escriben por
                                                                          común a una solución de un problema, resolver
refinamiento: se escribe una primera versión que luego
                                                                          ambigüedades o realizar mejoras;
se descompone en varios subproblemas (el número
                                                                       • Establecer posibles modificaciones (resulta más fácil
depende      de     la   complejidad      del   problema)
                                                                          depurar un programa con el diagrama que con el
independientes entre sí. Si es necesario se va refinando
                                                                          listado del código);
cada vez las instrucciones hasta que las proposiciones
generales en español como las del ejemplo anterior se                  • Agilizar la codificación (traducción) del algoritmo en
puedan codificar en el lenguaje seleccionado para hacer                   un lenguaje de programación;
la programación (en el caso de esta guía será Logo).                   • Servir como elemento de documentación de la
                                                                          solución del problema.
Pág.26 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
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                           (falso o verdadero) se toma la
                            debe llegar una línea.                                             decisión de seguir un camino del
                                                                                               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.
                            (cambios de valores de variables,
                            asignaciones, operaciones aritméticas,
                            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.



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


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


CONCEPTOS BÁSICOS DE PROGRAMACIÓN

Variables
Para poder utilizar algoritmos con diferentes conjuntos                Las variables Globales se crean con los comandos da
de datos iniciales, se debe establecer una                             o nombra. Estas variables solo pierden su valor cuando
independencia clara entre los datos iniciales de un                    se cierra MicroMundos o cuando se borran con el
problema y la estructura de su solución. Esto se logra                 comando bnombres.
mediante la utilización de Variables (cantidades que se
suelen denotar con letras –identificadores- y que pueden               En Scratch, se debe hacer clic en el botón “Variables” de
tomar cualquier valor de un intervalo de valores                       la paleta de bloques.
posibles).

En programación, las Variables son espacios de trabajo
(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.
                                                                       Luego se hace clic en el botón “Nueva variable” y se
En MicroMundos se utiliza el comando da para asignar                   asigna un nombre a la variable, en este caso “Puntaje”.
un valor a una variable o constante. La sintaxis es:                   Cuando se genera una variable, aparecen los bloques
  da “nombreVariable valor                                             correspondientes a ella. Se puede escoger si la variable
que es equivalente a la forma nombreVariable=Valor                     es para todos los Objetos (global) o solo para un Objeto
que se utiliza en la mayoría de los lenguajes de                       (local).
programación.
                                                                       Con el botón “Borrar una variable” se borran todos los
Para utilizar el valor almacenado en una variable o                    bloques asociados con una variable.
constante se debe anteponer dos puntos (:) al nombre;
en
  :nombreVariable                                                      Al hacer clic sobre el cuadrito de selección, se empieza
los dos puntos significan “no quiero que ejecutes el                   a Informar el valor de la variable “Puntaje” en el
comando nombreVariable; quiero el valor almacenado                     escenario.
en nombreVariable”.
Pág.29 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
da "variableLocal 20
                                                                        fin
Incrementa la variable en una cantidad determinada (Si
                                                                        Ahora escriba en el centro de mando de MicroMundos la secuencia
se tiene más de una variable, utilice el menú
                                                                        de instrucciones en cursiva y debe obtener las respuestas
desplegable para seleccionar el nombre de la variable
                                                                        subrayadas:
que se desea modificar).
                                                                        tipoVariable 70
                                                                        muestra :valorParámetro
                                                                        valorParámetro no tiene valor
Inicializa la variable a un valor específico.                           muestra :variableLocal
                                                                        variableLocal no tiene valor
                                                                        muestra :variableGlobal
Muestra el monitor de la variable en el escenario.                      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 conserva su valor
Esta opción esconde el monitor de la variable para que                  (150) por fuera del procedimiento donde fue creada.
no aparezca en el escenario.
                                                                        En MicroMundos también existen las variables de
                                                                        estado que permiten conocer o modificar los
EJEMPLO
                                                                        componentes más importantes de una tortuga, un
                              MicroMundos                               control o una caja de texto.
     para equilátero :tamaño
        limpia
        cp
        repite 3 [adelante :tamaño derecha 120]
                                                                        Constantes
     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 palabra           asignados, no cambian en ninguna instrucción del
equilátero seguida por un número que representa el tamaño de cada       Algoritmo. Pueden contener constantes matemáticas (pi)
lado del triángulo (ejemplo: equilátero 70 ).                           o generadas para guardar valores fijos (3.8, "Jorge",
La variable local :tamaño creada en la línea de título del              etc). En el Algoritmo de la Ilustración 2-4, "div" es un
procedimiento equilátero, contiene el valor 70 mientras el              ejemplo 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 la variable tamaño.       EJEMPLO
                                                                        Las variables y constantes además de tener un Nombre
                                                                        (identificador) para poder referirnos a ellas en los procedimientos,
                              Scratch
                                                                        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:
                                                                          edadCarlos es la constante donde se guarda la edad de Carlos
En Scratch haga clic en la bandera verde para que se dibuje en el       Andrés;
escenario un triángulo equilátero con lado 100. Para dibujar            R/. 2 x edadCarlos = 32
triángulos de tamaños diferentes basta con fijar la variable tamaño a
otro valor.                                                             Situaciones:
                                                                         1. La mitad de un valor (valor1) es 60
                                                                         2. Cuatro veces un número (número1) equivale a 20
EJEMPLO                                                                  3. Un número (número2) disminuido en 5 es 18
Escriba en el área de procedimientos las siguientes líneas de código:    4. El doble (elDoble) del precio de una manzana
para tipoVariable :valorParámetro                                        5. La midad (laMitad) del precio de una gaseosa
  limpia                                                                 6. el triple (elTriple) de mi edad
  da "variableGlobal 150
 local "variableLocal                                                   Los valores que pueden tomar valor1, número1 y
Pág.30 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
número2 (tres primeras situaciones) son constantes:
120, 5 y 23 respectivamente; no pueden tomar otros
valores. Además, estas constantes son las incógnitas de                   EJEMPLO
las situaciones.                                                          Escribir un procedimiento llamado contador para contar los números
                                                                          entre 1 y 10.
Los valores que pueden tomar elDoble, laMitad y                                                           MicroMundos
elTriple son variables ya que dependen de un precio o                          para contador
de la edad del estudiante que resuelve el ejercicio. Los                           bnombres
valores de estas variables hay que conocerlos para                                 da "número 0
introducirlos en el problema como datos iniciales, pero                            repite 10 [da "número :número + 1
no son la incógnita. Para ampliar esta actividad, el                                              muestra nombres]
docente puede plantear nuevas situaciones o pedir a los                            muestra frase
estudiantes que planteen situaciones similares.                                     [El valor final del contador número es ] :número
                                                                               fin

ACTIVIDAD                                                                 Ahora escriba en el centro de mando de MicroMundos contador.
Pedir a los estudiantes que traigan tres cajas de cartón (del tamaño
de las de los zapatos) y marcar cada caja con uno de los siguientes                                     Scratch
letreros: BASE, ALTURA y DIVISOR. Introducir un papel en blanco
en cada una de las cajas. Solicitar a un estudiante del grupo que
escriba un valor en cada uno de los papeles guardados en las cajas.

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        Haga clic en la bandera verde de Scratch.
valores en el papel de cada una de las cajas, tachando los valores
anteriores.
Hacer notar que en los papeles guardados en las cajas marcadas            Acumuladores
con “BASE” y “ALTURA” se han anotado valores diferentes en cada           Estructura muy utilizada en programación (da “A :A + :B)
ocasión. Este es el concepto de variable.                                 y que consiste en almacenar en una variable (“A) el
Hacer notar también que en el papel guardado en la caja “DIVISOR”         valor de ella misma (:A) más otro valor variable (:B). Es
solo se anotó un valor (2) al comienzo del ejercicio y no hubo            muy útil para calcular sumatorias.
necesidad de cambiarlo posteriormente. Este es el concepto de
constante.
                                                                          EJEMPLO
                                                                          Escribir un procedimiento llamado acumulador para calcular la
Esta actividad se puede adaptar para reforzar el cálculo                  sumatoria de los números entre 1 y 10.
de áreas y perímetros de otras figuras geométricas
planas.                                                                                                 MicroMundos
                                                                          para acumulador
                                                                              bnombres
Contadores                                                                    da "contador 0
Los contadores en MicroMundos se implementan como                             da "sumatoria 0
una estructura de programación (da “A :A + 1) que                             repite 10 [da "contador :contador + 1
consistente en almacenar en una variable (“A) el valor                                       da "sumatoria :sumatoria + :contador
de ella misma (:A) más un valor constante (1). Es muy                                       muestra nombres]
útil para controlar el número de veces que debe                               muestra frase
ejecutarse un grupo de instrucciones.                                           [El valor final del acumulador sumatoria es ] :sumatoria
                                                                          fin
En Scratch, se utiliza la instrucción cambiar ... por ...
para incrementar la variable en una cantidad                              Ahora escriba en el centro de mando de MicroMundos acumulador.
determinada.


En este caso se almacena en la variable Puntaje el valor
que ella tenga en el momento más el valor constante 1.
Pág.31 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
Scratch                                     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).



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


Pág.32 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
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.                                          exp número
Devuelve e 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 de                                                            Scratch no tiene el operador potencia, sin
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
                                                      repite 28 [fy 8 * tan 6 * coorx fx coorx + 1 /
                                                      2]




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

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.                 EJEMPLO

Números: se utilizan como entradas en las operaciones                  Las siguientes son listas validas en MicroMundos:
matemáticas. Cuando se utilizan los signos positivo (+) o              • [Esta es una lista de 7 elementos]
negativo (-), estos deben estar pegados al número.                     • [x y z]
MicroMundos acepta tanto el punto como la coma para
escribir números decimales (3,14=3.14). Esto es                                                  Scratch
importante tenerlo presente para no utilizar el punto para
marcar la separación de miles y millones. Si asignamos
a una variable el valor 20.000, MicroMundos guarda en
ella el valor 20 y no 20000; si le asignamos 1.345.625 en
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:    Aunque en Scratch se pueden introducir tanto palabras
1E6.                                                                   como números en una variable, la operación de suma de
                                                                       dos variables o de elementos de una lista solo opera con
Palabras: Las palabras están formadas por letras y/o                   números (versión 1.4). Por lo tanto no se pueden
números. Una palabra está delimitada por espacios en                   concatenar varias palabras para formar una frase con el
blanco; sin embargo, si se quiere tener un texto                       operador +, debe utilizarse el operador “unir”. Varios
conformado por dos o más palabras, este debe                           operadores “unir” se pueden anidar para formar una
encerrarse entre barras (|palabra1 palabra2|).                         cadena de varios elementos. En el siguiente ejemplo se
                                                                       requieren tres espacios: uno para mostrar el nombre,
EJEMPLO                                                                otro para separar el nombre del apellido y el tercero para
Las siguientes son palabras validas en Logo:                           el apellido.
• Hola
• x                                                                                              Scratch
• 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
palabras en una lista no necesitan comillas y los
espacios en blanco se ignoran.




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

Son símbolos que sirven para manipular datos. En                            /            División              4/2                 2
MicroMundos 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                             +             Suma                 4+2                 6
clasifican en:
• Aritméticos: Posibilitan las operaciones entre datos                      -              resta               4-2                 2
    de tipo numérico y dan como resultado otro valor de
    tipo numérico. Ejemplo: potencia (potencia);                            “          asignación            da “A 4         Se asigna el
    producto (*); división (/); suma (+); resta (-);                                                                        valor de 4 a la
    asignación    (“).  Este    último  operador     de                                                                       variable A
    MicroMundos presenta diferencias con el operador
    de asignación (=) que utilizan la mayoría de los
    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                       cualquier otro mando Logo. Por ejemplo, en la
    operador &.                                                        instrucción muestra azar 6 + 1, la operación aritmética
• Relaciónales: Permiten la comparación entre datos                    6 + 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 (ilustración 1-
                                                                       2) de MicroMundos las siguientes expresiones y anote en su
Orden de evaluación de los operadores                                  cuaderno las observaciones sobre los resultados de cada pareja (1 y
Los computadores ejecutan los operadores en un orden                   2; 3 y 4, 5 y 6):
predeterminado. El siguiente es el orden (jerarquía) para                    1. muestra 243 + 5 - 6 + 86 – 42
ejecutar operadores:                                                         2. muestra 5 + 86 - 42 - 6 + 243
1. Paréntesis (se ejecutan primero los más internos)                         3. muestra 7 + ( 8 * 16)
2. Signo (-2)                                                                4. muestra (7 + 8 ) * 16
3. Potencias y Raíces (potencia y rc); Productos y                           5. muestra 24 / 4 * 8
Divisiones ( * y /)                                                          6. muestra 4 * 8 / 24
4. Sumas y Restas (+ y -)
5. Concatenación (+)
6. Relaciónales (=, <, >)
7. Negación (no)
8. Conjunción (y)
9. Disyunción (o)


         OPERADORERS ARÍTMETICOS
Operador  Operación      Ejemplo     Resultado
potencia   Potencia     potencia 4 2    16
   ^                       4^2
    *    Multiplicación     4*2         8




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

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


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

LAS ESTRUCTURAS

                                                                       programación, pueden descargar gratuitamente las
                                                                       correspondientes Guías de Referencia:
                                                                       •   MicroMundos (proyecto Teddi - PDF; 560KB)
                                                                           http://www.eduteka.org/pdfdir/ManualMicroMundos.pdf
                                                                       •   Scratch (MIT - PDF; 1.5MB)
                                                                           http://www.eduteka.org/pdfdir/ScratchGuiaReferencia.pdf


                                                                       TIP
                                                                       Edsger Wybe Dijkstra nació en Rotterdam, (Holanda) en 1930. En
                                                                       1956 anunció su algoritmo de caminos mínimos; posteriormente
                                                                       propuso el algoritmo del árbol generador minimal. A principios de la
 Ilustración 3-1: Fases segunda y tercera del ciclo de programación.   década de los 60, aplicó la idea de exclusión mutua a la
                                                                       comunicación entre un computador y su teclado. Su solución de
                                                                       exclusión mutua ha sido usada en muchos procesadores y tarjetas
Un Algoritmo está compuesto por instrucciones de                       de memoria desde 1964, año en el que fue utilizada por IBM en la
diferentes tipos, organizadas secuencialmente, en forma                arquitectura del “IBM 360”. El siguiente problema del que se ocupó
de estructuras de control. De estas estructuras, las más               Dijkstra fue el de los filósofos comensales. En este problema, cinco
comunes y que se cubren en esta guía son las                           filósofos están sentados en una mesa circular con un plato de arroz
siguientes:                                                            delante y un palillo a cada lado, de manera que hay cinco palillos en
• Secuencial.                                                          total. El problema trata sobre el uso de recursos comunes sin que los
• Iterativa (repetición).                                              procesos (los filósofos) lleguen a una situación de bloqueo mutuo;
                                                                       además, que los recursos se utilicen por todos los procesos de la
• Condicional (decisión, selección).
                                                                       manera más eficiente. Dijkstra también contribuyó a desterrar el
                                                                       comando GOTO de la programación: el comando "GOTO es
Una estructura de control se define como un esquema
                                                                       considerado dañino. Cuantas más sentencias GOTO tenga un
que permite representar ideas de manera simplificada y
                                                                       programa, más confuso será el código fuente".
que bajo condiciones normales, es constante (Trejos,
1999).

El uso del diseño descendente en los programas, la
ejecución de operaciones secuenciales, la utilización de
ciclos repetitivos y, la toma de decisiones y alternativas
de proceso, ofrecen amplias posibilidades para resolver
problemas mediante la construcción de procedimientos
(Castellanos & Ferreyra, 2000b).

Un famoso teorema de los años sesenta, formulado por
Edsger Wybe Dijkstra, demostraba que se puede
escribir cualquier programa utilizando únicamente la tres
estructuras de control mencionadas. Actualmente, la
programación orientada a objetos (POO) busca reducir
al máximo la cantidad de estructuras de control
mediante el uso de polimorfismo; pero aún así, todavía
se vale de estas estructuras para construir métodos, los
cuales podría decirse que son equivalentes a los
procedimientos que se plantean en esta guía.

Para traducir los algoritmos diseñados a un lenguaje de
programación que el computador pueda entender, en
esta guía se utilizan dos entornos de programación
basados en Logo: MicroMundos y Scratch. Los docentes
interesados en conocer estos ambientes de



Pág.37 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
CONCEPTOS BÁSICOS DE PROGRAMACIÓN

Logo
Logo es un lenguaje de programación con un número
limitado de palabras y de reglas gramaticales si se lo
compara con lenguajes humanos, como el castellano o
el inglés. Las instrucciones en Logo son equivalentes a
las oraciones en castellano y las reglas para construir
esas instrucciones son más simples que las reglas
gramaticales de nuestro idioma, pero mucho más
precisas.

Logo fue desarrollado por Seymour Paper en el MIT en
1968 con el fin de utilizarlo en el ámbito educativo. Con
este lenguaje de programación, inicialmente los niños
dan instrucciones a una tortuga (adelante, atrás,
derecha, izquierda, etc) para elaborar dibujos sencillos.
Pero a medida que logran dominio del lenguaje, ellos
utilizan comandos más sofisticados para realizar
creaciones más complejas.

Desde 1968 a la fecha se han creado numerosas
versiones                           de                      Logo                Ilustración 3-2(a): Área de trabajo de MicroMundos
(http://www.elica.net/download/papers/LogoTreeProject.pdf);   sin                              (interfaz del programa)
embargo, en esta Guía se utilizarán los entornos de
programación basados en Logo “MicroMundos” y                           EJEMPLO 3-1
“Scratch”. Ambos ofrecen una serie de comandos                         Digitar en el Centro de Mando (Ilustración 3-2) la instrucción:
llamados “primitivas” para construir procedimientos (ver               rumbo
una lista básica de primitivas en el Anexo 1).                         MicroMundos devuelve un mensaje de error:
                                                                       No sé qué hacer con 0
Para obtener mayor información sobre Logo, se                          Digitar la siguiente instrucción en el Centro de Mando:
recomienda visitar el sitio Web de Daniel Ajoy                         muestra rumbo
http://neoparaiso.com/logo/                                            MicroMundos devuelve el rumbo actual de la tortuga:
                                                                       0
                                                                       En este caso el resultado de rumbo es reportado a muestra.
MicroMundos
MicroMundos (http://www.micromundos.com) es un                         Los docentes interesados en conocer más a fondo
entorno de programación desarrollado por la compañía                   MicroMundos, pueden descargar una versión de prueba
canadiense LCSI. La lista de primitivas es más extensa                 por 30 días del sitio: http://www.micromundos.com
que la de Scratch; la cual, junto a los procedimientos                 Además, pueden descargar gratuitamente la Guía de
elaborados por el programador, se pueden clasificar en                 Referencia en español: Proyecto Teddi; PDF; 560KB)
dos categorías: Mandos y Reporteros.                                   http://www.eduteka.org/pdfdir/ManualMicroMundos.pdf

Los Mandos hacen algo. Por ejemplo, derecha y                          Aunque MicroMundos es bueno y ampliamente utilizado
muestra son Mandos (derecha 120, muestra rumbo,                        en escuelas de América Latina, su costo puede
etc). Los Reporteros informan sobre el resultado de un                 constituir una restricción para muchas Instituciones
cálculo o sobre el estado de un objeto. Por ejemplo,                   Educativas. Sin embargo, entre las alternativas gratuitas
rumbo y primero son Reporteros. En la instrucción                      (licencia GNU) de Logo hay una que utiliza en núcleo de
muestra rumbo, el Reportero rumbo devuelve al Mando                    Logo creado por Brian Harvey de la Universidad de
muestra el rumbo actual de la tortuga, rumbo como tal                  Berkeley: Microsoft Windows Logo (MSWLogo). Si bien,
no puede hacer nada.                                                   no es un ambiente de programación tan atractivo y
                                                                       elaborado como MicroMundos, esta versión de Logo es
Se requiere que los estudiantes aprendan a interpretar                 gratuita y tiene una traducción al español realizada por
las instrucciones tal como lo hacen con las oraciones en               Javier López-Escobar que se puede descargar de:
castellano (sustantivos, verbos, conectores, adjetivos,                http://sourceforge.net/projects/mswlogoes Sin embargo,
etc). En MicroMundos la primera palabra de una                         desde 2006, y debido al notorio abandono de MSWLogo
instrucción siempre debe ser un Mando, por lo tanto, los               por parte de su desarrollador, David Costanzo asumió la
Reporteros solo se pueden utilizar como entradas de un                 continuación del desarrollo de MSWLogo con el nombre
Mando o de un procedimiento.                                           FMSLogo: http://fmslogo.sourceforge.net/


Pág.38 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
Scratch                                                                Los docentes interesados en conocer más a fondo el
Scratch (http://scratch.mit.edu/) es un entorno de                     ambiente de programación Scratch, puede descargarlo
programación desarrollado recientemente por un grupo                   gratuitamente       de     la   siguiente   dirección:
de investigadores del Lifelong Kindergarten Group del                  http://scratch.mit.edu/. Además, pueden descargar la
Laboratorio de Medios del MIT, bajo la dirección del Dr.               Guía de Referencia en español (PDF; 1.5MB):
Michael Resnick.                                                       http://www.eduteka.org/pdfdir/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
                                                                       comentar el código de los programas.
           Ilustración 3-2(b): Área de trabajo de Scratch
          (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
                                                                                                    MicroMundos
versiones oficiales para Windows, Mac y Sugar (XO);
                                                                       para lectura
Además, hay versiones no oficiales para Linux.
                                                                          local "valorUno ; declarar variables y constantes
                                                                          local "ValorDos
Este entorno de programación aprovecha los avances
                                                                          pregunta [Ingrese el primer valor ] ; ingresar valorUno
en diseño de interfaces para hacer que la programación
                                                                          da "valorUno respuesta
sea más atractiva y accesible para todo aquel que se
                                                                          pregunta [Ingrese el segundo valor ] ; ingresar valorDos
enfrente por primera vez a aprender a programar. Según
                                                                          da "valorDos respuesta
sus creadores, fue diseñado como medio de expresión                       muestra frase [El primer valor es ] :valorUno
para ayudar a niños y jóvenes a expresar sus ideas de                     muestra frase [El segundo valor es ] :valorDos
forma creativa, al tiempo que desarrollan habilidades de               fin
pensamiento algorítmico y de aprendizaje del Siglo XXI,
a medida que sus maestros superan modelos de
                                                                       En Scratch, los comentarios se agregan en una caja de
educación tradicional en los que utilizan las TIC
                                                                       texto amarilla que se crea al hacer clic derecho sobre
simplemente para reproducir prácticas educativas
                                                                       cualquier parte del área de programas (zona central gris)
obsoletas.
                                                                       y seleccionar la opción “añadir comentario”.
Entre las características más atractivas de Scratch,
                                                                                                     Scratch
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 es una muy buena alternativa a MicroMundos;
sin embargo, las Instituciones Educativas que ya
cuentan con MicroMundos, pueden utilizar ambos
entornos ya que puede resultar benéfico para los                       Los algoritmos diseñados como ejemplos en esta Guía
estudiantes exponerlos a diferentes ambientes de                       no están optimizados ya que con ellos se busca mostrar
                                                                       explicita y detalladamente las operaciones básicas
programación en los que puedan realizar las mismas
cosas.                                                                 requeridas para una solución y no la forma óptima de
                                                                       solución. Algunos ejemplos exponen de manera

Pág.39 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
deliberada la forma larga y poco elaborada, para luego                                            Scratch
presentar la forma optimizada.


EJEMPLO 3-2
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   PROCESOS
hipotenusa se puede omitir. El estudiante debe preguntarse si sus         Se llama procesos a todas las instrucciones contenidas
conocimientos actuales de matemáticas le permiten resolver este           en un algoritmo para:
problema; de no ser así, debe plantear una estrategia para obtener        • declarar     variables   y    constantes     (solo  en
los conocimientos requeridos.                                                MicroMundos);
Restricciones: Utilizar las medidas dadas.
                                                                          • asignar valores iniciales a variables y constantes;
Procesos necesarios: Guardar en dos variables (BASE y ALTURA)
                                                                          • leer datos que suministra el usuario por medio del
los valores de Base y Altura; Guardar en una constante (DIV) el
                                                                             teclado o del ratón (mouse);
divisor 2; aplicar la fórmula BASE*ALTURA/DIV y guardar el
resultado en la variable AREA; comunicar el resultado (AREA).             • realizar operaciones matemáticas (aplicar fórmulas);
                                                                          • reportar o mostrar contenidos de variables y
                     DISEÑO DEL ALGORITMO                                    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).

                                                                          Luego de asociar valores a variables o constantes, estas
                                                                          se pueden utilizar anteponiendo dos puntos (:) al
                  TRADUCCIÓN DEL ALGORITMO                                nombre de la variable o constante:
                        MicroMundos                                          da “nuevaAltura 2 + :altura
para triángulo
   local "div      ;declara las constantes como locales.                  El Mando da asigna a la variable nuevaAltura el valor 2
   local "base                                                            más el contenido de la variable altura.
   local "altura
   local "área    ;declara esta variable como local.                      Por otra parte, al momento de crear una variable en
   da "div 2      ;almacena 2 en la constante div (div=2)                 Scratch, el entorno pregunta si esta será visible “para
   da "base 3     ;equivalente a base=3                                   todos los objetos” (global) o solo será visible “para este
   da "altura 4                                                           objeto” (local).
   da "área :base * :altura / :div ;aplica la fórmula.
   muestra :área ;reporta el contenido de la variable área                                        Scratch
fin


Tal como se puede comprobar al ejecutar el procedimiento anterior,
el texto entre un punto y coma y el final de una línea de código no
produce ningún resultado, ni causa errores de sintaxis.




Pág.40 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
MicroMundos
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).

En MicroMundos, la forma más común de interactuar
con un programa es por medio de controles y botones,
los cuales se manipulan con el ratón. Ambos se pueden
programar para que realicen acciones (ejecutar un
                                                                           Ilustración 3-4: Los comandos pregunta y respuesta permiten
procedimiento, ir a otra página, cambiar el valor a una
                                                                              interactuar con el usuario para obtener información de él.
variable, etc).

                         MicroMundos                                                                Scratch




Ilustración 3-3: Con el ratón se puede hacer clic sobre los Botones y      Ilustración 3-5: Los comandos pregunta y respuesta permiten
   deslizar el indicador de los Controles (a la izquierda disminuye y         interactuar con el usuario para obtener información de él.
                      hacia la derecha aumenta).
                                                                        En Scratch las respuestas que el usuario aporta se
En Scratch algunos objetos se les puede dar forma de                    pueden almacenar en variables con el comando
botón y programarlos para que cumplan la misma                          respuesta. Para mostrar lo que el usuario contesta se
función que cumplen estos en MicroMundos. Respecto a                    puede utilizar los comandos “decir” y “pensar”.
los controles, en Scratch cada variable se puede
convertir en un control deslizante. Basta con hacer clic                EJEMPLO 3-3
derecho sobre cualquier variable que se muestre en el                                              MicroMundos
escenario y seleccionar “deslizador”; luego se hace clic                  para lectura
derecho nuevamente y se eligen los valores mínimo y                          local "valorUno ; declarar variables y constantes
máximo que puede almacenar esa variable mediante la                          local "ValorDos
manipulación con el deslizador.                                              pregunta [Ingrese el primer valor ] ; ingresar valorUno
                                                                             da "valorUno respuesta
                             Scratch                                         pregunta [Ingrese el segundo valor ] ; ingresar valorDos
                                                                             da "valorDos respuesta
                                                                             muestra frase [El primer valor es ] :valorUno
                                                                             muestra frase [El segundo valor es ] :valorDos
                                                                          fin

                                                                                                     Scratch



Otra forma de interactuar con un programa consiste en
que el usuario utilice el teclado para responder a las
preguntas que le plantea el programa. En MicroMundos
las respuestas que el usuario aporta se pueden
almacenar en las variables correspondientes con el
comando respuesta. Para mostrar lo que el usuario
contesta se puede utilizar varios comandos de
MicroMundos (mostrar, escribe, anuncia, anuncia frase).
                                                                        El ejemplo 3-6 de la sección “Estructura Secuencial”
                                                                        ilustra muy bien la interactividad que se puede
                                                                        establecer entre usuario y programa. La interactividad

Pág.41 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
facilita generalizar la solución de un problema. Por                   condiciones para que ellos ejerciten en forma efectiva y
ejemplo, si se elabora un procedimiento que calcule el                 divertida el pensamiento algorítmico y los razonamientos
área de un triángulo rectángulo, cada vez que se                       temporal y condicional.
cambien los valores iniciales de “base” y “altura”, estos
deben actualizarse en el cuerpo del procedimiento. La                  En este sentido, la utilización del área de procedimientos
interactividad, por el contrario, permite que cada vez que             de MicroMundos (ilustración 3-2) ofrece mayores
se ejecute el procedimiento, este le pregunte al usuario               posibilidades para gestionar, organizar y planificar, en
por los valores de “base” y “altura”, y los tome para                  contraposición a introducir instrucciones una a una en el
calcular el área sin la necesidad de modificar nada en el              “centro de mando” (lo que permite al estudiante ver
procedimiento.                                                         inmediatamente cuál es el efecto que produce cada
                                                                       instrucción ejecutada).

PROCEDIMIENTOS                                                         Como se expuso en la Unidad 1, los procedimientos son
Según Papert (1993), los problemas que experimentan                    módulos con instrucciones que inician con el comando
muchos estudiantes con las matemáticas se deben más                    “para” y que el computador ejecuta automáticamente,
a la falta de comprensión de los algoritmos apropiados,                una tras otra, hasta encontrar el comando “fin”. Todo
que a la falta de manejo de los conceptos involucrados                 procedimiento debe tener un nombre que lo identifique y
en estos. Cuando experimentan problemas con la suma,                   que sirve para ejecutarlo cuando se ejecuta dicho
lo primero que se debe revisar es el procedimiento de la               nombre. Pero antes de ejecutar un procedimiento, los
adición.                                                               estudiantes deben utilizar pensamiento algorítmico,
                                                                       razonamiento temporal y razonamiento condicional, para
Los procedimientos se utilizan muy a menudo en la vida                 determinar y escribir todas las instrucciones que lo
diaria. Participar en un juego o dar instrucciones a                   deben componer y el orden lógico de ejecución.
alguien que se encuentra perdido son actividades que
requieren pensamiento procedimental o algorítmico. Los
estudiantes activan a diario este tipo de pensamiento sin
percatarse y sin hacer algún tipo de reflexión sobre esto.
De hecho, ellos disponen de un conocimiento
procedimental que utilizan en muchos aspectos de sus
vidas, tanto para planear una estrategia en un juego,
como para dar instrucciones a alguien perdido en el
vecindario. Lo curioso es que en raras ocasiones utilizan
este conocimiento procedimental en las clases de
matemáticas. Los ambientes Logo ayudan a los
estudiantes a hacer conciencia de la idea de
procedimiento, ya que en él, los procedimientos se
convierten en algo que se puede nombrar, manipular y
reconocer (Papert, 1993).

Además del pensamiento algorítmico, los razonamientos
temporal y condicional juegan un papel muy importante                       Ilustración 3-5: Elementos que componen el procedimiento
en la gestión, organización y planificación de cualquier                      “cuadrado”; el parámetro es el único elemento opcional.
procedimiento. Estos facilitan al programador plantear y
seguir instrucciones, fragmentar una tarea en módulos                  Por otra parte, el vocabulario disponible en cualquier
con funciones precisas y plantear decisiones que un                    proyecto Logo está compuesto por los comandos
procedimiento debe tomar de acuerdo a ciertas                          propios del lenguaje (Mandos y Reporteros) más los
condiciones. La programación esta muy ligada al control                nombres de los procedimientos definidos en ese
de la sucesión temporal de instrucciones organizadas en                proyecto. En otras palabras, los procedimientos
secuencias. Este control, guiado por un razonamiento                   definidos (en este caso “cuadrado”) entran a formar
temporal, es necesario para organizar el orden de las                  parte del vocabulario de ese proyecto. Cuando se abre
instrucciones    a    ejecutar,    para   llamar   otros               un proyecto nuevo, esos procedimientos ya no están
procedimientos en el orden correcto y ejecutar ciertas                 disponibles; por tanto, para utilizarlos hay que copiarlos
instrucciones mientras una condición se dé o a partir de               de un proyecto existente y pegarlos en el nuevo
cuando esta se dé (Dufoyer, 1991). Y, según Friedman                   proyecto.
(1982) y Piaget (1946), citados por Dufoyer (1991), hay
que esperar necesariamente hasta los 7 u 8 años (nivel                 Todo procedimiento debe tener una línea de título que
de las operaciones concretas) para que estas                           incluye un nombre; el cual, al invocarlo, ejecuta en
operaciones sean posibles. Por lo tanto, utilizar la                   orden, una a una, las líneas de instrucciones que
programación de computadores con estudiantes de                        contiene hasta que llega a la línea con el Mando fin.
cuarto grado en adelante es viable si se hace con el
objetivo de ofrecerles oportunidades de acceso a                       Para escribir procedimientos se deben tener en cuenta
conceptos relacionados con procedimientos, creando                     las siguientes recomendaciones:
Pág.42 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
• El título está compuesto por: el Mando “para”, el                      Aquí tenemos dos formas equivalentes e igualmente correctas de
  nombre del procedimiento y los parámetros                               algoritmo para dibujar un cuadrado. El algoritmo de la izquierda
  (opcional).                                                             utiliza un rectángulo de proceso para cada instrucción; el de la
• El nombre del procedimiento debe ser una palabra.                     derecha agrupa en un solo rectángulo las instrucciones de proceso
  Cuando se deben utilizar varias palabras para                                                     adyacentes.
  nombrar un procedimiento, se escriben sin dejar
  espacio entre ellas y con mayúscula la primera letra                                   TRADUCCIÓN DEL ALGORITMO
  de la segunda palabra y de las subsiguientes                         El siguiente procedimiento es la traducción al lenguaje Logo del
  palabras (ejemplo: valorMasAlto).                                    algoritmo representado por el diagrama de flujo. Pedir a los
• Cada instrucción completa debe ocupar una línea de                   estudiantes que lo escriban en el área de procedimientos.
  código
• Puede contener líneas en blanco                                                                   MicroMundos
• En la última línea solo puede aparecer el Mando “fin”                          para cuadrado :lado
• Desde un procedimiento se pueden invocar otros                                     limpia
  procedimientos.                                                                    cp
                                                                                     adelante :lado
Ejemplo 3-4                                                                          derecha 90
Escribir un procedimiento para dibujar en la pantalla un cuadrado de                 adelante :lado
tamaño variable.                                                                     derecha 90
R/.                                                                                  adelante :lado
                                                                                     derecha 90
                     ANÁLISIS DEL PROBLEMA                                           adelante :lado
Formular el problema: Ya está claramente planteado.                              fin
Resultados esperados: El dibujo de un cuadrado en la pantalla.
Datos disponibles: El tamaño de los lados del cuadrado debe            Cuando escriban en el Centro de Mando el nombre del
ingresarlo el usuario; se sabe que todos los ángulos internos de un    procedimiento, seguido del parámetro correspondiente al tamaño del
cuadrado son de 90 grados. El estudiante debe preguntarse si sus       lado (Ejemplo: cuadrado 100 ) debe dibujarse en la pantalla un
conocimientos actuales de matemáticas le permiten resolver este        cuadrado.
problema; de no ser así, debe plantear una estrategia para obtener
los conocimientos requeridos.                                                                        Scratch
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.

                    DISEÑO DEL ALGORITMO




                                                                       Con el fin de poder ejemplificar más adelante las dos
                                                                       formas de ejecutar un procedimiento, se debe escribir
                                                                       este otro procedimiento:

                                                                                             MicroMundos
                                                                              para dibujaCuadrado
                                                                                  cuadrado 120
                                                                              fin

                                                                       El procedimiento cuadrado ilustra el modelo general
                                                                       para escribir procedimientos con parámetros. Este tipo
                                                                       de procedimientos son muy útiles cuando varias
Pág.43 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
instrucciones se deben ejecutar en un programa varias                       cuadrado 150.
veces de manera idéntica, cuya única diferencia sea el
valor inicial que tomen algunas variables. En estos                    Otra forma de ejecutar un procedimiento es invocándolo
casos, las instrucciones se “empaquetan” en un                         desde otro procedimiento. Cuando se ejecuta el
procedimiento y los distintos valores iniciales de las                 procedimiento    dibujaCuadrado    (sin   parámetros),
variables se asignan por medio de parámetros.                          indirectamente se ejecuta el procedimiento cuadrado
                                                                       con 120 como parámetro. Este procedimiento dibuja
El nombre del parámetro se debe escribir en la línea del               exactamente el mismo cuadrado cada vez que se
título, después del nombre del procedimiento,                          ejecuta (ver ejemplo 3-4).
ajustándose a las indicaciones establecidas en la
Unidad 2 de esta guía para nombrar identificadores. No                 Adicionalmente, poder invocar un procedimiento desde
olvidar que al parámetro se debe anteponer el signo de                 otro, simplifica el dibujo de figuras simétricas. Se dice
dos puntos (:) tal como se puede apreciar en el ejemplo                que una figura es simétrica cuando al doblarla por la
3-4 (:lado).                                                           mitad sus dos partes coinciden (Casasbuenas &
                                                                       Cifuentes, 1998b). El ejemplo 3-5 en la sección
Luego de definir el nombre de un parámetro en la línea                 “Estructura Secuencial” ilustra muy bien la construcción
de título de un procedimiento (para cuadrado :lado), este              de figuras simétricas mediante la utilización de
parámetro se puede utilizar en cualquiera de las                       procedimientos que invocan a otros procedimientos.
instrucciones (ejemplo: adelante :lado).
                                                                       Cada procedimiento tiene su propia biblioteca de
En otras palabras, la línea de título del procedimiento                nombres, esta es la razón por la cual un procedimiento
cuadrado le dice a Logo que solo hay un parámetro,                     puede transferirle parámetros a otros, manteniendo los
llamado lado. En el cuerpo del procedimiento se utiliza el             valores de sus propios parámetros. Como los nombres
Mando adelante acompañado del parámetro :lado. Esta                    de    los    parámetros     son  privados,   diferentes
instrucción dibuja una línea cuya medida es igual al                   procedimientos pueden usar el mismo nombre para un
valor que contiene :lado.                                              parámetro sin que haya confusión acerca de su valor.
                                                                       Cuando Logo ejecuta un procedimiento, éste establece
Cuando en el título de un procedimiento se definen uno                 una biblioteca privada que contiene los nombres de los
o varios parámetros, estos no tienen valor. Solo cuando                parámetros que hay en la definición del procedimiento,
se ejecuta el procedimiento es que se conoce el valor de               asociados con los valores dados al momento de llamar
cada parámetro. Por esta razón, todo parámetro debe                    al procedimiento. Al ejecutarse una instrucción que
tener un nombre. Por ejemplo, al cambiar la línea de                   contiene el nombre del parámetro, el procedimiento
título del procedimiento cuadrado por la siguiente (con                busca en su biblioteca privada el valor de ese nombre.
dos parámetros):                                                       Este es el motivo por el cual el mismo nombre de
    para cuadrado :lado :ángulo                                        parámetro puede estar en dos bibliotecas distintas y
el valor del ángulo se tratará como un parámetro cuando                tener información diferente.
se invoque el procedimiento.
                                                                       Los parámetros son como "variables locales" del
En resumen, un procedimiento, internamente, es un                      procedimiento en el cual fueron definidos. La
algoritmo que resuelve en forma parcial un problema.                   importancia de los nombres de entrada privados es que
Desde el punto de vista externo es una orden o                         ofrecen la posibilidad de ejecutar un procedimiento sin
instrucción única que puede formar parte de otro                       tener que preocuparse por detalles de su definición.
procedimiento o algoritmo (Cajaraville, 1989).
                                                                       Por su parte, en Scratch no hay procedimientos con
Por otra parte, los estudiantes deben aprender a                       parámetros como en MicroMundos; sin embargo, se
distinguir entre escribir un procedimiento y ejecutarlo. La            pueden simular con las instrucciones de Control “Al
primera actividad es el resultado de las etapas de                     enviar a todos” y “Al recibir”.
análisis del problema, diseño del algoritmo y traducción
de este a un lenguaje de programación.                                                           Scratch

La segunda actividad (ejecutar un procedimiento) hay
dos formas de realizarla. La manera más simple
consiste en escribir el nombre del procedimiento en el
Centro de Mando (ver ilustración 3-2). Escribir cuadrado
100 en el Centro de Mando ejecuta el procedimiento
llamado 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 dibujar un cuadrado cuyos lados midan 60
unidades se debe escribir cuadrado 60 en el Centro de
Mando. Para dibujar un cuadrado más grande se debe
aumentar el valor del parámetro; por ejemplo:
Pág.44 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
Para ejecutar los procedimientos en Scratch basta con
hacer clic en la bandera verde ubicada en la esquina
superior derecha de la pantalla:




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.




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

Una estructura se define como un esquema con cierta                    Restricciones: La figura resultante debe ser igual en su forma a la
distribución y orden que permite representar una idea de               muestra. Las dimensiones pueden variar.
forma simplificada y que bajo ciertas condiciones es                   Procesos necesarios: la figura se puede realizar mediante tres
constante (Trejos, 1999). La estructura de control                     procedimientos. El primero, que puede llamarse simetríaCuadrado,
secuencial es la más sencilla. También se la conoce                    dibuja un cuadrado con los comandos adelante y derecha. El
como estructura lineal. Se compone de instrucciones                    segundo procedimiento (simetríaCuadricula), dibuja cuatro
que deben ejecutarse en forma consecutiva, una tras                    cuadrados utilizando el procedimiento simetríaCuadrado y el
otra, siguiendo una línea de flujo. Solamente los                      comando izquierda. El tercero (simetríaEstrella), dibuja dos veces la
problemas muy sencillos pueden resolverse haciendo                     figura que se forma con el procedimiento simetríaCuadrado; se debe
uso únicamente de esta estructura. Normalmente, la                     girar la tortuga 45 grados a la derecha luego de ejecutar
estructura secuencial hace parte de soluciones a                       simetríaCuadrado por primera vez.
problemas complejos en las que se la utiliza mezclada
con estructuras iterativas (repetir varias veces un                                         DISEÑO DEL ALGORITMO
conjunto de instrucciones) y condicionales (tomar
decisiones).




          Ilustración 3-6: Modelo de estructura secuencial.

Una estructura de control secuencial puede contener
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:

                                                                                         TRADUCIÓN DEL ALGORITMO
                                                                       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
R/.                                                                        adelante 100
                      ANÁLISIS DEL PROBLEMA                                derecha 90
Formular el problema: Ya está claramente planteado.                        adelante 100
Resultados esperados: El dibujo dado.                                      derecha 90
Datos disponibles: La figura geométrica suministrada. El análisis de       adelante 100
la figura permite establecer que está construida con varios                derecha 90
cuadrados de igual tamaño.                                             fin

Pág.46 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
simetríaCuadricula no realiza ningún dibujo, lo 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í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
    izquierda 90
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 vez, cada que es
                                                                       invocado, llama cuatro veces al procedimiento simetríaCuadrado.
                                                                       Para lograr el efecto de estrella, luego de llamar la primera vez al
                                                                       procedimiento simetríaCuadricula, se gira la tortuga 45 grados, antes
                                                                       de llamar el mismo procedimiento por segunda vez.

                                                                       Las siguientes son las instrucciones equivalentes en
                                                                       Scratch para elaborar la misma estrella:




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

Pág.47 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
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
                                                                       programación de computadores puede apoyar muy
                                                                       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).

                                                                       Por último, en este ejemplo se utilizan más comandos
                                                                       de los que realmente se requieren. Como el objetivo no
                                                                       es presentar códigos optimizados sino más bien que el
                                                                       estudiante se familiarice con los comandos disponibles,
                                                                       más adelante, cuando se vea la estructura repetitiva, el
                                                                       docente puede repetir este ejemplo y utilizar el comando
                                                                       “repetir”. Posteriormente, promover la reflexión de los
                                                                       estudiantes sobre la optimización del código y las
                                                                       múltiples maneras que hay en programación para
                                                                       realizar la misma tarea.


                                                                       EJEMPLO 3-6
       http://scratch.mit.edu/projects/jualop/42800                    Escribir un procedimiento para calcular el área de cualquier triángulo
                                                                       rectángulo. En él se debe pedir al usuario que ingrese los valores de
Muchos estudiantes logran construir la figura del                      la Altura y la Base del triángulo.
procedimiento simetríaEstrella utilizando gran cantidad                R/.
de comandos que se repiten sin estructura alguna                                              ANÁLISIS DEL PROBLEMA
(mediante experimentación). Es muy importante que                      Formular el problema: Ya está claramente planteado.
ellos reflexionen sobre las ventajas que ofrecen los                   Resultados esperados: Un procedimiento que permita calcular el
procedimientos cuando se los utiliza a manera de                       área de cualquier triángulo rectángulo.
objetos que cumplen con una función determinada                        Datos disponibles: Base y Altura del triángulo (se deben solicitar al
(dibujar un cuadrado, calcular un área, etc). Una tarea                usuario). El estudiante debe preguntarse si sus conocimientos
que debe realizarse varias veces es candidata ideal para               actuales de matemáticas le permiten resolver este problema; de no
tratarla como un procedimiento. Con la utilización de                  ser así, debe plantear una estrategia para obtener los conocimientos
parámetros se pueden cambiar algunos valores cada                      requeridos.
vez que se ejecute esa tarea. De esta manera, si                       Restricciones: Los valores de base y altura son variables y se
necesitamos dibujar varios cuadrados de diferentes                     deben solicitar al usuario.
tamaños, lo más adecuado será construir un                             Procesos necesarios: definir variables; asignar el valor 2 a la
procedimiento con el valor de Lado como parámetro y                    constante div; solicitar al usuario el valor de la altura del triángulo;
ejecutarlo varias veces asignando a este el valor del                  solicitar al usuario el valor de la base; aplicar la fórmula de área;
Lado del cuadro a dibujar, cada vez que se ejecute (ver                mostrar el resultado.
el ejemplo 3-4).
Pág.48 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
DISEÑO DEL ALGORITMO                              cada vez que se ejecute el procedimiento
                                                                       triánguloRectángulo, este le preguntará al usuario cuál
                                                                       es la altura y la base del triángulo del cual desea
                                                                       calcular su área.

                                                                       Tanto en la utilización de la estructura secuencial, como
                                                                       en las dos que veremos más adelante, es muy
                                                                       importante que los estudiantes reflexionen y determinen
                                                                       el orden de ejecución de las instrucciones (posición) ya
                                                                       que la 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 y posicional; busca la precisión, el rigor, la
                                                                       abreviación y la universalidad; y, su finalidad
                                                                       fundamental       consiste    en    obtener    resultados
                                                                       internamente consistentes (Onrubia & Rochera &
                                                                       Barbarà, 2001).

                                                                       La construcción de estructuras algorítmicas, entendidas
                                                                       estas como secuencias de instrucciones y operaciones,
                                                                       con el fin de lograr un resultado concreto, ayuda a
        TRADUCCIÓN DEL ALGORITMO EN MICROMUNDOS                        afianzar   en    los   estudiantes    el   conocimiento
para triánguloRectángulo                                               procedimental matemático. Este conocimiento se
   local "div ; declarar variables y constantes                        caracteriza por la acción (saber hacer) frente al
   local "base                                                         conocimiento declarativo que se basa en la enunciación
   local "altura                                                       (saber decir). Saber explicar (enunciar) un teorema no
   local "área                                                         garantiza que este se sepa aplicar (actuar)
   da "div 2                                                           correctamente en la solución de una situación
   pregunta [Ingrese la Altura del Triángulo] ; ingresar altura y      problemática determinada (Onrubia & Rochera &
base                                                                   Barbarà, 2001).
   da "altura respuesta
   pregunta [Ingrese la Base del Triángulo]                            Toda secuencia de acciones tiene una estructura que
   da "base respuesta                                                  debe planearse (consciente o inconscientemente) antes
   da "área :base * :altura / :div ; realizar cálculos                 de ejecutarla. Cuando la acción se realiza de manera
   anuncia frase [El Área del triángulo es:] :área ; reportar el       automática, quien actúa no es consciente de la
resultado                                                              estructura y por tanto no puede ver las correlaciones en
fin                                                                    su actuación y con el entorno de dicha acción; las
                                                                       acciones se convierten en operaciones cuando quien las
          TRADUCCIÓN DEL ALGORITMO EN SCRATCH                          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
                                                                       diferencia de un símbolo, no se parece a su significado;
                                                                       es elegido arbitrariamente y para conocer su significado
En este ejemplo, el procedimiento triánguloRectángulo                  hay que aprenderlo y fijarlo en la memoria: palabras de
también está compuesto únicamente por una estructura                   lenguajes naturales, cifras, signos algebraicos, etc. Los
secuencial de instrucciones. En ella se utilizan las                   significados se pueden codificar básicamente de cuatro
primitivas “pregunta” y “respuesta” para permitir que el               formas: mediante la palabra hablada, la palabra escrita,
usuario del programa suministre al programa los datos                  el signo gráfico, y la variable. Así, el número 2 se puede
“altura” y “base” del triángulo. De esta forma, se logra un            representar mediante el fonema “dos”, la palabra “dos”,
procedimiento generalizado para calcular el área de                    el signo “2” o “..” y la variable “a”.
CUALQUIER triángulo rectángulo. En otras palabras,
Pág.49 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
De lo anterior se puede deducir que elaborar programas                          TRADUCCIÓN DEL ALGORITMO EN SCRATCH
de computador para resolver problemas matemáticos
ofrece al estudiante la oportunidad de fijar la atención en
la estructura de las operaciones que realiza, mediante
su traducción a un sistema de signos que el computador
pueda entender. Dirigir la atención a la estructura tiene
como consecuencia que operaciones clásicas, como la
suma con números naturales, se hagan cada vez más
móviles y puedan constituir sistemas cada vez más
complejos (Aebli, 2001).
                                                                       Este es un problema muy sencillo de resolver mediante
                                                                       la utilización de una estructura secuencial. Pedir a los
EJEMPLO 3-7
                                                                       estudiantes que analicen qué tan eficiente sería utilizar
Escribir un procedimiento que muestre 3 veces en pantalla la frase
                                                                       la misma estructura si el enunciado del problema fuera:
“Esto es un camello”.
                                                                       Escribir un procedimiento que muestre 60 veces en
R/.
                                                                       pantalla la frase “Esto es un camello”. ¿Qué habría que
                    ANÁLISIS DEL PROBLEMA
                                                                       hacer si se cambiara 3 veces por 60?
Formular el problema: Ya se encuentra claramente formulado.
Resultados esperados: Que aparezca tres veces en pantalla la
frase “Esto es un camello”.
                                                                       ACTIVIDADES
Datos disponibles: La frase dada.
                                                                       1. Diseñar un algoritmo que pida al usuario dos números y calcule la
Restricciones: Ninguna.
                                                                       suma, la resta, la multiplicación y la división del primero por el
Procesos necesarios: Ninguno.
                                                                       segundo. Traducir el algoritmo al lenguaje Logo y probarlo.
                    DISEÑO DEL ALGORITMO
                                                                       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.




      TRADUCCIÓN DEL ALGORITMO EN MICROMUNDOS
para camello1
   muestra [Esto es un camello]
   muestra [Esto es un camello]
   muestra [Esto es un camello]
fin




Pág.50 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
ESTRUCTURA ITERATIVA (REPETICIÓN)

La estructura iterativa o de repetición permite ejecutar               ejemplo: repite 60 [muestra “hola]
una o varias instrucciones, un número determinado de                   donde número (60) indica las veces que se ejecutará la
veces o, indefinidamente, mientras se cumpla una                       lista-de-instrucciones ([muestra “hola]).
condición. Esta estructura ayuda a simplificar los
algoritmos, ahorrando tiempo valioso a quien resuelve                  La sintaxis de cumpleveces en MMP es:
problemas con ayuda del computador.                                          cumpleveces [serie] [lista-de-instrucciones]
                                                                       ejemplo: cumpleveces [i 8][muestra :i]
En programación existen al menos dos tipos de                          donde serie ([i 8]) indica el nombre del parámetro (i) y el
estructuras repetitivas, las cuales a su vez tienen                    número de veces (8) que se ejecutará la lista-de-
variantes en los diferentes lenguajes de programación.                 instrucciones ([muestra :i]).
La característica común es que ambos tipos permiten
ejecutar una o varias instrucciones:                                   Por su parte, la estructura repetitiva se implementa en
• un número determinado de veces.                                      Scratch con los Mandos repetir (n veces); repetir hasta
• mientras se cumpla una condición.                                    que <una condición sea verdadera>; por siempre; por
                                                                       siempre si <una condición es verdadera>:
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
estructura repetitiva. Por lo general, la mayoría de
instituciones educativas destina una o dos horas
semanales a la clase de informática, tiempo muy
limitado para cubrir todas las variantes que ofrecen los
lenguajes de programación. Ante esta situación, se
requiere concentrar esfuerzos en lograr la comprensión
de conceptos fundamentales de los tres tipos básicos de
estructura (secuencial, repetitiva y condicional). Esto
solo se consigue resolviendo una buena cantidad de
problemas cuya solución requiera de estas estructuras
en forma combinada.



                                                                       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.




          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]

Pág.51 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
DISEÑO DEL ALGORITMO                                 cuadrado cuyos lados fueran variables. Es muy probable
                                                                       que en una primera aproximación a la solución de este
                                                                       problema ellos elaboren un procedimiento similar al que
                                                                       se planteó en ese ejemplo, utilizando una estructura
                                                                       secuencial:

                                                                       para cuadrado :lado
                                                                           limpia
                                                                           cp
                                                                           adelante :lado
                                                                           derecha 90
                                                                           adelante :lado
                                                                           derecha 90
                                                                           adelante :lado
                                                                           derecha 90
                                                                           adelante :lado
                                                                       fin


         TRADUCCIÓN DEL ALGORITMO EN MICROMUNDOS                       Un análisis más elaborado de este problema permitirá a
Con el uso del comando repite:                                         los estudiantes adquirir una conciencia mayor de la
para camello2a                                                         organización global de un cuadrado. Determinar los
   repite 85                                                           elementos comunes presentes en todos los cuadrados
       [                                                               permite identificar qué permanece estático (cuatro
        muestra [Esto es un camello]                                   segmentos de recta iguales y cuatro ángulos iguales) y
      ]                                                                qué es lo que cambia (longitud de los segmentos).
fin                                                                    Aquello que cambia entre un cuadrado y otro se puede
                                                                       tratar como un parámetro. Además, este análisis permite
Ahora con el uso del comando cumpleveces:                              descubrir que es posible utilizar otro tipo de estructura
para camello2b                                                         de control para elaborar el mismo dibujo:
   cumpleveces [i 85]
     [                                                                       TRADUCCIÓN DEL ALGORITMO EN MICROMUNDOS
                                                                       para cuadrado :lado
      muestra [Esto es un camello]                                         limpia
     ]                                                                     cp
fin                                                                        repite 4
                                                                              [
                                                                              adelante :lado
        TRADUCCIÓN DEL ALGORITMO EN SCRATCH                                   derecha 90
                                                                              ]
                                                                       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
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                     Esta situación evidencia cómo en las actividades de
incidencia en la estructura del algoritmo, sea este 85 ó               programación el estudiante debe utilizar conocimientos
1385. Es muy importante que los estudiantes tengan                     adquiridos con anterioridad, cómo la etapa de análisis
muy claro la diferencia entre los procedimientos                       favorece y alienta el rigor y la disciplina en el
camello1 y camello2a.                                                  razonamiento y cómo ese análisis puede conducir a
                                                                       nuevos      descubrimientos     que      deriven    en
En el Ejemplo 3-4 se solicitó a los estudiantes dibujar un             reorganizaciones del pensamiento, reestructuraciones
                                                                       de esquemas, etc. (Dufoyer, 1991). Además, algunos
Pág.52 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
psicólogos han llegado a sugerir que la programación                         da "contador 0
alienta el estudio de las matemáticas, facilita la                           da "sumatoria 0
comprensión de conceptos de esta disciplina, admite                          repite 100
explorar activamente campos de conocimiento, permite                             [
desarrollar habilidades y ofrece un lenguaje que permite                          da "contador :contador + 1
describir la forma personal de resolver problemas.                               da "sumatoria :sumatoria + :contador
                                                                                 muestra nombres
                                                                               ]
EJEMPLO 3-9                                                                  muestra frase
Calcular el valor de la sumatoria: 1 + 2 + 3 + 4 +5 + … + 100.                  [El valor de la suma 1 + 2 + 3 + . . . + 100 es ] :sumatoria
R/.                                                                    fin
                      ANÁLISIS DEL PROBLEMA
Formular el problema: Ya se encuentra claramente formulado.            Ahora el mismo algoritmo pero con el Mando cumpleveces de
Resultados esperados: El resultado de la suma de los números           MicroMundos:
entre 1 y 100.
Datos disponibles: El rango de números dado.                           para suma100b
Restricciones: Ninguna.                                                    bnombres
Procesos necesarios: guardar el número 0 en una variable e                 da "sumatoria 0
incrementarla en 1 cada vez que se ejecute el ciclo repetitivo.            cumpleveces [contador 100 ]
Guardar 0 en otra variable e ir acumulando en ella su propio valor               [
más el valor de la primera variable.                                              da "sumatoria :sumatoria + :contador + 1
                                                                                 muestra nombres
                     DISEÑO DEL ALGORITMO                                       ]
                                                                           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
                                                                       EJEMPLO 3-10
misma (sumatoria) más otro valor variable (contador). Es muy
                                                                       La profesora Ángela Cristina necesita calcular la nota definitiva para
utilizada para acumular valores.
                                                                       cada uno de los 22 alumnos que asisten a su curso de geometría.
                                                                       Ella realizó a todos sus estudiantes, en el primer periodo del año
      TRADUCCIÓN DEL ALGORITMO EN MICROMUNDOS
                                                                       lectivo, dos exámenes y asignó un trabajo de investigación. ¿Cómo
Con el Mando repite:
                                                                       puedes ayudarle?
para suma100a
                                                                       R/.
  bnombres
Pág.53 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
ANÁLISIS DEL PROBLEMA
Formular el problema: Se requiere calcular un promedio de tres
notas para cada uno de los 22 alumnos.
Resultados esperados: La nota definitiva de cada uno de los 22
alumnos.
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
porcentaje en la nota definitiva. Tres notas por alumno y 22 alumnos.
Procesos necesarios: Para cada uno de los 22 alumnos: Leer las
tres notas, sumarlas, calcular el promedio y mostrar el promedio.

                     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 mediante la utilización de estructuras
                                                                          repetitivas. En ellos se puede apreciar claramente la
                                                                          forma como esta estructura simplifica algunas
                                                                          soluciones, en comparación con soluciones cuya
                                                                          estructura es secuencial.

                                                                          Por otro lado, la estructura repetitiva es muy apropiada
                                                                          para explorar los conceptos de multiplicación (suma
                                                                          cuyos sumandos son iguales) y potenciación
                                                                          (multiplicación de factores iguales).


         TRADUCCIÓN DEL ALGORITMO EN MICROMUNDOS                          EJEMPLO 3-11
para notas                                                                Elaborar un procedimiento para calcular tablas de multiplicar. El
  cumpleveces [estudiante 22]                                             usuario debe ingresar qué tabla de multiplicar desea.
    [                                                                     R/.
      pregunta [Ingrese la nota del primer examen ]                                            ANÁLISIS DEL PROBLEMA
      da "examenUno respuesta                                             Formular el problema: Ya se encuentra claramente formulado.
      pregunta [Ingrese la nota del segundo examen ]                      Resultados esperados: La tabla de multiplicar que el usuario
      da "examenDos respuesta                                             indique.
      pregunta [Ingrese la nota del trabajo de investigación ]            Datos disponibles: El número de la tabla (indicada por el usuario).
      da "trabajo respuesta                                               Restricciones: Ninguna.
      da "sumatoria :examenUno + :examenDos + :trabajo                    Procesos necesarios: pedir al usuario que ingrese la tabla de
      da "promedio :sumatoria / 3                                         multiplicar que desea. Guardar ese valor en una variable (tabla).
      muestra (frase [El promedio del estudiante ] :estudiante + 1 [ es   Multiplicar cada uno de los valores entre 0 y 9 por la variable tabla.
]                                                                         Mostrar el resultado de cada multiplicación.
       :promedio)
   ]
Fin

          TRADUCCIÓN DEL ALGORITMO EN SCRATCH



Pág.54 - 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
        da "resultado :multiplicando * :tabla                          multiplicación: 6 * 7; de forma similar, la multiplicación 3
                                                                                                                              4
        muestra (frase :tabla [ x ] :multiplicando [ = ] :resultado)   * 3 * 3 * 3 puede expresarse como una potencia: 3 =81.
     ]                                                                 El número 3, que se multiplica varias veces, se conoce
fin                                                                    como base; 4, la cantidad de veces que se debe
                                                                       multiplicar la base, se conoce como exponente, y 81, el
Nótese que, al igual que en el ejemplo 3-10, el reportero              resultado, se conoce como potencia. Se lee: 81 es la
frase devuelve una lista formada por sus entradas                      potencia de 3 elevado a la 4.
(palabras o listas). frase puede tomar más de dos
entradas cuando se utilizan paréntesis para encerrar el                Existe una leyenda muy antigua sobre el origen del
reportero y sus entradas, las cuales pueden incluir texto              juego de ajedrez. La leyenda evidencia claramente la
entre corchetes:                                                       velocidad con que aumenta una progresión geométrica y
muestra (frase [texto 1] :variable1 [ texto2] :variable2 + 1           es un buen punto de partida para empezar a resolver
:variable3 [texto3])                                                   problemas de potenciación con ayuda del computador.

                                                                       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.
                                                                       Algún tiempo después, el rey mandó llamar a su presencia al joven
                                                                       bracmán y dirigiéndose a él le dijo:
Pág.55 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
- Quiero recompensarte, amigo mío, por este maravilloso obsequio,                               ANÁLISIS DEL PROBLEMA
que de tanto me sirvió para aliviar viejas angustias. Pide, pues, lo      Formular el problema: Es un problema de multiplicaciones de
que desees, para que yo pueda demostrar, una vez más, como soy            factores iguales que pueden expresarse en forma de potencias;
de agradecido con aquellos que son dignos de una recompensa.              además, para llegar al resultado final se deben acumular los
Ante tal ofrecimiento, el joven respondió:                                resultados parciales.
- Voy, pues, a aceptar por el juego que inventé, una recompensa que       Resultados esperados: El número de granos que el Rey Ladava
corresponda a vuestra generosidad; no deseo, sin embargo, ni oro,         debe entregar a Lahur Sessa.
ni tierras, ni palacios. Deseo mi recompensa en granos de trigo.          Datos disponibles: El número de cuadros del tablero de ajedrez
-¿Granos de trigo? –exclamó el rey, sin ocultar la sorpresa que le        (64) y la regla dada por Sessa: “un grano de trigo por la primera
causara semejante propuesta-. ¿Cómo podré pagarte con tan                 casilla del tablero, dos por la segunda, cuatro por la tercera, ocho
insignificante moneda?                                                    por la cuarta, y así sucesivamente hasta la sexagésima cuarta y
-Nada más simple -aclaró Sessa-. Dadme un grano de trigo por la           última casilla del tablero”.
primera casilla del tablero, dos por la segunda, cuatro por la tercera,   Restricciones: Aplicar la regla planteada por Sessa.
ocho por la cuarta, y así sucesivamente hasta la sexagésima cuarta        Procesos necesarios: Un ciclo que se repita 64 veces. En cada
y última casilla del tablero.                                             iteración se debe acumular en una variable (granos), su propio valor
No sólo el rey, sino también los visires y venerables bracmanes, se       más el resultado de 2 elevado a un exponente que aumenta su valor
rieron estrepitosamente al oír la extraña solicitud del joven.            en uno con cada iteración.
Insensato -exclamó el rey-. ¿Dónde aprendiste tan grande
indiferencia por la fortuna? La recompensa que me pides es ridícula.                          DISEÑO DEL ALGORITMO
Mando llamar el rey a los algebristas más hábiles de la Corte y les
ordenó calculasen la porción de trigo que Sessa pretendía.
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.                                             TRADUCCIÓN DEL ALGORITMO EN MICROMUNDOS
(Tomado del libro “El hombre que calculaba” escrito por Malba             Utilizando el comando repite:
Tahan)                                                                    para ajedrez
                                                                            bnombres
                                                                            da "exponente 1
EJEMPLO 3-12                                                                da "granos 0
Elaborar un procedimiento para ayudar a los hábiles algebristas de la       repite 64
corte del Rey Ladava con el cálculo del número de granos de trigo                [
que deben entregar a Lahur Sessa como pago por haber inventado                     da "granos :granos + potencia 2 :exponente
el juego de ajedrez.                                                              da "exponente :exponente + 1
R/.                                                                               muestra nombres
                                                                                ]
Pág.56 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
muestra frase
       [El número de granos que ganó Sessa es ] :granos                3. Elaborar un procedimiento que le reporte al electricista de un
fin                                                                    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.
            TRADUCCIÓN DEL ALGORITMO EN SCRATCH
                                                                       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
Los estudiantes deben encontrar solución a los siguientes problemas
empleando la metodología expuesta en la Unidad 1: Analizar el
problema (formulación del problema, resultados esperados, datos
disponibles, restricciones y procesos necesarios), diseñar el
algoritmo, traducirlo al lenguaje Logo y probar el programa
resultante.

1. Elaborar un procedimiento que calcule y muestre las áreas de 100
círculos con radio de 1 a 100 cm.

2. Elaborar un procedimiento que calcule y muestre el cuadrado de
los números 1 a 90.
Pág.57 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
ESTRUCTURA CONDICIONAL

Es fundamental que los estudiantes presten atención
especial a las estructuras que utilizan para resolver                  Por su parte, un bloque de instrucciones puede contener
problemas y las reconozcan para lograr mayor control                   una o varias instrucciones que se ejecutan una detrás
sobre la solución planteada. De esta manera, la                        de otra. La estructura condicional tiene tres variantes:
programación de computadores les ayuda a planear                       • selección simple.
conscientemente las secuencias de acciones que                         • selección doble.
resuelven un problema planteado y las estructuras                      • selección múltiple.
involucradas en una solución dada.
                                                                       Las estructuras condicionales simple y doble evalúan
La estructura condicional se utiliza para indicarle al                 una proposición (condición) que devuelve como
computador que debe evaluar una condición y, a partir                  resultado únicamente dos valores posibles y
del resultado, ejecutar el bloque de instrucciones                     excluyentes: verdadero o falso. En cambio, la estructura
correspondiente. La forma más común está compuesta                     condicional de selección múltiple permite que la
por una proposición (condición) que se evalúa y dos                    condición devuelva más de un valor posible y que para
bloques de instrucciones que se ejecutan, uno cuando la                cada uno de esos valores se ejecute el bloque de
condición es verdadera (selección simple y doble) y otro               instrucciones correspondiente. Por ejemplo, una
cuando ésta es falsa (únicamente en la selección doble).               situación típica de selección múltiple es cuando la
Algunos autores se refieren a este tipo de estructura                  incorporación al ejercito, de un joven al terminar sus
como estructura de selección, estructura selectiva o                   estudios de educación media, depende del color de una
estructura de decisión; en esta guía, todas estas                      balota: si saca una balota roja, su incorporación al
denominaciones son consideradas sinónimas.                             ejercito es inmediata; si es azul, la incorporación será en
                                                                       julio; y si es blanca, el estudiante no debe prestar
Para que una proposición (frase declarativa) sea valida,               servicio militar. En esta situación hay tres valores
debe poder afirmarse que es verdadera o falsa. En                      posibles y cada uno de esos valores implica la ejecución
programación, se utilizan operadores relacionales (<, =,               de una instrucción diferente (Jiménez, 2002).
>) para establecer la relación que existe entre dos
elementos de la proposición. Por ejemplo, “La                          Debido al alcance de esta guía, solo se cubren aquí los
calificación de Esteban en Historia es mayor que 6.0”, es              dos primeros tipos de estructura condicional: simple y
una proposición valida. De una parte tenemos “La                       doble.
calificación de Esteban en Historia” (A) y, de la otra, el
valor “6.0” (B); de A con respecto a B, se afirma que “A
es mayor que B”, por lo tanto, la relación existente entre             Selección simple
A y B es “ser mayor que”. Para que el computador                       La estructura condicional de selección simple ejecuta un
entienda esta proposición, debe expresarse así:                        bloque de instrucciones cuando la proposición
“:calificación > 6.0”, donde :calificación es la variable              (condición) es verdadera; si esta es falsa, no hace nada.
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



Adicionalmente, las proposiciones pueden ser sencillas
o compuestas. Las proposiciones compuestas se forman
con dos o más proposiciones sencillas unidas por
operadores lógicos (y, o, no). Cuando se unen dos
proposiciones por medio del operador lógico “y”,                             Ilustración 3-9: Modelo de estructura condicional simple.
significa que ambas proposiciones deben ser
verdaderas (conjunción). Cuando se unen dos                            Para la estructura condicional de selección simple,
proposiciones por medio del operador lógico “o”,                       MicroMundos ofrece el comando “si”. La sintaxis es:
significa que por lo menos una de las dos proposiciones
debe ser verdadera (disyunción).                                              si cierto-o-falso
Pág.58 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
[                                                          forma que se aprecie muy claramente dónde inicia y
                lista-de-instrucciones                                 dónde termina una lista-de-instrucciones.
        ]

el comando “si” ejecuta la lista-de-instrucciones                      Selección doble
únicamente si al evaluarse la proposición, esta devuelve               La estructura condicional de selección doble ejecuta un
cierto (verdadero).                                                    bloque de instrucciones (A) cuando la proposición
                                                                       (condición) es verdadera y un bloque diferente (B)
Por su parte, la estructura condicional de selección                   cuando esta es falsa.
simple se implementa en Scratch con el bloque “si”
(condición):




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                                                          lista-de-instrucciones-B
    pregunta [Ingrese el á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-instrucciones-
           da "reportar [ es un ángulo recto]                          B. Ambas listas de instrucciones se deben indicar entre
           muestra frase :ánguloUno :reportar                          corchetes [ ] y pueden estar compuestas por una o más
        ]                                                              instrucciones.
fin
                                                                       En Scratch, la estructura condicional de selección doble
En este ejemplo, cierto-o-falso (:ánguloUno = 90) indica               se implementa con el bloque “si (condición) si no”:
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.

Además, se puede observar un recurso gráfico muy                       EJEMPLO 3-14
importante para dar claridad a las líneas de código de                 para selecciónDoble
los procedimientos en MicroMundos: (1) dejar líneas en                   pregunta [Ingrese el ángulo]
blanco para dividir bloques de código; (2) utilizar                      da "ánguloUno respuesta
sangrías para indicar porciones de código subordinadas                   siotro (:ánguloUno = 90)
a un comando; (3) abrir y cerrar los corchetes que                           [
indican bloques de código en una línea a parte, de tal                        da "reportar [ es un ángulo recto]

Pág.59 - 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
        [                                                                 bloque que se debe ejecutar.
         da "reportar [ NO es un ángulo recto]
       ]
      muestra frase :ánguloUno :reportar                               EJEMPLO 3-15
fin                                                                    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 contrario, reportar
                                                                       “Reprobado”.

                                                                                            DISEÑO DEL ALGORITMO
En este ejemplo, cierto-o-falso (:ánguloUno = 90) indica
la proposición que se debe evaluar, la cual solo puede
devolver uno de dos valores posibles: verdadero o falso.
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-de-
instrucciones-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                                   TRADUCCIÓN DEL ALGORITMO EN
   vayan las palabras reservadas si            y siotro                                            MICROMUNDOS
   respectivamente.                                                    para aprueba
• En MicroMundos, cuando la proposición es sencilla                       local "calificación
   (sin operadores lógicos) no es necesario que vaya                      pregunta [Ingrese la Calificación]
   entre paréntesis; si es compuesta (dos o más                           da "calificación respuesta
   proposiciones unidas con operadores lógicos como:                      siotro o :calificación > 6.0 :calificación = 6.0
   o, y, no) tiene que encerrarse con paréntesis. Como                         [
   en el primer caso no sobran los paréntesis (no                               anuncia [Aprobado]
   genera error), es recomendable utilizarlos siempre.                        ]
   Por ejemplo: (ánguloUno = 90) es una proposición                           [
   sencilla equivalente a ánguloUno = 90, pero es mejor                        anuncia [Reprobado]
   utilizar la primera forma.                                               ]
• En MicroMundos, las listas de instrucciones deben                    fin
   estar agrupadas con corchetes, estos indican dónde
Pág.60 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
proposiciones simples y compuestas (calificables como
   TRADUCCIÓN DEL ALGORITMO EN SCRATCH                                 falsas o verdaderas).

                                                                       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.

En este ejemplo, se puede observar la sintaxis de los                  c. ________________ calle perfecta para perro azul.
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
abre la proposición:                                                   f. ________________ el nevado del Ruiz es un volcá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.

Proposiciones                                                          j. ________________ Perú y Chile son países Iberoamericanos.
Según Piaget (1993), las operaciones verbales o                        k. ________________ el cuaderno verde de geometría.
proposicionales surgen hacia los once o doce años con                  l. ________________ está permitido subir las escaleras.
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                    n. ________________ si alguien es chileno, entonces es español.
niños entre los once y los catorce años piensen en
                                                                       o. ________________ hace mucho frío
términos de proposiciones y no únicamente sobre
objetos; acepten cualquier tipo de dato como puramente                 p. ________________ en un lugar de la Mancha de cuyo nombre
hipotético y razonen correctamente a partir de él;                     q. ________________ ojalá no me llame.
deduzcan las implicaciones de enunciados posibles y                    r. ________________ apague la luz cuando salga.
así distingan entre lo posible y lo necesario; formulen
todas las hipótesis posibles relativas a los factores que
entran en juego en una actividad y organicen la                        Un curso de algoritmos y programación puede contribuir
                                                                       significativamente a desarrollar la capacidad hipotética-
información en función de estos factores.
                                                                       deductiva en la que el pensamiento no proceda de lo
De acuerdo con Piaget y sus seguidores, es en este                     real a lo teórico, sino que parta de la teoría y establezca
estado del desarrollo cognitivo en el que se constituye                o      verifique   relaciones     reales    entre    cosas.
                                                                       Concretamente, dos tipos de actividades pueden ayudar
un conjunto de estructuras proposicionales basadas en
                                                                       a lograr este propósito: utilizar estructuras condicionales
lo que en teoría de conjuntos se llama un "conjunto de
todos los subconjuntos". Esta estructura está                          las cuales están basadas en la operación de implicación
conformada por operaciones equivalentes a ciertas                      (si...., entonces...) y formular enunciados declarativos
estructuras del pensamiento verbal,              tales como            compuestos (proposiciones simples unidas por los
implicación (p -> q: si..., entonces...; si la hipótesis p es          conectores lógicos “y”, “ó”) que el computador pueda
                                                                       evaluar como verdaderos o falsos. Adicionalmente,
verdadera, entonces la consecuencia q se sigue
                                                                       estos enunciados promueven el razonamiento por
necesariamente); disyunción (p V q; ó p, ó q, ó los dos);
unión (p ^ q); incompatibilidad (p | q).                               atribución o relación (Felipe es más joven que Ángela)
                                                                       en contraposición al razonamiento por predicados
Una forma efectiva para iniciar a los estudiantes más                  (Felipe es joven).
pequeños en el tema de las proposiciones puede ser la
                                                                       Precisamente, la estructura condicional utilizada en
propuesta por Marquínez & Sanz (1988): empezar con
cadenas de palabras (sin sentido), avanzar a                           programación (si... entonces...) ofrece al estudiante
expresiones (con sentido incompleto), continuar con                    oportunidades para desarrollar habilidades con
oraciones (con sentido completo) y finalizar con                       proposiciones y relaciones de orden. Sin embargo hay
                                                                       que tener en cuenta que la construcción “si P entonces
Pág.61 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
S”, que utilizan los lenguajes de programación                         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                       A es mayor que B       (:a > :b)
frase declarativa que puede ser afirmada o negada" y
para Iranzo (2005) la lógica proposicional "se ocupa de
                                                                       A es mayor o igual (o :a > :b :a = :b)
los enunciados declarativos simples como un todo
                                                                       que B
indivisible y que pueden combinarse mediante partículas
lógicas denominadas conectores (no, y, o, si...                        A es como mínimo (o :a > :b :a = :b)
entonces..., etc)". A esta lógica también se le conoce                 igual a B
con el nombre de lógica de enunciados o lógica de
conectores. De acuerdo con estos dos autores, los                      A es menor que B       (:a < :b)
siguientes enunciados declarativos se pueden negar o
afirmar, por lo tanto pueden considerarse proposiciones:               A es menor o igual (o :a < :b :a = :b)
                                                                       que B
1. Cali es la capital del Valle del Cauca.
                                                                       A es al       menos (o :a < :b :a = :b)
2. El cuatro es un número impar.
                                                                       igual a B
3. Seis es menor que doce.
4. El INSA es un colegio regentado por la comunidad                    A está entre 0 y 10 (y :a > 0 :a < 10)
   de Padres Basilianos.
5. Andrés Pastrana es el presidente de Colombia.
6. Es verano                                                           A está entre 0 y (y (o :a > 0 :a = 0) (o :a < 10 :a =
7. Hace calor                                                          10, inclusive    10))

De las proposiciones primera, tercera, cuarta y quinta
podemos decir que son verdaderas y de la segunda                       Un aspecto fundamental de la estructura condicional es
podemos afirmar que es falsa. Sin embargo, para poder                  la reflexión sobre el papel del lenguaje natural en la
afirmar que la cuarta proposición es verdadera, hay que                formulación y uso de relaciones de orden y de
disponer del conocimiento suficiente sobre este colegio                proposiciones. Diversos autores que se han ocupado de
ubicado en el barrio Andrés Sanín en la ciudad de Cali.                la lógica y el lenguaje han establecido tres categorías
Esto nos conduce a hacer otra consideración: establecer                generales para el uso del lenguaje: informativa
explícitamente si una proposición es verdadera o falsa                 (suministra     información     definiendo,   declarando,
puede resultar en algunos casos muy difícil o imposible.               aclarando,       describiendo),     expresiva   (expresa
Por otra parte, la quinta proposición fue verdadera                    sentimientos, emociones, deseos) y directiva (busca
durante un lapso de tiempo (1998-2002).                                inducir a alguien a que haga u omita algo). Son ejemplos
                                                                       de cada una de estas categorías lo siguiente:
En relación a las proposiciones sexta y séptima, su valor              Uso informativo:
de verdad depende del momento en el cual se haga la                         • La línea recta es la más corta entre dos punto
afirmación. Esto nos lleva a otra forma de clasificar los                       de un plano.
enunciados declarativos: de acción cuando el sujeto no                      • Colombia es un país andino
está determinado (6 y 7); de atribución cuando el sujeto                    • Los noruegos son altos, delgados y de ojos
es determinado y se le atribuye una propiedad (1, 2 y 5);                       azules.
y de relación cuando hay dos o más sujetos (3 y 4).                    Uso expresivo:
                                                                            • Ojalá haga buen día mañana!
Con respecto a las relaciones de orden podemos decir                        • Qué horror! no podría soportar algo tan
que consisten en un par de elementos presentes en una                           doloroso.
proposición relacionados por medio de un atributo                      Uso directivo:
gradado. Por ejemplo, “el elemento A es mayor o igual                       • Prohibido fumar
que el elemento B” o “seis es menor que doce”.                              • Cierre la puerta
Proposiciones en las cuales “mayor o igual que” y                           • Se solicita comportarse bien
“menor que” son las relaciones de orden que se
establecen entre los elementos A y B, y entre seis y
Pág.62 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
Para la programación y en especial para la estructura                  También hay que tener cuidado cuando se quiere
condicional, resulta imprescindible el uso informativo del             comparar un texto conformado por dos o más palabras,
lenguaje. Este se encarga de comunicar información                     este debe encerrarse entre barras (|palabra1
mediante la formulación y afirmación o negación de                     palabra2|).
proposiciones. El discurso informativo se utiliza para
describir el mundo y para razonar sobre él, sin importar
si las proposiciones son importantes o no, si son                      Otro aspecto a tener en cuenta con las proposiciones y
generales o específicas, o si son verdaderas o falsas                  que se debe trabajar con los estudiantes es la riqueza
(Copi & Cohen, 2000).                                                  del lenguaje natural (Marquínez & Sanz, 1998). Por
                                                                       ejemplo, el conector lógico "y" (^) se presenta de
Los estudiantes deben estar en capacidad de distinguir                 diversas formas en el lenguaje común utilizado para
el discurso informativo en un texto o en el planteamiento              formular problemas y los estudiantes deben aprender a
verbal de un problema. Pero en ciertos textos o                        identificarlo:
planteamientos resulta difícil identificar de manera
inmediata la existencia de proposiciones que se puedan                 •   Cali Y Medellín son ciudades ecuatorianas.
contestar con un “verdadero” o con un “falso” (Solano,                 •   Bogotá, Quito, Lima, Montevideo son ciudades
1991). En lenguajes de programación como Logo es                           capitales (Bogotá es ciudad capital Y Quito es
muy importante que las proposiciones se puedan                             ciudad capital Y Lima es ciudad capital Y
expresar directamente, en forma de notación                                Montevideo es ciudad capital)
matemática o mediante texto. Para ello, es fundamental                 •   Luisa estudia, Cristina también (Luisa estudia Y
que los estudiantes identifiquen los componentes de las                    Cristina estudia)
proposiciones (enunciados y relación entre ellos) y                    •   En Bogotá hace frío, IGUALMENTE en Tunja (En
verifiquen que sean validos. Luego determinen en cada                      Bogotá hace frío Y en Tunja hace frío)
proposición el sujeto (objetos o individuos acerca de los              •   En Bogotá hace frío, DEL MISMO MODO en Tunja
cuales se afirma algo) y el predicado (propiedad que                       (En Bogotá hace frío Y en Tunja hace frío)
posee el sujeto) y en seguida identifiquen con un                      •   En Bogotá hace frío, MIENTRAS QUE en Cartagena
nombre (identificador) al que puede variar (sujeto o                       calor (En Bogotá hace frío Y en Cartagena hace
predicado).                                                                calor)
                                                                       •   Ángela tiene un automóvil, PERO no sabe manejarlo
Por ejemplo, en la proposición número 1 “Cali es la                        aún (Ángela tiene automóvil Y Ángela no sabe
capital del Valle del Cauca”, el sujeto es “Cali”, el                      manejar automóvil)
predicado es “capital del Valle del Cauca” y la relación
                                                                       •   Luisa no viene, SIN EMBARGO escribe correos
es de igualdad “es”. Se debe asignar un nombre al
                                                                           electrónicos todos los días (Luisa no viene Y Luisa
predicado (capitalValle) para guardar el valor “Cali”. En
                                                                           escribe correos electrónicos todos los días)
el caso de la proposición “Seis es menor que doce”, el
                                                                       •   Esteban no estudia, NO OBSTANTE quiere hacerlo
sujeto es “Seis”, el predicado es “doce” y la relación es
                                                                           (Esteban no estudia Y Esteban quiere estudiar)
“menor que”.
                                                                       •   A PESAR DEl buen tiempo, no vamos a la piscina
Por otra parte, de las siete proposiciones planteadas,                     (Hace buen tiempo Y no vamos a piscina)
solo la número tres se puede expresar en notación                      •   PESE A QUE lo sabe, no lo puede decir (Él lo sabe
matemática; la otras proposiciones hay que expresarlas                     Y él no lo puede decir)
como texto, con excepción de la número 2 que no se                     •   En Cali no hay energía eléctrica, TAMPOCO en
puede expresar directamente:                                               Bogotá (En Cali no hay energía eléctrica Y en
1. (:capitalValle = "Cali)                                                 Bogotá no hay energía eléctrica)
2. “El cuatro es un número impar” no se puede
    expresar directamente. Hay que elaborar un                         Lo mismo ocurre con la determinación de si una
    procedimiento para determinar si un número es par                  proposición está expresada en afirmativo o en negativo:
    o impar.                                                           • Colombia NO es un país europeo.
3. (6 < 12)                                                            • El Nilo es un río Incontrolable (El Nilo es un río que
4. (:rectorINSA = "Basiliano)                                              NO se puede controlar)
5. (:presidenteColombia = "|Álvaro Uribe|)                             • La vida humana en Marte es Imposible (NO es
6. (:verano = true)                                                        posible la vida humana en Marte)
7. (:haceCalor = false)                                                • Luisa es una diseñadora DESconocida (Luisa NO es
                                                                           conocida como diseñadora)
                                                                       • La aparición de cometas es un fenómeno
TIP                                                                        DIScontinuo (NO es continua la aparición de
Hay que tener cuidado cuando se copia de un                                cometas)
procesador de texto una porción de texto que contenga                  • Los animales son Amorales (Los animales NO
comillas (“) y se pega en el área de procedimientos de                     tienen moral)
MicroMundos [4]. Las comillas (“) que generan estos                    • Los castigos son ANTIpedagógicos (NO son
programas no son equivalentes a las comillas de                            pedagógicos los castigos)
MicroMundos [4] (").
Pág.63 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
•   NUNCA me ganó la lotería (NO me he ganado la                       g. El valor de una calificación no puede exceder a 10
    lotería)                                                           h. La capital de Colombia es Bogotá
•   Ricardo JAMÁS miente (Ricardo NO ha mendido)                       i. 4 y 8 son números menores que 10
•   NINGÚN hombre colombiano usa falda (Los
    hombres colombianos NO usan falda)*
                                                                       EJEMPLO
* Es una afirmación falsa ya que los hombres colombianos de la etnia   Supongamos que Mónica quiere ir a comer helado y su padre le
guambiana si usan falda.                                               propone: “Como hoy entregan tus calificaciones del segundo
                                                                       período, si haz obtenido en matemáticas más de 8.0, vamos a comer
Un último aspecto a tener en cuenta son los                            helado el próximo sábado, de lo contrario no vamos”. La situación
cuantificadores    que    se    utilizan   en    algunas               “comer helado” está sujeta a la condición “obtener más de 8.0 en
proposiciones: todos, algunos, ningún, ninguno, sólo,                  matemáticas para el segundo período”.
hay, etc. Incluso, proposiciones que no contienen                      R/.
cuantificadores se pueden transformar en proposiciones                 ANÁLISIS DEL PROBLEMA
cuantificadas: “Cada planeta gira sobre su eje” se puede               Formular el problema: Es un problema sencillo de selección doble.
escribir como “todos los planetas giran sobre su eje”                  Resultados esperados: Un aviso que indique si el estudiante puede
(Melo, 2001).                                                          ir a comer helado el próximo sábado o no.
                                                                       Datos disponibles: La calificación de matemáticas ingresada por el
                                                                       usuario. La regla dice: para ir a comer helado, la nota debe ser
ACTIVIDADES                                                            mayor que 8.0.
1. Identificar cuál(es) de las siguientes proposiciones                Restricciones: Aplicar la regla dada.
son validas (calificables), explicar por qué son validas o             Procesos necesarios: Solicitar al usuario que ingrese la calificación
por qué no lo son:                                                     de matemáticas. Evaluar si la calificación es igual o inferior a 8.0; en
a. El año 1200 aC. es más reciente que el año 970 de                   caso de ser verdadero, reportar “NO come helado”; en caso
    la era Cristiana                                                   contrario, reportar “SI come helado”.
b. El jugo de lulo tiene muy buen sabor
c. La nota máxima en un examen es 10                                                        DISEÑO DEL ALGORITMO
d. Esteban es alto
e. Ojalá que no llueva mañana
f. ¿Podría decirme, por favor, qué hora es?
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).                                                                          TRADUCCIÓN DEL ALGORITMO EN MICROMUNDOS
a. 7.0 es menor o igual que 20.5                                       para helado
b. El ánguloUno es mayor que 90                                           local "matemáticas
c. La calificación de Juan Felipe en Historia es menor                    pregunta [Ingrese la calificación de Matemáticas]
    que 5.0                                                               da "matemáticas respuesta
d. Cali y Medellín son ciudades colombianas                               siotro (o :matemáticas < 8.0 :matemáticas = 8.0)
e. 4 y 8 son números menores que 10                                            [
f. La capital de Colombia es Bogotá                                             anuncia [NO come helado]
                                                                              ]
4. Expresar las siguientes proposiciones en un formato                        [
que pueda entender un computador.                                              anuncia [SI come helado]
a. 7.0 es menor o igual que 20.5                                             ]
b. El ánguloUno es mayor que 90                                        fin
c. El jugo de lulo tiene muy buen sabor
d. La calificación de Juan Felipe en Historia es menor                           TRADUCCIÓN DEL ALGORITMO EN SCRATCH
    que 5.0
e. Esteban es alto
f. El valor de una calificación no puede ser mayor que
    10
Pág.64 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
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                            TRADUCCIÓN DEL ALGORITMO EN MICROMUNDOS
en el enunciado del problema.                                            para notasDos
                                                                          cumpleveces [estudiante 22]
EJEMPLO                                                                     [
La profesora Ángela Cristina necesita calcular la nota definitiva para        pregunta [Ingrese la nota del primer examen ]
cada uno de los 22 alumnos que asisten a su curso de geometría,               da "examenUno respuesta
con el fin de saber quiénes aprobaron y quiénes reprobaron (para              pregunta [Ingrese la nota del segundo examen ]
aprobar hay que obtener una nota igual o superior a 6.5). Ella realizó        da "examenDos respuesta
a todos sus estudiantes, en el primer periodo del año lectivo, dos            pregunta [Ingrese la nota del trabajo de investigación ]
exámenes y asignó un trabajo de investigación. ¿Cómo puedes                   da "trabajo respuesta
ayudarle?                                                                     siotro (o :examenUno < 1 :examenUno > 10 :examenDos < 1
R/.                                                                                       :examenDos > 10 :trabajo < 1 :trabajo > 10)
ANÁLISIS DEL PROBLEMA                                                            [
Formular el problema: Se requiere calcular un promedio de tres                     anuncia [Datos no validos ]
notas para cada uno de los 22 alumnos.                                           ]
Resultados esperados: La nota definitiva de cada uno de los 22                   [
alumnos y un aviso que indique si aprobó o no.                                     da "sumatoria :examenUno + :examenDos + :trabajo
Datos disponibles: El número de alumnos: 22. Las notas de cada                     da "promedio :sumatoria / 3
alumno las debe digitar la profesora.                                              siotro (:promedio < 6.5)
Restricciones: Cada una de las tres notas tienen el mismo                              [
porcentaje en la nota definitiva. Tres notas por alumno y 22 alumnos.                    da "aprobar [ -> NO aprobó el primer periodo de
Todas las notas deben ser mayores o iguales a 1 y menores o              Geometría ]
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                           da "aprobar [ -> SI aprobó el primer periodo de
tres notas, verificar que estén en el rango permitido (entre 1 y 10),    Geometría ]
sumarlas, calcular el promedio, verificar si aprobó o no. Mostrar el                  ]
promedio y un aviso que informe si aprobó o no.
Pág.65 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
muestra (frase [El promedio del estudiante ] :estudiante + 1                      DISEÑO DEL ALGORITMO
[ es ]
                             :promedio :aprobar)
          ]
      ]
fin

                TRADUCCIÓN DEL ALGORITMO EN SCRATCH




                                                                                    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
Nótese que en este ejemplo se evalúa si la proposición                        da "EsRectangulo "NO ;inicializa la variable TIPO en NO
compuesta es verdadera entonces los datos no son
validos. Como se utiliza el operador lógico “o”, basta con                      ;si uno de los ángulos es igual a 90 cambia el valor de TIPO a
que una de las proposiciones sea verdadera para que                          SI
toda la proposición compuesta también lo sea.                                 si :ANGULO1 = 90 [da "EsRectangulo "SI]
Adicionalmente, en la traducción a Scratch se utilizan                        si :ANGULO2 = 90 [da "EsRectangulo "SI]
estructuras condicionales anidadas (ver la sustentación                       si :ANGULO3 = 90 [da "EsRectangulo "SI]
educativa del uso de estructuras anidadas al final de
esta sección).                                                                  ;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                    anuncia [SI es un Triángulo Rectángulo]
á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”.                           anuncia [NO es un Triángulo Rectángulo]
                                                                                   ]
                                                                             fin

Pág.66 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
DISEÑO DEL ALGORITMO
          TRADUCCIÓN DEL ALGORITMO EN SCRATCH




                                                                                  TRADUCCIÓN DEL ALGORITMO EN MICROMUNDOS
                                                                         para triangulo
                                                                            local "ANGULO1
                                                                            local "ANGULO2
                                                                            local "ANGULO3
                                                                            pregunta [Ingrese el 1er Ángulo del Triángulo]
                                                                            da "ANGULO1 respuesta
                                                                            pregunta [Ingrese el 2do Ángulo del Triángulo]
En este ejemplo se evalúa una a una las proposiciones                       da "ANGULO2 respuesta
para determinar sí uno de los ángulos es igual a 90.                        da "ANGULO3 180 - :ANGULO1 - :ANGULO2
Nótese que la variable esRectángulo se inicializa con el                    siotro (o :ANGULO1 = 90 :ANGULO2 = 90 :ANGULO3 = 90)
valor “NO”, en caso de que cualquiera de los ángulos                           [
sea igual a 90, entonces la variable esRectangulo se                             anuncia [SI es un Triángulo Rectángulo]
cambia a “SI”. Finalmente se evalúa el valor resultante                        ]
de esta variable para mostrar el mensaje “si” o “no” es                        [
un triángulo rectángulo.                                                         anuncia [NO es un Triángulo Rectángulo]
                                                                               ]
                                                                         fin
EJEMPLO                                                                              TRADUCCIÓN DEL ALGORITMO EN SCRATCH
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”. Utilizar
operadores lógicos en la solución.




Pág.67 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
Esta es una solución más simple, corta y elegante que la               haber realizado aportes por más de 20 años".
hallada en el ejemplo anterior. La utilización del
operador lógico “o” permite evaluar en una sola                        Para resolver este problema se puede plantear la
instrucción si alguno de los ángulos vale 90. Un                       siguiente inclusión de clases: edad(A) < género(B) <
problema inesperado a plantear a los estudiantes                       aportes(C).
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.


ACTIVIDAD
Tomando como base el ejemplo anterior, realizar las
modificaciones necesarias para que adicionalmente, el
programa muestre en pantalla “No es un Triángulo” en
caso de que cualquiera de los ángulos sea menor o
igual a cero.



Estructuras condicionales anidadas
Hay situaciones que requieren el uso de estructuras
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,
hasta agotar todas las condiciones.

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, C-
B'=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').

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




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

CUANDO SE PRESENTAN PROBLEMAS

                                                                       Depuración
                                                                       La corrección de fallas es una de las situaciones que
                                                                       mayor frecuencia tienen en el mundo profesional. Con
                                                                       esta actividad se intenta identificar fallas sintácticas o
                                                                       lógicas en programas que no funcionan adecuadamente;
                                                                       una vez aislada la falla, esta se soluciona y se vuelve a
                                                                       probar el programa y a validar los resultados. Según
                                                                       Jonassen (2003), para corregir fallas efectiva y
                                                                       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,
       Ilustración 4-1: Cuarta fase del ciclo de programación.         dónde y por qué aplicar procedimientos de solución de
                                                                       fallas y actividades de prueba).
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                         Fallas de sintaxis
traducir el algoritmo en un lenguaje de programación, el               Este tipo de fallas solo se presenta en MicroMundos ya
procedimiento resultante debe ser probado y los                        que el entorno de programación de Scratch es gráfico y
resultados validados (revisión). A este proceso se le                  los estudiantes no deben escribir el código. Además, los
conoce como depuración y contribuye a mejorar en los                   bloques con las instrucciones son autoencajables, por
estudiantes la capacidad para resolver problemas                       tanto no es posible ubicar un bloque de manera que se
puesto que la depuración basada en la retroalimentación                generen fallas de sintaxis.
es una habilidad útil para toda la vida (Stager, 2003).
                                                                       Las fallas sintácticas son las más sencillas de identificar
La depuración de un procedimiento hace parte                           ya que el entorno de programación indica dónde se ha
fundamental del ciclo de programación y desde el punto                 producido el error y de que tipo es. Por ejemplo,
de vista educativo estimula en los estudiantes la                      MicroMundos reportará el error “valorDos no tiene valor
curiosidad, la perspectiva, la comunicación y promueve                 en prueba” cuando, en el procedimiento “prueba”, se
valores como responsabilidad, fortaleza, laboriosidad,                 intenta mostrar el contenido de la variable “valorDos” sin
paciencia y perseverancia. La programación facilita un                 haberla asignado antes.
diálogo interior en el cual la retroalimentación constante
y el éxito gradual empujan a los alumnos a ir más allá de              En caso de presentarse una falla de sintaxis, el
sus expectativas (Stager, 2003).                                       estudiante debe:
                                                                       • Comprender el mensaje de error que reporta el
Otras dos actividades relacionadas con esta etapa, que                    ambiente de programación (apoyarse en las opciones
no se tratarán en esta guía, son la afinación y la                        de ayuda que ofrece MicroMundos o en el docente).
documentación. La primera consiste en realizar retoques                • Examinar el código del programa para identificar en
para lograr una mejor apariencia del programa (en                         cuál instrucción se encuentra la falla
pantalla o en los resultados impresos) o para ofrecer
                                                                       • Corregir la falla
funcionalidades más allá de los resultados esperados,
                                                                       • Probar el programa de nuevo
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
                                                                       EJEMPLO 4-1
la capacidad del estudiante para informar a otras
                                                                       Retomemos el ejemplo del estudiante que aprueba un examen
personas qué hace su programa, cómo lo hace y el
                                                                       cuando obtiene una calificación mayor o igual a seis (ejemplo 3-14).
significado de cada elemento utilizado. Esta actividad se
                                                                       Se requiere elaborar un procedimiento que pida al usuario una
puede llevar a cabo mediante comentarios introducidos
                                                                       calificación, aplique el criterio de aprobación e imprima “Aprobado” o
al código o por medio de documentación formal en un
                                                                       “Reprobado”, según sea el caso.
documento que se anexa al procedimiento elaborado.
                                                                       R/.
                                                                                         ANÁLISIS DEL PROBLEMA
                                                                       Formular el problema: Es un problema sencillo de selección doble.

Pág.69 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
Resultados esperados: Un aviso que reporte si el estudiante              revisar cuidadosamente. Uno de los procedimientos más
“Aprobó” o “Reprobó” el examen.                                          utilizados es el que se conoce como prueba de
Datos disponibles: La calificación ingresada por el usuario. Para        escritorio. Esta consiste seguir paso a paso cada una de
aprobar, la nota debe ser mayor o igual a 6.0.                           las instrucciones del procedimiento, asignando valores
Restricciones: Aplicar el criterio de aprobación.                        iniciales a variables y constantes y, realizando las
Procesos necesarios: Solicitar al usuario que ingrese la calificación.   operaciones indicadas en cada instrucción hasta llegar
Evaluar si la calificación es igual o superior a 6.0; en caso de ser     al final del procedimiento. Luego, comparar los
verdadero, reportar “Aprobado”; en caso contrario, reportar              resultados que produce la prueba de escritorio con los
“Reprobado”.                                                             resultados que arroja el procedimiento; ambos conjuntos
                                                                         de resultados deben ser iguales. Esta metodología es
                     DISEÑO DEL ALGORITMO                                viable cuando los procedimientos son sencillos, con
                                                                         pocas instrucciones.

                                                                         En caso de presentarse una falla de lógica, el estudiante
                                                                         debe:
                                                                         • Examinar el diagrama de flujo para detectar
                                                                            instrucciones que faltan, sobran o que se encuentran
                                                                            en la posición incorrecta
                                                                         • Asegurarse que las instrucciones representan
                                                                            rigurosamente el diagrama de flujo
                                                                         • Utilizar las opciones de MicroMundos y Scratch para
                                                                            ver la ejecución del programa en forma lenta.


                                                                         EJEMPLO 4-2
                                                                         Continuamos con el mismo ejemplo: 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. Con el fin de
                                                                         ejemplificar una falla de lógica, se debe digitar en el área de
                                                                         procedimientos de MMP el siguiente código que representa el
                                                                         algoritmo del ejemplo 4-1.

                                                                                              TRADUCCIÓN DEL ALGORITMO
                                                                         para aprueba2
                     TRADUCCIÓN DEL ALGORITMO                               local "calificación
para aprueba1                                                               pregunta [Ingrese la Calificación]
   local "calificación                                                      da "calificación respuesta
   preguntas [Ingrese la Calificación]                                      siotro (o :calificación < 6.0 :calificación = 6.0)
   da "calificación respuesta                                                    [
   siotro (o :calificación > 6.0 :calificación = 6.0)                             anuncia [Aprobado]
        [                                                                       ]
         anuncia [Aprobado]                                                     [
       ]                                                                         anuncia [Reprobado]
       [                                                                      ]
        anuncia [Reprobado]                                              fin
     ]
fin
                                                                         Obsérvese que el procedimiento “aprueba2” se ejecuta
Obsérvese que MicroMundos arroja un mensaje de error                     correctamente; no aparece ningún error de sintaxis.
cuando se ejecuta el procedimiento: “No sé cómo hacer                    Pero no funciona bien desde el punto de vista lógico. Si
preguntas en aprueba1”. Este error se produce porque                     lo probamos con el valor 5, el procedimiento nos reporta
el comando pregunta está mal escrito, en su lugar se                     que el estudiante aprobó la materia, cuando esto no es
escribió preguntas. El problema se soluciona al escribir                 correcto. Si lo probamos con 7, nos reporta que el
correctamente el comando indicado.                                       estudiante reprobó, cuando tampoco es exacto. En
                                                                         cambio, cuando lo probamos con 6 nos dice que el
                                                                         estudiante aprobó y este dato si es correcto. El
                                                                         problema radica en que en el comando siotro se digitó
Fallas de lógica
                                                                         erróneamente “<” en lugar de “>”, tal como aparece en el
Este tipo de falla se presenta tanto en MicroMundos
                                                                         diagrama de flujo.
como en Scratch. Para identificar fallas de tipo lógico en
un procedimiento que no se interrumpe en ningún
                                                                         Adicionalmente, en este ejemplo se puede observar la
momento y que arroja unos resultados, estos se deben
                                                                         sintaxis en MicroMundos de los operadores lógicos (y, o,
Pág.70 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
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.71 - 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
Mueve la tortuga hacia adelante. Los valores        Ver at, de, iz.
mínimos y máximos para adelante son -9999 y         adelante control1
9999, respectivamente.                              repite 4 [ad 50 de 90]
ALTO                                                Alto
Detiene el procedimiento que está activo. Alto      Ver deténtodo, deténme y reporta.
solo 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]
mueve la caja de alerta a una nueva posición        anuncia 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           Ver ad, de, iz
mínimos y máximos para atrás son -9999 y 9999,      atrás 45
respectivamente.                                    at control1
                                                    repite 4 [at 50 iz 90]
AZAR                                                azar número
Devuelve un número entero positivo (incluyendo azar control1
el 0) menor que número. El número máximo es         azar 2
9999.                                               Repite 26 [ad azar 30 de azar 60]
BNOMBRES                                            bnombres
Borra de la memoria todas las variables globales. Ver nombres.
MicroMundos no borra las variables cuando se        bnombres
                                                                                                              No aplica
abre o se crea un nuevo proyecto. Por lo tanto se
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.
dejará una marca cuando se mueva, pero no           repite 6 [sp ad 10 cp ad 10]
cuando sea arrastrada.
CUMPLEVECES                                         cumpleveces serie lista-de-
Activa la lista de instrucción para cada uno de los instrucción
valores especificados en la serie. La primera       Ver cumplelista.
entrada es una lista con un nombre de variable      cumpleveces [i 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-o-   Ver nombra, cosa, bnombre,
lista. Estas variables mantienen su valor siempre nombres y creavarproyecto.
y cuando no se las borre o se cierre                da "equipo [t1 t2 t3]
MicroMundos.                                        da "texto texto1



Pág.72 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
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.
para derecha es 9999.                                   derecha 45
                                                        repite 5 [de -90 ad 15 de 90 ad 15]
ESCRIBE                                                 escribe (es) palabra-o-lista
Escribe la palabra o la lista en la caja de texto en    Ver inserta.                                           No aplica
uso. El texto va seguido de un retorno de línea y       escribe "holaescribe [Bienvenidos
de una secuencia de avance de línea.                    de nuevo]
                                                        escribe texto1
ESPERA                                                  espera número
Origina una pausa en la ejecución de un                 espera 2
programa o de una instrucción. El tiempo se mide        espera control1
en décimas de segundo.
ESPERAHASTA                                             esperahasta cierto-o-falso-lista-de-
Antes de activar otra instrucción, espera hasta         instrucciones
que cierto-o-falso-lista-de-instrucciones devuelva      esperahasta [tocando? "t1 "t2]
cierto. La entrada debe ser una lista de                t3, mt
instrucciones que devuelva cierto o falso cuando
se active.
FRASE                                                   frase (fr) palabra-o-lista1 palabra-o-
Devuelve una lista formada por sus entradas             lista2
(palabras o listas). Frase puede tomar más de           (frase palabra-o-lista1 palabra-o-
dos entradas cuando frase y sus entradas se             lista2 palabra-o-lista3...)
encierran entre paréntesis. Frase no mostrará los       Ver lista.
corchetes de las listas individuales dadas como         frase "uno [dos]
entrada.                                                (frase "una "gran [ciudad])
                                                        frase texto1 texto2
RUMBO                                                   frumbo número
Fija el rumbo de la tortuga (en grados) en la           Ver rumbo.
dirección especificada. Los grados corresponden         frumbo 0
a los de la brújula: 0 apunta al norte, 90 al este,     frumbo control1
180 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
Gira la tortuga a la izquierda. El máximo valor   Ver ad, at, de.
para 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.
tortuga.                                          limpia
LOCAL (VARIABLES)                                 local palabra-o-lista
Crea una variable local en el procedimiento       Ver asigna, da y nombra.                                     No aplica
dentro del cual se utilizó el mando local. Local  local "lista
sólo puede ser usado dentro de un procedimiento. da "lista páginas
MUESTRA                                           muestra palabra-o-lista
Escribe una palabra o una lista en el Centro de   muestra "hola
Mando. Los corchetes exteriores de la lista no    muestra [hola todos]
aparecen.                                         muestra :texto1




Pág.73 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
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
Devuelve los nombres de todas las variables con Ver bnombres
sus valores.                                       muestra nombres
O                                                  o cierto-o-falso1 cierto-o-falso2
Devuelve cierto si alguna de sus entradas          (o cierto-o-falso1 cierto-o-falso2
devuelve cierto. Si se usan más de dos entradas, cierto-o-falso3...)
o y sus entradas deben estar entre paréntesis.     Ver “y” y “no”.
                                                   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,         Sincronización en los Temas de
Detener Todo, o Ctrl+Inter para detener el         Ayuda de MicroMundos.
proceso.                                           porsiempre [ad 2]
                                                   porsiempre "cuar
                                                   porsiempre texto1
PREGUNTA                                           pregunta palabra-o-lista
Abre una caja de diálogo que muestra la pregunta Ver respuesta.
y una zona para escribir la respuesta. Respuesta pregunta "¿Bien?
devuelve lo que se ha escrito en la caja de        pregunta [¿Cómo estás?]
diálogo. Si se escribe una pregunta muy larga,     pregunta texto1
solo 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.
REPITE                                             repite número [lista-de-
Activa la lista de instrucciones el número de      instrucciones]
veces especificado.                                Ver cumpleveces y cumplelista para
                                                   opciones más avanzadas.
                                                   repite 96 [at 40 ad 40 de 4]
RESPUESTA                                          respuesta
Devuelve el contenido de la última respuesta que da “valor respuesta
se escribió en la caja de diálogos de pregunta.    si respuesta = "sí [ffig "contento]
Usando pregunta y respuesta, se pueden utilizar    si respuesta = "no [ffig "triste]
las 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        Ver siotro.
proposición de la primera entrada devuelve cierto. si 5 > 2 [anuncia "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-de-instrucciones2]
lista de instrucciones si la proposición devuelve       Ver si.
falso.                                                  siotro colordebajo = 15 [ad 50] [ at
                                                        50]
SIN PLUMA                                               Sp
Significa sin pluma. Saca la pluma a la tortuga en      Ver cp.
uso. La tortuga no dejará ningún trazo cuando se        repite 6 [sp ad 10 cp ad 10]
mueva.




Pág.74 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
DESCRIPCIÓN                                    MICROMUNDOS                                SCRATCH
Y                                                       y cierto-o-falso1 cierto-o-falso2
Devuelve cierto si todas sus entradas devuelven         (y 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”.
entradas.                                               y1=13<4
                                                        (y 1 = 1 3 < 4 2 > 1)




Pág.75 - 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.




Pág.76 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
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)

                           •   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; datos
                                                               resultados esperados; datos       disponibles; restricciones;      disponibles; restricciones;
                           •   Ciclo de programación
                                                               disponibles; restricciones;       procesos necesarios)             procesos necesarios)
                                                               procesos 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 resultados • Verificación de resultados
                                                           •   Prueba de escritorio                                       • 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




Pág.77 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
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.

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.78 - 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

Pág.79 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
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 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.80 - 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 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]

Pág.81 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
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
     o               Mostrar <LISTA> en el escenario [Bloque Variables]

Pág.82 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
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.83 - 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]


≈    Utilizar el lenguaje pseudocódigo para representar algoritmos.
Pág.84 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
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
                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
Pág.85 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
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]
             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]
Pág.86 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
≈     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]


≈     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]



Pág.87 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
≈    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
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”.
Pág.88 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
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]

≈     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]


Pág.89 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
≈     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]

≈     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.90 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
ANEXO 6

                                            A N Á LIS IS D EL P R O B LEM A


       F o r m u la r e l p r o b le m a :




       R e s u lt a d o s e s p e r a d o s :




       D a t o s D is p o n ib le s :




       R e s t r ic cio n e s :




       P r o c e s o s N e c e s a r io s :




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




Pág.92 - 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.93 - 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.
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.

Pág.94 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
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].
---------- (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.
Pág.95 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
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.96 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php

Más contenido relacionado

PDF
Cibernetica
PDF
Analisis y diseño de algoritmos
PDF
Analisis y diseño algoritmos
PDF
Estrategias didacticas Programacion Estructuradas
DOCX
Actividad 3
PDF
Proyecto final
PDF
Algoritmos programacion
PDF
Mallas nucleo especifico 2021
Cibernetica
Analisis y diseño de algoritmos
Analisis y diseño algoritmos
Estrategias didacticas Programacion Estructuradas
Actividad 3
Proyecto final
Algoritmos programacion
Mallas nucleo especifico 2021

La actualidad más candente (8)

PPS
Modulo 11 informatica
PDF
Accesibilidad en el Sistema Operativo Windows 10
PDF
Planificacion 2da unidad - tics-5 bach
PDF
Formula 6-guia-1oct08-72
DOCX
Adsi c02-gd01 guia solucion de algoritmos
PDF
Planificacion 5to bachillerato segunda unidad 2012
ODT
Informe de Proyecto de Utilitarios 1
PDF
Disenoestructuradoalgoritmos
Modulo 11 informatica
Accesibilidad en el Sistema Operativo Windows 10
Planificacion 2da unidad - tics-5 bach
Formula 6-guia-1oct08-72
Adsi c02-gd01 guia solucion de algoritmos
Planificacion 5to bachillerato segunda unidad 2012
Informe de Proyecto de Utilitarios 1
Disenoestructuradoalgoritmos
Publicidad

Similar a Algoritmos programacion (20)

PDF
Algoritmos programacion Libro
PDF
Algoritmos programacion
PDF
Algoritmos programacion
PDF
Algoritmos programacion
PDF
Algoritmos programacion
PDF
Algoritmos programacion
PDF
Disenoestructuradoalgoritmos
PDF
guia39_Multiprogra.pdf
PDF
Portafolio programacion
DOCX
TIC en el Diseño, Desarrollo y Gerencia del Currículo
DOC
Taller de capacitación en apropiación de contenidos y herramientas
PDF
Oisic 2010-224 investigaciondeoperaciones
PDF
AED1-ppt-Tema1-2024-Introducción a la programacion PB (1).pdf
DOC
Programacion paralelay distribuida
PDF
Manual de análisis y diseño de algoritmos
PDF
2024.+02.1.+Videojuego+matematico.+Guia+docentes+[compartido].pdf
PDF
manual_1_secundaria (1).pdf
PDF
Manejo De Los Ti Cs En El Aula(Aplicados A La GeometríA)
DOCX
Fundamentos de programación
PDF
Algoritmos programacion
Algoritmos programacion Libro
Algoritmos programacion
Algoritmos programacion
Algoritmos programacion
Algoritmos programacion
Algoritmos programacion
Disenoestructuradoalgoritmos
guia39_Multiprogra.pdf
Portafolio programacion
TIC en el Diseño, Desarrollo y Gerencia del Currículo
Taller de capacitación en apropiación de contenidos y herramientas
Oisic 2010-224 investigaciondeoperaciones
AED1-ppt-Tema1-2024-Introducción a la programacion PB (1).pdf
Programacion paralelay distribuida
Manual de análisis y diseño de algoritmos
2024.+02.1.+Videojuego+matematico.+Guia+docentes+[compartido].pdf
manual_1_secundaria (1).pdf
Manejo De Los Ti Cs En El Aula(Aplicados A La GeometríA)
Fundamentos de programación
Algoritmos programacion
Publicidad

Último (20)

PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PPTX
Sesion 1 de microsoft power point - Clase 1
PDF
clase auditoria informatica 2025.........
PPTX
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
PDF
Maste clas de estructura metálica y arquitectura
PDF
Calidad desde el Docente y la mejora continua .pdf
PPTX
historia_web de la creacion de un navegador_presentacion.pptx
PDF
Estrategia de apoyo tecnología miguel angel solis
PPT
Que son las redes de computadores y sus partes
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
PPTX
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
PPTX
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PDF
taller de informática - LEY DE OHM
PDF
Diapositiva proyecto de vida, materia catedra
DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PDF
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
PPTX
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PPT
El-Gobierno-Electrónico-En-El-Estado-Bolivia
PDF
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
Sesion 1 de microsoft power point - Clase 1
clase auditoria informatica 2025.........
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
Maste clas de estructura metálica y arquitectura
Calidad desde el Docente y la mejora continua .pdf
historia_web de la creacion de un navegador_presentacion.pptx
Estrategia de apoyo tecnología miguel angel solis
Que son las redes de computadores y sus partes
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
taller de informática - LEY DE OHM
Diapositiva proyecto de vida, materia catedra
Zarate Quispe Alex aldayir aplicaciones de internet .docx
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
El-Gobierno-Electrónico-En-El-Estado-Bolivia
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.

Algoritmos programacion

  • 1. EDUCACIÓN BÁSICA ⊕ ALGORITMOS Y PROGRAMACIÓN GUÍA PARA DOCENTES SEGUNDA EDICIÓN JUAN CARLOS LÓPEZ GARCÍA ⊕ La Educación Básica en Colombia comprende los grados 1º a 9º; primaria de 1° a 5° y secundaria de 6° a 9° Esta Guía está diseñada para ser utilizada, por los maestros, con estudiantes de grados 4° a 9°. Pág.1 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 2. 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. 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. Pág.2 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 3. 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 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 Pág.3 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 4. UNIDAD 1: DESARROLLO DE HABILIDADES DE PENSAMIENTO DESARROLLO DE HABILIDADES DE PENSAMIENTO DE ORDEN SUPERIOR Existe actualmente un consenso general dentro de la compromete a los estudiantes en la consideración de comunidad educativa mundial sobre la necesidad de varios aspectos importantes para la solución de superar el tipo de enseñanza basada en la transmisión problemas: decidir sobre la naturaleza del problema, de contenidos para apuntarle en su lugar al desarrollo seleccionar una representación que ayude a resolverlo de capacidades. Investigaciones y estudios recientes y, monitorear sus propios pensamientos (metacognición) proponen diversos conjuntos de habilidades que la y estrategias de solución. Este último, es un aspecto que educación debe fomentar para que los estudiantes deben desarrollar desde edades tempranas. No puedan tener éxito en el mundo digital y globalizado en debemos olvidar que solucionar problemas con ayuda el que van a vivir. Este planteamiento exige, sin del computador puede convertirse en una excelente dilaciones, implementar estrategias que contribuyan herramienta para adquirir la costumbre de enfrentar efectivamente en el desarrollo de esas habilidades problemas predefinidos de manera rigurosa y planteadas como fundamentales para la educación en el sistemática, aun, cuando no se utilice un computador Siglo XXI (21st Century Skills, 2004). para solucionarlo. En la mayoría de conjuntos de habilidades propuestos Esto en cuanto a la solución de problemas, pero hay figuran las habilidades de pensamiento de orden otra habilidad de pensamiento que también se puede superior entre las que se incluye la destreza para ayudar a desarrollar con un cursos de Algoritmos y solucionar problemas; por esta razón, se requiere Programación: La Creatividad. seleccionar estrategias efectivas para ayudar a que los estudiantes las desarrollen. Para atender esta En los últimos años, la creatividad forma parte de las necesidad, la programación de computadores constituye prioridades de los sistemas educativos en varios países, una buena alternativa, siempre y cuando se la enfoque junto a otras habilidades de pensamiento de orden al logro de esta destreza y no a la formación de superior. Al punto que los Estándares Nacionales programadores. Es importante insistir en esta Norteamericanos de TIC para Estudiantes (NETS-S) orientación debido a que las metodologías utilizadas en formulados en 1998, estaban encabezados por Educación Básica para llevar a cabo cursos de “Operaciones y conceptos básicos de las TIC” y la Algoritmos y Programación, son heredadas de la Creatividad no figuraba. Sin embargo, en la nueva educación superior y muchos de los docentes que las versión de estos Estándares, liberada en 2008, la utilizan se dedican principalmente a enseñar los creatividad encabeza los seis grupos de estándares. vericuetos de lenguajes de programación profesionales Otro ejemplo muy diciente es la creación en Inglaterra tales como Java, C++, Visual Basic, etc. Hablar hoy de del Consorcio para la Creatividad que busca promover aprender a diseñar y construir aplicaciones (programas) en la educación el desarrollo de habilidades de complejas, implica una labor titánica que en la mayoría pensamiento que conduzcan la formación de personas de los casos está fuera del alcance de la Educación orientadas a la creatividad y a la innovación. Básica ya que demanda necesariamente enfoques de programación como el orientado a objetos al que Una de las razones para que la creatividad se hubiese apuntan la mayoría de tendencias en Ingeniería de convertido en tema prioritario es que tiene un alto Sistemas. impacto en la generación de riqueza por parte de las empresas de la Sociedad de la Creatividad. En esta Por esta razón, en la Educación Básica es altamente empresas, los reconocimientos profesionales se dan recomendable utilizar ambientes de programación gracias al talento, la creatividad y la inteligencia. La basados en Logo, fáciles de utilizar y que permitan creatividad reemplazó las materias primas como fuente realizar procedimientos que contengan estructuras fundamental de crecimiento económico. Para tener éxito básicas (secuencial, decisión y repetición), pero siempre en esta nueva Sociedad, las regiones deben desarrollar, conducentes al desarrollo de habilidades del Siglo XXI. atraer y retener a personas talentosas y creativas que Solo en los últimos grados de básica secundaria o en la generen innovaciones (Banaji & Burn, 2006). Cada vez Media Técnica sería aconsejable introducir a los es mayor el número de empresas que fundamentan su estudiantes a la programación orientada a objetos modelo de negocio en la creatividad y la innovación; mediante entornos de programación visuales y para ellas, son indispensables personas que además de amigables como Alice, KPL o Processing. tener los conocimientos requeridos para desempeñarse en los diferentes cargos, tengan habilidad para pensar y Desde el punto de vista educativo, la programación de actuar creativamente. computadores posibilita no solo activar una amplia variedad de estilos de aprendizaje (Stager, 2003) sino Ejemplo tangible de esto es el que la Comisión Europea, desarrollar el pensamiento algorítmico. Adicionalmente, consciente de la importancia que tienen la creatividad y Pág.4 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 5. la innovación para el desarrollo social y económico de ayuda en la solución de problemas. Esto sugiere los países del viejo continente, decidiera proclamar el que una evaluación autentica en matemáticas debe 2009 como el “Año de la Creatividad y la Innovación” realizarse con libro y cuaderno abiertos, permitir el (http://create2009.europa.eu/). uso de calculadora y computador; en cuyo caso el computador puede aportar un ambiente de El reto enorme que recae hoy sobre los sistemas aprendizaje y evaluación enriquecidos. 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 con un curso de algoritmos y programación: la sociedad griega en tiempos de Alejandro el Grande Inteligencia artificial, robótica, aprendizaje asistido era prioridad que las personas desarrollaran su cuerpo por computador (CAL), aprendizaje asistido por como preparación para los quehaceres del campo de computador altamente interactivo e inteligente batalla, para la sociedad actual es prioritario que las (HIICAL), etc. personas desarrollen sus habilidades de pensamiento de orden superior para que pueden desempeñarse con Es muy importante tener presente que resolver éxito en ella. Pero, dado que el desarrollo de estas problemas matemáticos mediante procedimientos tiene habilidades se debe iniciar desde edad temprana, la dos ciclos: uno en el cual se resuelve el problema educación debe asumir su cuota de responsabilidad en matemático en sí (con papel y lápiz) y otro en el que esa esta importante tarea. solución se automatiza en el computador. Crear un procedimiento para calcular el área de cualquier Desde este punto de vista, la presente “Guía de rectángulo a partir de las dimensiones de sus lados, Algoritmos y Programación”, dirigida a docentes de requiere que el estudiante primero resuelva el problema Educación Básica, se concentra en el desarrollo de la matemático (entender el problema, trazar un plan, creatividad y de habilidades para solucionar problemas ejecutar el plan y revisar) y luego elabore el predefinidos. Para facilitar a los docentes su utilización procedimiento que pida los datos de entrada, realice los en el aula, los ejemplos que se proponen corresponden cálculos y muestre el resultado (analizar el problema, a temas de Matemáticas y Ciencias Naturales para diseñar un algoritmo, traducir el algoritmo a un lenguaje grados cuarto y quinto de Básica Primaria. de programación y depurar el programa). Programación y Matemáticas Programación y Ciencias Naturales Son varios los temas de las matemáticas cuya En Ciencias Naturales también hay temas en los cuales comprensión se puede mejorar mediante la integración realizar actividades de programación de computadores de esta asignatura con un curso de algoritmos y puede ayudar a mejorar su comprensión por parte de los programación: estudiantes. • Concepto de variable. Una variable es una ubicación Mediante el trabajo con entornos de programación como de memoria en el computador o en la calculadora Scratch o MicroMundos, los estudiantes aprenden a que tiene un nombre (identificador) y en la que se seleccionar, crear y manejar múltiples formas de medios pueden almacenar diferentes valores. (texto, imágenes y grabaciones de audio). La • Concepto de función. La mayoría de calculadoras comunicación efectiva requiere hoy en día, para ser científicas vienen de fabrica con cientos de creativa y persuasiva, la escogencia y manipulación de funciones y los estudiantes pueden crear los mismos tipos de medios que estos entornos de procedimientos que se comportan como funciones programación ponen al alcance de los estudiantes. Se (aceptan parámetros, realizan cálculos y reportan un espera que a medida que ellos ganan experiencia resultado). creando con medios, se vuelvan más perceptivos y • Manejo de ecuaciones y graficación. críticos en el análisis de los que tienen a su alcance en • Modelado matemático. Algunas de las ideas clave el mundo que los rodea (Rusk, Resnick & Maloney, de los modelos matemáticos están presentes en los 2007). manipulables virtuales (simulaciones y micromundos). Estos manipulables se pueden Por ejemplo, realizar proyectos cuyo producto final sea emplear tanto en procesos de entrenamiento (drill la comunicación de resultados obtenidos en procesos de and practice) como de educación matemática. Sin indagación y/o experimentación en clase de Ciencias: embargo, la tendencia es a utilizarlos en ambientes en los que los estudiantes se convierten en • Explicación de las partes de una célula y su diseñadores y no en simples consumidores. importancia como unidad básica de los seres vivos. • Evaluación. En la mayoría de las situaciones • Exposición de los diversos sistemas de órganos del extraescolares, las personas que necesitan utilizar ser humano con la respectiva explicación de su matemáticas regularmente tienden a usar función. calculadoras, computadores y otros dispositivos • Clasificación de los seres vivos en diversos grupos especializados (GPS, medición con láser, etc) como taxonómicos (plantas, animales, microorganismos, Pág.5 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 6. etc). • Representación del movimiento y desplazamiento de • Descripción y comparación de diversos tipos de objetos con diferentes velocidades. neuronas. • Ilustración interactiva del sistema solar. • Explicación de las funciones de los diversos componentes de un circuito eléctrico. En el caso de las Ciencias Naturales es fundamental • Descripción de los principales elementos del sistema tener en cuenta que los proyectos que se realicen solar que incluya las relaciones de tamaño, utilizando entornos de programación como Scratch o movimiento y posición. MicroMundos pueden requerirse conocimiento básico del tema por parte de los estudiantes. En este caso, los Adicionalmente, la elaboración de simulaciones es un proyectos se convierten en profundización para la veta muy rica para formular proyectos en Ciencias comprensión de esos temas. Naturales. Estas sin duda contribuyen a la comprensión de fenómenos naturales ya que en este tipo de De lo contrario, se debe incluir en cada proyecto un actividades los estudiantes actúan como diseñadores. componente previo de investigación en el cual los No se debe pasar por alto que los estudiantes aprendan estudiantes puedan alcanzar los conocimientos básicos más construyendo materiales de instrucción que conceptuales requeridos para llevar a cabo el proyecto. estudiándolos (Jonassen, Carr & Yue, 1998). La mayoría de estos proyectos de este tipo se enfocan en la comunicación de hallazgos de indagaciones y/o Para poder construir las simulaciones los estudiantes experimentaciones. deben coordinar periodicidad y reglas de interacción entre varios objetos móviles programables (tortugas y Una tercera opción es trabajar con el entorno de objetos). Además, la posibilidad de programar programación como actividad exploratoria a un tema interacciones con el usuario de la simulación ofrece dado en Ciencias Naturales; sin embargo, este enfoque oportunidades valiosas para comprometer al estudiante requiere una planeación cuidadosa para que se logre el “diseñador” en la reflexión sobre detección de actividad, objetivo de aprendizaje y la actividad no se quede retroalimentación, usabilidad y otros elementos únicamente en lo lúdico. presentes en los sistemas de computo que se utilizan diariamente en empresas y hogares. Los siguientes son algunos ejemplos de proyectos cuyo producto final consiste en una simulación sobre diversos temas que son fundamentales en Ciencias Naturales: • Imitación del comportamiento de seres vivos en ecosistemas, teniendo en cuenta necesidades y cantidades disponibles de energía y nutrientes (cadena alimentaria). • Representación del fenómeno migratorio de varias especies de animales como respuesta a cambios en el ambiente y en los ecosistemas en los que viven. • Ilustración interactiva de la adaptación de los seres vivos a variaciones en el entorno en que viven. • Demostración del funcionamiento de circuitos eléctricos en serie y en paralelo. • Imitación del efecto de la transferencia de energía térmica en los cambios de estado de algunas sustancias. • Representación del ciclo de vida de una planta teniendo en cuenta factores ambientales (semilla – siembra – desarrollo planta – florecimiento – polinización – semilla). • Diseño de experimentos en los cuales se deba modificar una variable para dar respuesta a preguntas. • Imitación de fenómenos de camuflaje con un entorno y relacionarlos con ciertas necesidades en algunos seres vivos. Pág.6 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 7. SOLUCIÓN DE PROBLEMAS Una de las acepciones que trae el Diccionario de Real empíricas para llegar a una solución. El método Academia de la Lengua Española (RAE) respecto a la heurístico conocido como “IDEAL”, formulado por palabra Problema es “Planteamiento de una situación Bransford y Stein (1984), incluye cinco pasos: cuya respuesta desconocida debe obtenerse a través de Identificar el problema; definir y presentar el métodos científicos”. Con miras a lograr esa respuesta, problema; explorar las estrategias viables; avanzar un problema se puede definir como una situación en la en las estrategias; y lograr la solución y volver para cual se trata de alcanzar una meta y para lograrlo se evaluar los efectos de las actividades (Bransford & deben hallar y utilizar unos medios y unas estrategias. Stein, 1984). El matemático Polya (1957) también La mayoría de problemas tienen algunos elementos en formuló un método heurístico para resolver común: un estado inicial; una meta, lo que se pretende problemas que se aproxima mucho al ciclo utilizado lograr; un conjunto de recursos, lo que está permitido para programar computadores. A lo largo de esta hacer y/o utilizar; y un dominio, el estado actual de Guía se utilizará este método propuesto por Polya. conocimientos, habilidades y energía de quien va a • Algoritmos : Consiste en aplicar adecuadamente resolverlo (Moursund, 1999). una serie de pasos detallados que aseguran una solución correcta. Por lo general, cada algoritmo es Casi todos los problemas requieren, que quien los específico de un dominio del conocimiento. La resuelve, los divida en submetas que, cuando son programación de computadores se apoya en este dominadas (por lo regular en orden), llevan a alcanzar el método, tal como veremos en la Unidad 2. objetivo. La solución de problemas también requiere que • Modelo de procesamiento de información : El se realicen operaciones durante el estado inicial y las modelo propuesto por Newell y Simon (1972) se basa submetas, actividades (conductuales, cognoscitivas) que en plantear varios momentos para un problema alteran la naturaleza de tales estados (Schunk, 1997). (estado inicial, estado final y vías de solución). Las posibles soluciones avanzan por subtemas y Cada disciplina dispone de estrategias específicas para requieren que se realicen operaciones en cada uno resolver problemas de su ámbito; por ejemplo, resolver de ellos. problemas matemáticos implica utilizar estrategias • Análisis de medios y fines : Se funda en la propias de las matemáticas. Sin embargo, algunos comparación del estado inicial con la meta que se psicólogos opinan que es posible utilizar con éxito pretende alcanzar para identificar las diferencias. estrategias generales, útiles para resolver problemas en Luego se establecen submetas y se aplican las muchas áreas. A través del tiempo, la humanidad ha operaciones necesarias para alcanzar cada submeta utilizado diversas estrategias generales para resolver hasta que se alcance la meta global. Con este problemas. Schunk (1997), Woolfolk (1999) y otros, método se puede proceder en retrospectiva (desde la destacan los siguientes métodos o estrategias de tipo meta hacia el estado inicial) o en prospectiva (desde general: el estado inicial hacia la meta). • Ensayo y error : Consiste en actuar hasta que algo • Razonamiento analógico : Se apoya en el funcione. Puede tomar mucho tiempo y no es seguro establecimiento de una analogía entre una situación que se llegue a una solución. Es una estrategia que resulte familiar y la situación problema. Requiere apropiada cuando las soluciones posibles son pocas conocimientos suficientes de ambas situaciones. y se pueden probar todas, empezando por la que • Lluvia de ideas : Consiste en formular soluciones ofrece mayor probabilidad de resolver el problema. viables a un problema. El modelo propuesto por Por ejemplo, una bombilla que no prende: revisar la Mayer (1992) plantea: definir el problema; generar bombilla, verificar la corriente eléctrica, verificar el muchas soluciones (sin evaluarlas); decidir los interruptor. criterios para estimar las soluciones generadas; y • Iluminación : Implica la súbita conciencia de una emplear esos criterios para seleccionar la mejor solución que sea viable. Es muy utilizado el modelo solución. Requiere que los estudiantes no emitan de cuatro pasos formulado por Wallas (1921): juicios con respecto a las posibles soluciones hasta preparación, incubación, iluminación y verificación. que terminen de formularlas. Estos cuatro momentos también se conocen como • Sistemas de producción : Se basa en la aplicación proceso creativo. Algunas investigaciones han de una red de secuencias de condición y acción determinado que cuando en el periodo de incubación (Anderson, 1990). se incluye una interrupción en el trabajo sobre un • Pensamiento lateral : Se apoya en el pensamiento problema se logran mejores resultados desde el creativo, formulado por Edwar de Bono (1970), el punto de vista de la creatividad. La incubación ayuda cual difiere completamente del pensamiento lineal a "olvidar" falsas pistas, mientras que no hacer (lógico). El pensamiento lateral requiere que se interrupciones o descansos puede hacer que la exploren y consideren la mayor cantidad posible de persona que trata de encontrar una solución creativa alternativas para solucionar un problema. Su se estanque en estrategias inapropiadas. importancia para la educación radica en permitir que • Heurística : Se basa en la utilización de reglas el estudiante: explore (escuche y acepte puntos de Pág.7 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 8. vista diferentes, busque alternativas); avive ejemplo, en “Recreo Matemático 5” (Díaz, 1993) y en “Dominios 5” (promueva el uso de la fantasía y del humor); libere (Melo, 2001) se pueden identificar las siguientes sugerencias (use la discontinuidad y escape de ideas propuestas a los estudiantes para llegar a la solución de un problema preestablecidas); y contrarreste la rigidez (vea las matemático: cosas desde diferentes ángulos y evite 1. COMPRENDER EL PROBLEMA. dogmatismos). Este es un método adecuado cuando • Leer el problema varias veces el problema que se desea resolver no requiere • Establecer los datos del problema información adicional, sino un reordenamiento de la información disponible; cuando hay ausencia del • Aclarar lo que se va a resolver (¿Cuál es la pregunta?) problema y es necesario apercibirse de que hay un • Precisar el resultado que se desea lograr problema; o cuando se debe reconocer la posibilidad • Determinar la incógnita del problema de perfeccionamiento y redefinir esa posibilidad como • Organizar la información un problema (De Bono, 1970). • Agrupar los datos en categorías Como se puede apreciar, hay muchas estrategias para • Trazar una figura o diagrama. solucionar problemas; sin embargo, esta Guía se enfoca 2. HACER EL PLAN. principalmente en dos de estas estrategias: Heurística y • Escoger y decidir las operaciones a efectuar. Algorítmica. • Eliminar los datos inútiles. • Descomponer el problema en otros más pequeños. Según Polya (1957), cuando se resuelven problemas, 3. EJECUTAR EL PLAN (Resolver). intervienen cuatro operaciones mentales: • Ejecutar en detalle cada operación. 1. Entender el problema • Simplificar antes de calcular. 2. Trazar un plan • Realizar un dibujo o diagrama 3. Ejecutar el plan (resolver) 4. ANALIZAR LA SOLUCIÓN (Revisar). 4. Revisar • Dar una respuesta completa • Hallar el mismo resultado de otra manera. Numerosos autores de textos escolares de matemáticas • Verificar por apreciación que la respuesta es adecuada. hacen referencia a estas cuatro etapas planteadas por Polya. Sin embargo, es importante notar que estas son EJEMPLO flexibles y no una simple lista de pasos como a menudo En un juego, el ganador obtiene una ficha roja; el segundo, una ficha se plantea en muchos de esos textos (Wilson, azul; y el tercero, una amarilla. Al final de varias rondas, el puntaje se Fernández & Hadaway, 1993). Cuando estas etapas se calcula de la siguiente manera: Al cubo de la cantidad de fichas rojas siguen como un modelo lineal, resulta contraproducente se adiciona el doble de fichas azules y se descuenta el cuadrado de para cualquier actividad encaminada a resolver las fichas amarillas. Si Andrés llegó 3 veces en primer lugar, 4 veces problemas. de último y 6 veces de intermedio, ¿Qué puntaje obtuvo? (Adaptado de Melo (2001), página 30). R/. COMPRENDE • Leer detenidamente el problema • ¿Cuántos colores de fichas se reparten? • ¿Cuántas fichas rojas, azules y amarillas obtuvo Andrés? • ¿Qué pregunta el problema? PLANEA • Para hallar el puntaje que obtiene Andrés por sus llegadas de primero, calcular el cubo de la cantidad de fichas rojas. Ilustración 1-1: Interpretación dinámica y cíclica de las etapas • Para hallar el puntaje por sus llegadas en segundo lugar, calcular planteadas por Polya para resolver problemas. el doble de la cantidad de fichas azules. • Para hallar el puntaje que pierde por sus llegadas en último Es necesario hacer énfasis en la naturaleza dinámica y lugar, calcular el cuadrado de la cantidad de fichas amarillas. cíclica de la solución de problemas. En el intento de trazar un plan, los estudiantes pueden concluir que • Para hallar el puntaje total, calcular la suma de los puntajes por las fichas rojas y azules, restarle los puntos de las fichas necesitan entender mejor el problema y deben regresar amarillas. a la etapa anterior; o cuando han trazado un plan y RESUELVE tratan de ejecutarlo, no encuentran cómo hacerlo; entonces, la actividad siguiente puede ser intentar con • Por tres fichas rojas: 33 = 27 puntos un nuevo plan o regresar y desarrollar una nueva • Por seis fichas azules: 6 x 2 = 12 puntos comprensión del problema (Wilson, Fernández & • Por cuatro fichas amarillas: 42 = 16 puntos Hadaway, 1993; Guzdial, 2000). • Para obtener el puntaje final de Andrés, sumar los puntos obtenidos con las fichas rojas y azules (27 + 12 = 39 puntos) y de TIP este resultado restar los puntos representados por las fichas La mayoría de los textos escolares de matemáticas abordan la amarillas (39 – 16 = 23 puntos). Solución de Problemas bajo el enfoque planteado por Polya. Por REVISA Pág.8 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 9. • El puntaje que obtuvo Andrés es 23 puntos. • Fomentar la utilización de representaciones visuales • Verificar las operaciones y comparar los cálculos con la solución que favorezcan la comprensión de conceptos estimada. (diagramas de flujo, mapas conceptuales, diagramas de Venn, etc). El anterior es un problema típico en clase de • Dar retroalimentación personalizada en matemáticas. Es muy importante que los estudiantes consideración al esfuerzo hecho por los estudiantes reflexionen sobre las actividades que realizan para para solucionar problemas. solucionarlo (metacognición) y las agrupen de acuerdo a • Verificar que una cantidad importante de la las etapas que contenga la estrategia de solución instrucción ocurra en grupos pequeños o en empleada. situaciones de uno a uno. • Ventilar los errores y malentendidos más comunes. ACTIVIDAD • Promover la interacción tanto estudiante-docente, En la academia de las ciencias sociales hay dos grupos de materias: como estudiante-estudiante. Los niños son los Geografía, con 124 alumnos; Historia, con 220; y Educación mejores maestros de otros niños en cosas tan Ambiental, con 185. Si hay 25 alumnos que estudian Geografía y importantes para ellos como el aprendizaje de Educación Ambiental, 37 que estudian Educación Ambiental e diversos juegos (Savater, 1996). Historia, y ninguno toma las tres materias, ¿cuántos alumnos tiene la academia? (Adaptado de Melo, 2001, página 46). • Ofrecer actividades que den oportunidad a los estudiantes de discutir, hacer conjeturas, sacar conclusiones, defender ideas y escribir El estudiante debe tener en cuenta (y anotar) las actividades que conceptualizaciones. realiza para resolver este problema y agruparlas en cada una de las cuatro etapas propuestas por Polya (comprende, planea, resuelve y • Proporcionar oportunidades para realizar trabajo revisa). Para resolver este problema, los estudiantes deben tener reflexivo y colaborativo entre estudiantes. conocimientos sobre conjuntos (representación, clasificación e intersección). Es buena idea que construyan una tabla para organizar la información y un diagrama de Venn para representar los Solución de problemas y programación datos. 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 Establecer un modelo para solucionar problemas es un de aprendizaje. Los estudiantes pueden encontrar paso fundamental pero no suficiente. Según Clements & diversas maneras de abordar problemas y plantear Meredith (1992) y Zemelman, Daniels & Hyde (1998) y soluciones, al tiempo que desarrollan habilidades para: otros, los docentes deben adoptar una serie de buenas visualizar caminos de razonamiento divergentes, prácticas con el fin de ayudar a los estudiantes a anticipar errores, y evaluar rápidamente diferentes desarrollar habilidades para resolver problemas: escenarios mentales (Stager, 2003). • Plantear verbalmente problemas con variedad de estructuras y de formas de solución. • Presentar diversas estrategias de solución de problemas. • Asignar problemas que tengan aplicación en la vida diaria. • Ofrecer experiencias que estimulen la curiosidad de los estudiantes y construyan confianza en la investigación, la solución de problemas y la comunicación. • Permitir a los estudiantes tomar la iniciativa en el planteamiento de preguntas e investigaciones que les interesen. • Hacer preguntas que involucren pensamiento de orden superior. • Verificar que los estudiantes son conscientes de las estrategias que deben utilizar y de los procesos que deben aprender. • Plantear problemas que proporcionen contextos en los que se aprendan conceptos y habilidades. • Proveer ejemplos de cómo los conceptos y habilidades utilizados podrían aplicarse en otros Ilustración 1-2(a): Área de trabajo de MicroMundos EX contextos. (interfaz del programa) • Promover, de manera creciente, la abstracción y la generalización mediante la reflexión y la Quienes han utilizado Logo con estudiantes de básica experimentación. primaria (especialmente con grados 3º a 5º - 8 a 11 Pág.9 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 10. años) habrán podido observar la facilidad con que ellos esperado. Así, Logo promueve lo que Piaget (1964) se familiarizan con la interfaz del programa y la utilizan denominó “la conquista de la difícil conducta de la para darle instrucciones a la tortuga. Por ejemplo, reflexión” que se inicia a partir de los siete u ocho años utilizan el “centro de mando” (área de comandos) para cuando niños y niñas dejan de actuar por impulso y introducir manualmente, una a una, las instrucciones empiezan a pensar antes de proceder. Además, para construir un rectángulo. Esta forma de utilizar Logo demanda de los estudiantes planificar, formular hipótesis promueve la exploración y permite al estudiante ver y anticipar qué sucederá. inmediatamente cuál es el efecto que produce cada instrucción ejecutada. 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 adelante 120 derecha 90 adelante 80 derecha 90 adelante 120 Fin Ilustración 1-2(b): Área de trabajo de Scratch Versión 1.4 Cuando se invoca este procedimiento escribiendo “rectángulo” en el (interfaz del programa) “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 se encuentran entre “para EJEMPLO rectángulo” [to rectangulo] y “fin” [end] (MicroMundos) o debajo de la Pedir a los estudiantes que escriban en el “Centro de Mando” las instrucción [al presionar bandera verde]. Antes de escribir el anterior instrucciones para dibujar un rectángulo con las siguientes medidas: procedimiento, los estudiantes deben analizar la figura geométrica Lado1= 80; Lado2=120. que desean construir, describirla y reflexionar acerca de cómo se unen sus partes (dos pares de lados paralelos de igual longitud y MicroMundos Scratch cuatro ángulos iguales de 90 grados). Deben explicar el todo cp El Centro de Mando de mediante la composición de las partes, y esta composición supone, adelante 80 MicroMundos no tiene por tanto, la existencia de autenticas operaciones de segmentación o derecha 90 equivalente en Scratch. partición y de operaciones inversas de reunión o adición, así como adelante 120 desplazamientos por separación o concentración (Piaget, 1964). derecha 90 adelante 80 Pedir a los estudiantes que escriban un procedimiento derecha 90 más general para dibujar cualquier rectángulo, significa adelante 120 que ellos deben tratar las dimensiones de la figura como variables (Lado1= ?; Lado2= ?) y no como constantes A medida que el estudiante introduce cada una de estas (Lado1= 80; Lado2= 120). Además, deben construir una instrucciones se dibuja cada uno de los lados que conforman el definición de rectángulo que el computador entienda; de rectángulo. esta manera, empiezan a construir conocimiento intuitivo NOTA: Ver en el Anexo 1 un resumen de las primitivas (comandos e acerca de la definición de esta figura geométrica, instrucciones) de MicroMundos y de Scratch utilizadas en esta guía. conocimiento que luego pueden formalizar en una definición abstracta de la misma (Clements & Meredith, Sin embargo, en esta guía se utilizará el “área de 1992). procedimientos” de MicroMundos para programar el computador. Los procedimientos son módulos con Adicionalmente, la programación de computadores instrucciones que se inician con el comando “para” y que compromete a los estudiantes en varios aspectos el computador ejecuta automáticamente, una tras otra, importantes de la solución de problemas: decidir sobre hasta encontrar el comando “fin”. Emplear Logo de esta la naturaleza del problema, seleccionar una manera exige que el estudiante piense en todos los representación que les ayude a resolverlo, y monitorear comandos que conforman un procedimiento antes de sus propios pensamientos (metacognición) y estrategias escribirlo, ejecutarlo y comprobar si produce el resultado Pág.10 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 11. de solución. Este último, es un aspecto que ellos deben Analizar el problema (entenderlo) desarrollar desde edades tempranas y solucionar problemas con ayuda del computador puede convertirse en una 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 Ilustración 1-4: Primera fase del ciclo de programación. implica abrirle un espacio a la programación en el estudio de las matemáticas, pero enfocándose en los Los programas de computador tienen como finalidad problemas matemáticos y en el uso del computador resolver problemas específicos y el primer paso consiste como una herramienta para solucionar problemas de en definir con precisión el problema hasta lograr la mejor esta área (Wilson, Fernández & Hadaway, 1993). comprensión posible. Una forma de realizar esta actividad se basa en formular claramente el problema, Numerosos autores de libros sobre programación, especificar los resultados que se desean obtener, plantean cuatro fases para elaborar un procedimiento identificar la información disponible (datos), que realice una tarea específica. Estas fases determinar las restricciones y definir los procesos concuerdan con las operaciones mentales descritas por necesarios para convertir los datos disponibles (materia Polya para resolver problemas: prima) en la información requerida (resultados). 1. Analizar el problema (Entender el problema) 2. Diseñar un algoritmo (Trazar un plan) Estas etapas coinciden parcialmente con los elementos 3. Traducir el algoritmo a un lenguaje de programación generales que, según Schunk (1997), están presentes (Ejecutar el plan) en todos los problemas: 4. Depurar el programa (Revisar) 1. Especificar claramente los resultados que se desean obtener (meta y submetas) Como se puede apreciar, hay una similitud entre las 2. Identificar la información disponible (estado inicial) metodologías propuestas para solucionar problemas 3. Definir los procesos que llevan desde los datos matemáticos (Clements & Meredith, 1992; Díaz, 1993; disponibles hasta el resultado deseado (operaciones) Melo, 2001; NAP, 2004) y las cuatro fases para solucionar problemas específicos de áreas diversas, mediante la programación de computadores. Ilustración 1-3: fases para elaborar un programa de computador. Ilustración 1-5: Etapas a desarrollar en la fase de análisis de un problema (entenderlo) Para establecer un modelo que los estudiantes puedan utilizar en la fase de análisis del problema, debemos agregar dos temas a los elementos expuestos por Schunk (1997): formular el problema y determinar las restricciones. Pág.11 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 12. Ahora veamos con mayor detalle cada una de las etapas Además, es conveniente que los estudiantes se del análisis de un problema. habitúen a analizar los problemas desde diferentes puntos de vista y a categorizar la información dispersa que reciben como materia prima (Schunk, 1997). Formular el problema La solución de un problema debe iniciar por determinar y En programación es frecuente que quien programa deba comprender exactamente en qué consiste ese problema. formular el problema a partir de los resultados La mayoría de los problemas que se resuelven en el esperados. Es muy importante que el estudiante sea aula de clase llegan a manos de los estudiantes consciente de que cuando las especificaciones de un perfectamente formulados. Esta etapa es una buena programa se comunican mediante lenguaje natural, oportunidad para plantear situaciones en forma verbal o estas pueden ser ambiguas, incompletas e escrita que vinculen la enseñanza de las matemáticas incongruentes. En esta etapa se debe hacer una con el entorno en el que vive el estudiante y que tengan representación precisa del problema (Rumbaugh, 1996); una variedad de estructuras y de formas de solución especificar lo más exactamente posible lo que hay que (Zemelman, Daniels & Hayde, 1998). 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 cuesta manera se contrarresta la costumbre tan común en el 850.000 de contado o 960.000 a crédito. Ella tiene 600.000 pesos en aula de que los problemas sean formulados por el efectivo. profesor o tomados de los libros de texto (Brown & R/. Walter, 1990). Como el efectivo que tiene doña Ruby no le alcanza para comprar el televisor de contado, ella tiene dos opciones: comprarlo totalmente a EJEMPLO crédito o pagar una parte de contado (cuota inicial) y el resto a OPCIÓN 1: crédito. Juan Felipe es jefe de bodega en una fabrica de pañales Para poder resolver el problema se debe conocer el número de desechables y sabe que la producción diaria es de 744 pañales y cuotas si desea pagarlo totalmente a crédito o conocer el número de que en cada caja donde se empacan para la venta caben 12 cuotas y el valor total del televisor si se da una cuota inicial de pañales. ¿Cuántas cajas debe conseguir Juan Felipe para empacar 600.000 pesos. los pañales fabricados en una semana? OPCIÓN 2: Juan Felipe es jefe de bodega en una fabrica de pañales Precisar los resultados esperados desechables y una de las tares del día consiste en llamar al (meta y submetas) proveedor de los empaques y ordenarle la cantidad suficiente de Para establecer los resultados que se esperan (meta) es cajas para empacar los pañales fabricados en la semana próxima. El necesario identificar la información relevante, ignorar los jefe de producción le informó ayer a Juan Felipe que la producción detalles sin importancia, entender los elementos del diaria será de 744 pañales y en cada caja cabe una docena de ellos. problema y activar el esquema correcto que permita ¿Qué debe hacer Felipe? comprenderlo en su totalidad (Woolfolk, 1999). La Opción 1 plantea directamente el problema que el estudiante Determinar con claridad cuál es el resultado final debe resolver. Mientras que la Opción 2 plantea una situación y la (producto) que debe devolver el programa es algo que pregunta es ¿Qué debe hacer Felipe?. La Opción 2 demanda al ayuda a establecer la meta. Es necesario analizar qué estudiante leer muy bien el texto para comprender la situación y así resultados se solicitan y qué formato deben tener esos poder formular el problema de Juan Felipe. Es algo similar a resultados (impresos, en pantalla, diagramación, orden, preguntar al estudiante “cuánto es 7 menos 3” versus preguntar “sí etc). El estudiante debe preguntarse: Rosa tiene 7 naranjas y Julio tiene 3, cuántas naranjas de más tiene • ¿Qué información me solicitan? Rosa”. • ¿Qué formato debe tener esta información? La comprensión lingüística del problema (entender el significado de cada enunciado) es muy importante. El Identificar datos disponibles estudiante debe realizar una lectura previa del problema (estado inicial) con el fin de obtener una visión general de lo que se le Otro aspecto muy importante en la etapa de análisis del pide y una segunda lectura para poder responder problema consiste en determinar cuál es la información preguntas como: disponible. El estudiante debe preguntarse: • ¿Puedo definir mejor el problema? • ¿Qué información es importante? • ¿Qué palabras del problema me son desconocidas? • ¿Qué información no es relevante? • ¿Cuáles son las palabras clave del problema? • ¿Cuáles son los datos de entrada? (conocidos) • ¿He resuelto antes algún problema similar? • ¿Cuál es la incógnita? • ¿Qué información es importante? • ¿Qué información me falta para resolver el • ¿Qué información puedo omitir? problema? (datos desconocidos) Pág.12 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 13. • ¿Puedo agrupar los datos en categorías? Establecer procesos (operaciones) Otro aspecto importante del estado inicial hace Consiste en determinar los procesos que permiten llegar referencia al nivel de conocimiento que el estudiante a los resultados esperados a partir de los datos posee en el ámbito del problema que está tratando de disponibles. El estudiante debe preguntarse: resolver. Es conveniente que el estudiante se pregunte a • ¿Qué procesos necesito? sí mismo: • ¿Qué fórmulas debo emplear? • ¿Qué conocimientos tengo en el área o áreas del • ¿Cómo afectan las condiciones a los procesos? problema? • ¿Qué debo hacer? • ¿Son suficientes esos conocimientos? • ¿Cuál es el orden de lo que debo hacer? • ¿Dónde puedo obtener el conocimiento que necesito para resolver el problema? En la medida de lo posible, es aconsejable dividir el • ¿Mis compañeros de estudio me pueden ayudar a problema original en otros más pequeños y fáciles de clarificar mis dudas? solucionar (submetas), hasta que los pasos para • ¿Qué expertos en el tema puedo consultar? alcanzarlas se puedan determinar con bastante precisión (módulos). Esto es lo que en programación se En el ámbito de las matemáticas, se conoce como denomina diseño descendente o top-down (Joyanes, conocimiento condicional a aquel que activan los 2001). estudiantes cuando aplican procedimientos matemáticos concretos de manera intencional y consciente a ciertas El diseño descendente se utiliza en la programación situaciones. “El conocimiento condicional proporciona al estructurada de computadores debido a que facilita: alumno un sistema de valoración sobre la extensión y • La comprensión del problema las limitaciones de su saber (qué sabe sobre el tema, su • Las modificaciones en los módulos capacidad de memoria, etc), a la vez que examina la • La verificación de la solución naturaleza de la demanda del profesor y su objetivo último, y evalúa variables externas como pueden ser el Al realizar divisiones sucesivas del problema en otros tiempo que tiene o con quién realiza la tarea” (Orubia & más pequeños y manejables (módulos), hay que tener Rochera & Barberà, 2001). cuidado para no perder de vista la comprensión de este como un todo. El estudiante, luego de dividir el problema EJEMPLO original en submetas (módulos), debe integrar cada Esteban está ahorrando para comprar una patineta que vale 55.000 parte de tal forma que le permita comprender el pesos. Su papá le ha dado una mesada de 5.000 pesos durante 7 problema como un todo (Woolfolk, 1999). semanas. Por lavar el auto de su tío tres veces recibió 8.000 pesos. Su hermano ganó 10.000 pesos por hacer los mandados de su Igualmente hay que tener cuidado cuando se utiliza este mamá y 4.000 por sacar a pasear el perro. ¿Esteban tiene ahorrado enfoque para resolver problemas complejos o extensos, el dinero suficiente para comprar la patineta o aún le falta? en cuyo caso resulta más aconsejable utilizar una (Adaptado de Casasbuenas & Cifuentes (1998b), página 23). metodología orientada a objetos. Especialmente, cuando R/. profesores universitarios manifiestan su preocupación Formular el problema: Ya se encuentra claramente planteado. por el aprendizaje de malas prácticas de programación Resultados esperados: Si o no tiene Esteban ahorrado el dinero en el colegio. Hay casos en los cuales algunos suficiente para comprar una patineta que vale 55.000 pesos. estudiantes no han podido cambiar su forma de pensar Datos disponibles: Los ingresos de Esteban: 5.000 pesos por 7 “estructurada” por otra orientada a objetos, la cual hace semanas + 8.000 pesos. Los 10.000 y 4.000 pesos qué ganó el parte de los programas universitarios modernos en la hermano de Esteban son irrelevantes para la solución de este carrera de Ingeniería de Sistemas. Es aconsejable que problema y se pueden omitir. los ejemplos y actividades planteados a los estudiantes contengan solo un problema cuya solución sea muy corta (no necesariamente sencillo de resolver). De esta Determinar las restricciones forma ellos podrán enfocarse en aplicar completamente Resulta fundamental que los estudiantes determinen la metodología propuesta para analizar problemas aquello que está permitido o prohibido hacer y/o utilizar (formular el problema, especificar los resultados, para llegar a una solución. En este punto se deben identificar la información disponible, determinar las exponer las necesidades y restricciones (no una restricciones y definir los procesos) sin perderse en el propuesta de solución). El estudiante debe preguntarse: laberinto de un problema demasiado complejo. • ¿Qué condiciones me plantea el problema? • ¿Qué está prohibido hacer y/o utilizar? Las operaciones para llegar a los resultados esperados • ¿Qué está permitido hacer y/o utilizar? se implementan en Logo mediante procedimientos. Por • ¿Cuáles datos puedo considerar fijos (constantes) ejemplo, si se desea producir un software para trabajar para simplificar el problema? con figuras geométricas de diferentes tipos, el triángulo • ¿Cuáles datos son variables? rectángulo será uno de los objetos a tener en cuenta y • ¿Cuáles datos debo calcular? este a su vez, debe prestar los siguientes servicios (Jiménez, 2002): Pág.13 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 14. 1. Un procedimiento para leer los datos de entrada. Cinco pasos que deben tener en cuenta los estudiantes para resolver 2. Un procedimiento para calcular el área. problemas matemáticos (Rodríguez, 1995): 3. Un procedimiento para calcular la hipotenusa. 1. Leer con mucho cuidado el problema hasta entenderlo. 4. Un procedimiento para calcular el perímetro. 2. Buscar la(s) pregunta(s). 5. Un procedimiento para mostrar los resultados. 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é? • ¿Qué debes hacer luego? ¿Para qué? • ¿Cuál debe ser la respuesta (estimada) del problema? ACTIVIDAD Basándose en la metodología expuesta en esta unidad, dividir a los estudiantes en grupos y distribuir entre ellos la tarea de análisis detallado (“Formular el problema”, “Resultados esperados”, “Datos Ilustración 1-6: Descripción de los servicios que debe estar en disponibles”, “Determinar las restricciones” y “Procesos necesarios”) capacidad de prestar el objeto “triángulo rectángulo”. de los siguientes problemas (uno por grupo): 1. Hallar el área de un cuadrado cuyo lado mide 5 cm. EJEMPLO 2. Hallar uno de los lados de un rectángulo cuya área es de 15 cm2 De acuerdo con la metodología descrita, analizar el problema de y uno de sus lados mide 3 cm. hallar el área de un triángulo rectángulo cuya Base mide 3 cm, la 3. Hallar el área y el perímetro de un círculo cuyo radio mide 2 cm. Altura 4 cm y la Hipotenusa 5 cm. 4. Hallar el área de un pentágono regular de 6 cm de lado y con 4 R/ cm de apotema. Formular el problema: Ya se encuentra claramente planteado. Resultados esperados: El área de un triángulo rectángulo. Dato Curioso Datos disponibles: Base, Altura, Hipotenusa, tipo de triángulo. La Deep Blue de IBM fue el primer computador que superó a un incógnita es el área y todos los valores son constantes. El valor de la campeón mundial de ajedrez cuando le ganó una partida a Gary hipotenusa se puede omitir. El estudiante debe preguntarse si sus Kasparov en febrero de 1996. La victoria de Deep Blue formaba conocimientos actuales de matemáticas le permiten resolver este parte de una serie de seis partidas, que Kasparov terminó ganando problema; de no ser así, debe plantear una estrategia para obtener 4-2. En 1997, una versión nueva y mejorada de Deep Blue los conocimientos requeridos. contraatacó en una segunda serie. Esta vez, el computador, capaz Determinar las restricciones: Utilizar las medidas dadas. de planear una vertiginosa cantidad de 200 millones de posiciones Procesos necesarios: Guardar en dos variables los valores de Base por segundo, ganó la serie a Kasparov por 3.5 a 2.5 puntos. (Libro y Altura; Guardar en una constante el divisor 2; aplicar la fórmula Gunness de los Records 2002) área=base*altura/2; comunicar el resultado (área). ACTIVIDAD La mayoría de las metodologías propuestas para la solución de problemas matemáticos se aproxima al ciclo de programación de computadores. Se puede iniciar planteando a los estudiantes problemas matemáticos como los siguientes, encontrados en Casasbuenas & Cifuentes (1998b): 1. Luisa quiere invertir sus ahorros en la compra de discos compactos de moda. Si tiene $68.000, ¿Cuántos discos comprará? Analizar el problema: • ¿Qué tienes en cuenta cuando vas a comprar un disco? • ¿Tienes información suficiente para resolver el problema de Luisa? Ilustración 1-7: Fases segunda, tercera y cuarta, del ciclo de programación. • ¿Qué dato averiguarías para saber cuántos discos puede comprar Luisa? Plantear ahora este problema utilizando la metodología de “Formular el problema”, “Resultados esperados”, “Datos disponibles”, Diseñar el algoritmo (trazar un plan) “Determinar las restricciones” y “Procesos necesarios”. Este tema se tratará en profundidad en las unidades 2 y 3 de esta guía. Por el momento, podemos resumir que TIP únicamente hasta cuando se ha realizado un análisis a Pág.14 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 15. fondo del problema (utilizando alguna metodología), se representado gráficamente se pasa a la etapa de puede proceder a elaborar el algoritmo (diagrama de traducción a un lenguaje de programación determinado flujo). Este consiste en la representación gráfica, (en nuestro caso será Logo). Cada lenguaje posee sus mediante símbolos geométricos, de la secuencia lógica propias reglas gramaticales, por lo tanto es fundamental de las instrucciones (plan) que posteriormente serán que los estudiantes conozcan de antemano la sintaxis traducidas a un lenguaje de programación, como Logo, de los comandos que deben utilizar para resolver el para ejecutarlas y probarlas en un computador. problema. A mayor dominio del lenguaje de programación, mayor posibilidad de llegar rápidamente a EJEMPLO una solución satisfactoria. A esta fase de traducción se Diseñar un algoritmo (seudocódigo y diagrama de flujo) para hallar el le conoce comúnmente como codificación. área de un triángulo rectángulo cuya Base mide 3 cm, la Altura 4 cm y la Hipotenusa 5 cm. EJEMPLO R/ A partir del ejemplo anterior, escribir un procedimiento en Logo que ANÁLISIS DEL PROBLEMA se llame triángulo para hallar el área de un triángulo rectángulo cuya Formular el problema: Ya se encuentra claramente planteado. Base mide 3 cm, la Altura 4 cm y la Hipotenusa 5 cm. Resultados esperados: El área de un triángulo rectángulo. R/ Datos disponibles: Base, Altura, Hipotenusa, tipo de triángulo. La MicroMundos incógnita es el área y todos los valores son constantes. El valor de la para triángulo hipotenusa se puede omitir. El estudiante debe preguntarse si sus local "div conocimientos actuales de matemáticas le permiten resolver este local "base problema; de no ser así, debe plantear una estrategia para obtener local "altura los conocimientos requeridos. local "área Determinar las restricciones: Utilizar las medidas dadas. da "div 2 Procesos necesarios: Guardar en dos variables (BASE y ALTURA) da "base 3 los valores de Base y Altura; Guardar en una constante (DIV) el da "altura 4 divisor 2; aplicar la fórmula BASE*ALTURA/DIV y guardar el da "área :base * :altura / :div resultado en la variable AREA; comunicar el resultado (AREA). muestra :área fin ALGORITMO EN SEUDOCÓDIGO Paso 1: Inicio Scratch Paso 2: Asignar el número 2 a la constante "div" Paso 3: Asignar el número 3 a la constante “base” Paso 4: Asignar el número 4 a la constante “altura” Paso 5: Guardar en la variable "área" el resultado de base*altura/div Paso 6: Imprimir el valor de la variable "área" Paso 7: Final Al escribir en el centro de mando de MicroMundos la palabra triángulo se debe obtener como resultado 6. En el caso de Scratch, hacer clic en la bandera verde y se debe obtener el mismo resultado. Depurar el programa (revisar) Este tema se tratará en profundidad en la Unidad 4 de esta guía. Después de traducir el algoritmo en un lenguaje de programación como Logo, el programa resultante debe ser probado y validados los resultados. ALGORITMO EN DIAGRAMA DE FLUJO A este proceso se le conoce como depuración. Depurar programas contribuye a mejorar la capacidad en los Ilustración 1-8: Diagrama de Flujo para hallar el área de un triángulo estudiantes para resolver problemas; la depuración rectángulo. basada en la retroalimentación es una habilidad útil para toda la vida (Stager, 2003). Quienes han escrito alguna vez un programa de Traducir el algoritmo (ejecutar el plan) computador, saben de la dificultad que representa Este tema se tratará en profundidad en las Unidades 3 y elaborar programas perfectos en el primer intento, 4 de esta guía. Una vez que el algoritmo está diseñado y Pág.15 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 16. 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: 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). . Pág.16 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 17. CREATIVIDAD Si se quiere llegar a un planteamiento, para Educación final llega a ser aceptada por un grupo cultural Básica, que contribuya efectivamente a desarrollar la particular”. creatividad programando computadores, es conveniente como primera medida, llegar a un acuerdo sobre qué es En los Estándares Nacionales Estadounidenses de TIC la creatividad, pues varios autores la definen de manera para Estudiantes (NETS’S), reformulados por ISTE, el diferente. primer grupo corresponde a Creatividad e Innovación. Para ISTE, los estudiantes al finalizar sus Educación De acuerdo con el Diccionario de la Real Academia Media deben demostrar pensamiento creativo, construir Española (RAE), creatividad es la facultad de crear o la conocimiento y desarrollar productos y procesos capacidad de creación. Por su parte, la enciclopedia innovadores utilizando las TIC. Microsoft Encarta define la Creatividad como la capacidad de inventar algo nuevo, de relacionar algo Según ISTE (2007), los estudiantes deben estar en conocido de forma innovadora o de apartarse de los capacidad de aplicar su conocimiento previo para esquemas de pensamiento y conducta habituales. generar nuevas ideas, productos o procesos; crear Según Wikipedia, la creatividad es un proceso mental y trabajos originales como medios de expresión personal social que implica generar nuevas ideas o conceptos, o o grupal; usar modelos y simulaciones para explorar nuevas asociaciones entre ideas y conceptos conocidos, sistemas y temas complejos; e identificar tendencias y lo que habitualmente produce soluciones originales. Las prever posibilidades. definiciones anteriores se refieren al acto de inventar cualquier cosa nueva (Ingenio), a la capacidad de Según el Comité Consultivo Nacional para la Educación encontrar soluciones originales y a la voluntad de Creativa y Cultural de Inglaterra (NACCCE, por su sigla modificar o transformar el mundo. en Inglés), la creatividad se define como la actividad imaginativa que tiene como objetivo producir resultados Ana Craft (2001) anota que las definiciones de tanto originales como generadores de valor (Robinson, creatividad más aceptadas en los últimos 50 años son 1999). aquellas que unen creatividad e imaginación. Este enfoque sugiere que cada persona tiene potencial Para el Consorcio de Habilidades de Aprendizaje para el creativo ya que este es un aspecto fundamental de la Siglo XXI, las habilidades de aprendizaje e innovación naturaleza humana. Ella se refiere a la “creatividad con c se están reconociendo como aquellas que separan a los minúscula” como la habilidad para hacer frente, de estudiantes que están preparados para los ambientes de manera efectiva, a los retos y cambios que nos plantea vida y de trabajo del Siglo XXI, cada vez más complejos, la vida en el siglo XXI. Esta es la creatividad que sirve de los que no lo están. Hacer énfasis en creatividad, para afrontar tareas cotidianas (elaborar una nueva pensamiento crítico, comunicación y colaboración es receta o un arreglo floral, escribir una carta o poema, esencial en la preparación de los estudiantes para el enseñar un nuevo truco a alguien, etc). También entra futuro. Entre las competencias de creatividad e en juego cuando se deben superar obstáculos tales innovación que propone el Consorcio están: demostrar como desempleo y pobreza o aprovechar originalidad e inventiva en el trabajo; desarrollar, oportunidades. Esta “creatividad” se contrapone a la implementar y comunicar nuevas ideas a otros; tener “Creatividad con C mayúscula” propuesta por el apertura y responder a perspectivas nuevas y diversas; psiquiatra Gene Cohen (citado por Banaji & Burn, 2006), y actuar con ideas creativas para realizar una que caracteriza los logros extraordinarios de personas contribución tangible y útil en el campo en el que ocurre poco corrientes como artistas renombrados, científicos e la innovación. inventores. Por su parte, el Consorcio para la Creatividad propone Stenberg (1997), autor reconocido en este campo, que ésta se refiere a mucho más que “hacer arte”. La argumenta que la creatividad no es solo una capacidad, creatividad tiene que ver con el desarrollo de la sino un proceso en el que intervienen tres tipos de capacidad para: cuestionar, hacer conexiones, innovar, inteligencia: creativa (ir más allá de lo dado y engendrar resolver problemas y reflexionar críticamente; todas ideas nuevas e interesantes), analítica (analizar y éstas son habilidades altamente valoradas en el mundo evaluar ideas, resolver problemas y tomar decisiones) y laboral actual; y agregan, “el aprendizaje creativo práctica (traducir teorías abstractas en realizaciones empodera a los jóvenes a imaginar un mundo diferente y efectivas). Estas dos últimas inteligencias aportan la les da confianza y motivación para llevar a cabo lo que posibilidad de diferenciar entre ideas innovadoras imaginan” (Creative Partnerships, 2006). buenas y malas y, además, relacionarlas con la vida cotidiana (López, 2000). Por su parte, Gardner (1993) Son muchas las definiciones que intentan explicar el define a la persona creativa como alguien que concepto de creatividad, aquí solo se exponen algunas “regularmente resuelve problemas, genera productos o de ellas a fin de dar una perspectiva amplia a los define nuevos cuestionamientos en un dominio, de docentes en este campo. El desarrollo de pensamiento manera que en principio se considera nueva pero que al algorítmico que promueve esta guía, mediante el Pág.17 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 18. enfoque de solución de problemas predefinidos, se realizar observaciones, hacer abstracción en diversos complementa con el desarrollo de pensamiento creativo. temas, realizar ejercicios de dibujo y utilizar metáforas y Pues en el mundo actual, en el que lo único permanente analogías. es el cambio, además de aprender a resolver tipos específicos de problemas, los estudiantes deben Sin embargo, puede sonar ambicioso implementar toda aprender a improvisar creativamente cuando se una metodología para desarrollar la creatividad en un encuentren con situaciones inesperadas y a explorar curso de Algoritmos y Programación. Por esto y para alternativas de solución variadas (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 “genialidad” (C mayúscula). predefinidos que para resolverlos pueden hacer uso de metodologías como la propuesta por Polya. Es Respecto al genio creativo, el Consorcio para la precisamente esta metodología la que se ha utilizado Creatividad considera que éste es un discurso para resolver problemas matemáticos; sin embargo, posromántico apoyado por quienes han visto la algunos docentes han manifestado preocupación ya que creatividad únicamente como una cualidad especial de si bien, la metodología ayuda a que los estudiantes pocas personas, generalmente artistas, tales como estructuren su pensamiento, muchos de ellos se escritores, músicos, pintores, etc (Banaji & Burn, 2006). encasillan en ella y les cuesta trabajo encontrar Los que explican la creatividad desde una perspectiva soluciones alternativas. basada en características de la personalidad afirman que las personas creativas tienen rasgos comunes: En este sentido, entornos de programación como buen humor; confianza en sí mismos; flexibilidad y Scratch y MicroMundos, comprometen a los estudiantes adaptabilidad; alta capacidad de asociación; en la búsqueda de soluciones innovadoras a problemas sensibilidad; curiosidad intelectual; percepción y inesperados; no se trata solamente de aprender a observación agudas; iniciativa para tomar riesgos; solucionar problemas de manera predefinida, sino de imaginación; expresividad; capacidad crítica; estar preparado para generar nuevas soluciones a entusiasmo; y, tenacidad (López, 2000). Por el contrario, medida que los problemas se presentan (Resnick, quienes no son creativos presentan recurrentemente 2007). algunas de los siguientes rasgos: tienden a especializarse en ciertos temas; son extremadamente Por su parte, formular alternativas, se basa en el primer racionales; les falta confianza en si mismos; no tienen principio básico del Pensamiento Lateral propuesto por motivación; su capacidad para escuchar es reducida; De Bono (1970): “cualquier modo de valorar una respetan la autoridad en exceso; no son buenos situación es sólo uno de los muchos modos posibles de observadores; y, tienen deficiente pensamiento crítico. valorarla”. La búsqueda de alternativas a una situación o problema parece un proceso típico del pensamiento Sin embargo, buena parte de los autores que han lógico; sin embargo, desde el punto de vista de la trabajado en profundidad el tema de la creatividad, entre creatividad no se busca la mejor alternativa sino la ellos Resnick, De Bono y Johansson, no solo formulación del mayor número posible de alternativas. argumentan que si es posible desarrollarla, sino que Por lo tanto, es conveniente fijar de entrada y poner por aportan propuestas concretas para trabajarla en el aula escrito, el número de alternativas que los estudiantes de clase. Además, plantean que las siguientes deben plantear. Desde la lógica, por lo general la habilidades cognitivas, susceptibles de desarrollar, están búsqueda se interrumpe cuando se halla una alternativa presentes en las personas consideradas como creativas: que parece satisfactoria. se plantean nuevos objetivos; exploran un mayor número de alternativas; evalúan, durante el transcurso Como aprestamiento a la realización de proyectos que del proceso de solución, los objetivos, las alternativas y busquen deliberadamente desarrollar la creatividad, es las tareas; se aseguran de entender a cabalidad los deseable que los estudiantes realicen actividades tales problemas; son observadores; usan la abstracción; usan como: hacer asociación de ideas sobre temas ya vistos metáforas y analogías; desglosan la tarea en subtareas en clase, elaborar listados de atributos de objetos y desarrollan productos intermedios; y, usan estrategias cotidianos, buscar al menos 30 usos para cada uno de metacognitivas (López, 2000). los objetos cotidianos propuestos, Jugar con Torres de Hanoi de tres y cuatro discos y, elaborar figuras con el Según De Bono (1970), es conveniente empezar a Tangram, entre otras. Estas actividades permiten enseñar, a partir de los 7 años, técnicas de pensamiento evidenciar el estilo de pensamiento predominante de que faciliten el desarrollo de la creatividad. Entre las que cada estudiante. Quienes piensan convergentemente se pueden implementar en cursos de diferentes tenderán a abordar los problemas de forma lógica, asignaturas tenemos: plantear problemas inesperados, ordenada y a establecer relaciones comunes; quienes formular alternativas, proponer e implementar diseños, piensan divergentemente, tenderán a hacer juicios Pág.18 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 19. ilógicos, innovadores y poco comunes. cantidad de alternativas de solución que generen los estudiantes a un problema planteado, que las respuestas correctas. Por tanto, debe evitarse a toda Espiral del pensamiento creativo costa, la emisión de juicios de valor negativos ante Con el fin de promover el desarrollo de la creatividad, cualquier alternativa, por ilógica que parezca. esta Guía propone utilizar la Espiral del Pensamiento Creativo propuesta por Mitchel Resnick (2007). En esta, Adicionalmente, en las diferentes fases de la Espiral, se los estudiantes imaginan lo que quieren hacer; crean un debe aprovechar cualquier oportunidad para plantear proyecto basado en sus ideas; juegan con sus ideas y problemas inesperados y para solicitar a los estudiantes creaciones; comparten sus ideas y creaciones con otros que formulen alternativas de solución a cada problema o y reflexionan sobre sus experiencias; lo anterior los lleva situación que se presente. En este mismo sentido, la a imaginar nuevas ideas y nuevos proyectos. La espiral práctica indica que en reiteradas ocasiones los genera un proceso indefinido de mejoramiento continuo. estudiantes plantean a sus docentes situaciones que ellos desean desarrollar en sus proyectos. Dichas situaciones se convierten en problemas inesperados que los docentes deben resolver. Estas situaciones las pueden aprovechar los docentes para plantearlas a toda la clase como problemas inesperados. EJEMPLO Proyecto: La cadena alimentaria Estándares MEN que se cubren (Colombia): Explico la dinámica de un ecosistema teniendo en cuenta las necesidades de energía y nutrientes de los seres vivos (cadena alimentaria). Descripción: En este proyecto los estudiantes deben representar el comportamiento de varios seres vivos en su respectivo ecosistema, teniendo en cuenta tanto necesidades como cantidades disponibles Ilustración 1-9: Espiral del Pensamiento Creativo diseñada por el Dr. de energía y nutrientes (cadena alimentaria). Para ello, deben Mitchel Resnick elaborar una simulación, en MicroMundos o en Scratch, de una cadena alimentaria teniendo en cuenta seres productores, En un comienzo, este proceso lo debe planear y dirigir el hervivoros, carnívoros y omnivoros. docente. Sin embargo, a medida que los estudiantes lo interiorizan, aprenden a recorrerla de manera Fases del proyecto: independiente para desarrollar sus propias ideas, 1. Los estudiantes deben imaginar un ecosistema que contenga ponerlas a prueba, desafiar límites y fronteras, por lo menos cuatro seres vivos. Luego deben dibujar o importar experimentar con alternativas, recibir retroalimentación los seres vivios que imaginaron. Además, deben dibujar el de otros y generar nuevas ideas con base en sus escenario que representa el ecosistema. experiencias (Resnick, 2007). En este punto, el docente debe estimular la reflexión para que ellos verifiquen que el ecosistema que dibujaron corresponde Es muy importante que al diseñar las diferentes fases de con los seres vivientes que en la simulación incluyeron en este. un proyecto, en el cual los estudiantes utilizarán un Un problema inesperado puede plantearse mediante la pregunta ambiente de programación como Scratch o ¿todos los seres vivos que representaste viven en ese MicroMundos, los docentes tengan en cuenta los ecosistema? Si la respuesta es negativa, deben plantear por elementos de la espiral de la creatividad. Por ejemplo, escrito al menos tres alternativas de solución (por ejemplo: se deben incluir en el proyecto espacios para compartir cambiar el ecosistema, cambiar alguno de los seres vivos, el trabajo realizado, para escuchar y valorar la cambiarlo todo, etc). retroalimentación del grupo a cada trabajo individual y Además, cada ser vivo debe tener un tamaño proporcional en para reflexionar sobre las posibles mejoras que se relación a los otros seres y elementos del ecosistema. pueden realizar con base en la retroalimentación En caso de ser necesario, se debe destinar un lapso de tiempo recibida. de la clase para investigar ,en Internet o en la Biblioteca Escolar, qué seres vivos habitan en el ecosistema que Para que la Espiral del Pensamiento Creativo funcione, dibujaron. los docentes deben promover un ambiente en el que se 2. Esta fase inicia con otro problema inesperado: “La tarea quedó permita imaginar, transformar, idealizar, desestructurar y mal planteada y hay que corregirla, de los cuatro seres vivos reestructurar. Un ambiente donde se pueda comunicar, que se crearon en la fase anterior, debe haber por lo menos un donde haya tolerancia para las reacciones espontáneas ser vivo de cada tipo: productor, herbívoro, carnívoro y (López, 2000). Los docentes deben propiciar un omnivoro”. ambiente de confianza, en el que sea más importante la Los estudiantes deben investigar qué seres vivos de cada tipo Pág.19 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 20. habitan en el ecosistema que dibujaron. Luego, dibujar o cierta región de la pantalla, se debe hacer un control importar los seres vivos correctos para que se cumpla la permanente (dentro de un por siempre) con el comando condición planteada en la tarea rectificada. No es necesario que “posición y de objeto1” ó “posición x de objeto 1”. Si el eliminen los seres vivos que habían creado en la fase 1, ser supera ese valor, entonces se lo desplaza en una siempre y cuando correspondan al ecosistema. posición menor en el eje x o y, y se gira 45 grados. 3. A continuación, deben programar el desplazamiento de los seres vivos por todo el espacio disponible y de manera aleatoria En la fase 6 es recomendable crear cada uno de los (se pueden utilizar las instrucciones “rebotar si está tocando un seres vivos (ejemplo, el conejo) y hacerle toda la borde” y “número al azar entre 1 y 15 grados” como parámetro programación para que se comporte de acuerdo a lo de la instrucción girar). esperado. Una vez funcione correctamente la Como problema inesperado pedir que se restrinja el movimiento programación, se copia varias veces el ser vivo de manera que se aproxime al comportamiento real de cada ser (ejemplo, el conejo) y se ubica en posiciones diferentes vivo. Por ejemplo, si el fondo tiene tierra y firmamento, entonces del escenario. Además, cada copia del ser vivo debe un ser vivo que no vuela, no se puede mover en el área de la aparecer en momentos diferentes para simular la tasa pantalla que representa el firmamento. Agregar variables para de reproducción. controlar la velocidad a la que se desplaza cada ser vivo. Algunos, como las plantas, tendrán velocidad 0. Por último, bien sea que los estudiantes utilicen el 4. Los estudiantes comparten el trabajo realizado con el resto de la entorno de programación en Ciencias Naturales para clase y reciben retroalimentación tanto de sus compañeros, comunicar resultados obtenidos en procesos de como del docente. indagación y/o experimentación o para elaborar 5. Atender la retroalimentación suministrada. Hacer la simulaciones de diversos fenómenos naturales, los programación correspondiente para que cuando a un ser vivo lo docentes deben promover comportamientos personales toque otro al que le sirve de alimento, el primero desaparezca y sociales fundamentales para el funcionamiento de la (como si se lo hubiera comido). Espiral del Pensamiento Creativo, tales como: 6. El problema inesperado ahora es que debe programarse la • Escuchar activamente a compañeros y compañeras. aparición de varios seres vivos iguales, ubicados en diferentes • Reconocer puntos de vista diferentes y compararlos posiciones de la pantalla (por ejemplo, si uno de los seres vivos con los propios. de la animación es un conejo, copiar entonces el objeto conejo, • Reconocer y aceptar el escepticismo de los demás al menos tres veces, pues en un ecosistema rara vez se compañeros ante la información que se presenta. encuentra un solo animal de cada especie). Solicitar a los • Cumplir con las funciones asignadas cuando se estudiantes, al menos dos alternativas, para realizar esta tarea. trabaja en grupo. Las apariciones deben hacerse de acuerdo a una tasa de • Respetar y cuidar los seres vivos y objetos reproducción establecida para cada uno de los seres vivos. Por presentes en el entorno. ejemplo, se reproducen más rápidamente los conejos que los zorros. Se puede destinar un tiempo de la clase para investigar la tasa de reproducción de cada uno de los seres vivos que se incluyen en la animación. 7. Compartir con el resto de la clase el trabajo realizado y recibir retroalimentación de los compañeros. 8. Realizar los últimos ajustes al funcionamiento de la simulación y agregar controles para manipular las tasas de reproducción y/o la velocidad de desplazamiento para cada ser vivo. 9. Socializar con el resto de la clase el trabajo finalizado. En este ejemplo hay que prestar atención a lo siguiente: En la fase 3, se debe crear una variable por cada ser vivo, que controle la velocidad a la cual este se va a mover (los que no se desplazan, como las plantas, deben inicializarse con valor 0). Por lo regular, esta condición se implementa con el comando “esperar x segundos”; sin embargo, nótese que si el valor de la variable aumenta, en lugar de aumentar la velocidad, lo . que hace es disminuirla ya que el tiempo de espera será mayor. Para limitar el desplazamiento de un ser vivo a Pág.20 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 21. UNIDAD 2: ALGORITMOS, CONCEPTOS BÁSICOS ¿QUÉ ES UN ALGORITMO? ALGORITMO EN SEUDOCÓDIGO Paso 1: Inicio. Paso 2: Leer los dos números (“a” y “b”). Avanzar al paso 3. Paso 3: Comparar “a” y “b” para determinar cuál es mayor. Avanzar al paso 4. Paso 4: Si “a” y “b” son iguales, entonces ambos son el resultado esperado y termina el algoritmo. En caso contrario, avanzar al paso 5. Paso 5: Si “a” es menor que “b”, se deben intercambiar sus valores. Avanzar al paso 6; si “a” no es menor que “b”, avanzar al paso 6. Paso 6: realizar la operación “a” menos “b”, asignar el valor de “b” a “a” y asignar el valor de la resta a “b”. Ir al paso 3. Ilustración 2-1: Segunda fase del ciclo de programación. Investigaciones realizadas en Educación Básica (en ambientes constructivistas) recomiendan incluir la Luego de analizar detalladamente el problema hasta solución de problemas en el currículo de matemáticas entenderlo completamente, se procede a diseñar un de forma que provea oportunidades a los estudiantes algoritmo (trazar un plan) que lo resuelva por medio de para crear sus propios algoritmos y generalizarlos a un pasos sucesivos y organizados en secuencia lógica. El conjunto específico de aplicaciones (Wilson, Fernández concepto intuitivo de algoritmo (procedimientos y reglas) & Hadaway, 1993). Los estudiantes deben reflexionar se puede encontrar en procesos naturales de los cuales sobre sus habilidades de planificación y sobre cómo muchas veces no se es conciente. Por ejemplo, el pueden utilizar esas habilidades en diferentes contextos. proceso digestivo es un concepto intuitivo de algoritmo Por otra parte, en un estudio sobre Logo (Clements & con el que se convive a diario sin que haga falta un Meredith, 1992), se concluye que cuando los maestros definición “matemática” del mismo. Tener claro el enfatizaron en la elaboración de un plan para desarrollar proceso digestivo, no implica que los alimentos un procedimiento matemático (este incluía el uso de consumidos nutran más. La familiaridad de lo cotidiano estrategias como dividir conceptos grandes en otros impide a las personas ver muchos algoritmos que se más pequeños) encontraron que los estudiantes suceden a su alrededor. Procesos, rutinas o biorritmos empezaron a utilizar con mayor frecuencia estrategias naturales como la gestación, las estaciones, la de planificación y de dibujo para resolver problemas circulación sanguínea, los ciclos cósmicos, etc, son matemáticos en los cuales no utilizaban Logo. algoritmos naturales que generalmente pasan desapercibidos. Dato Curioso La palabra Algoritmo tiene su origen en el nombre del matemático La rama del saber que mayor utilización ha hecho del Persa "Mohamed ibn Musa al Khwarizmi" (825 d.C.). Su apellido fue enfoque algorítmico es las matemáticas. Durante miles traducido al latín como Algorismus y posteriormente paso al español de años el ser humano se ha esforzado por abstraer la como Algoritmo. Khwarizmi fue bibliotecario en la corte del califa al- estructura de la solución de problemas con el fin de Mamun y astrónomo en el observatorio de Bagdad. Sus trabajos de determinar claramente cuál es el camino seguro, preciso álgebra, aritmética y tablas astronómicas adelantaron enormemente y rápido que lleva a esas soluciones. Son abundantes el pensamiento matemático y fue el primero en utilizar la expresión los ejemplos: máximo común divisor, teorema de al-yabr (de la que procede la palabra álgebra). Su trabajo con los Pitágoras, áreas de figuras geométricas, división, suma algoritmos introdujo el método de cálculo utilizando la numeración de números fraccionarios, etc. Todos estos algoritmos arábiga y la notación decimal. matemáticos independizan los datos iniciales del problema de la estructura de su solución, lo que permite su aplicación con diferentes conjuntos de datos iniciales En el ámbito de la computación, los Algoritmos son una (variables). herramienta que permite describir claramente un conjunto finito de instrucciones, ordenadas secuencialmente y libres de ambigüedad, que debe EJEMPLO llevar a cabo un computador para lograr un resultado Consideremos el algoritmo de Euclides para hallar el Máximo Común previsible. Vale la pena recordar que un programa de Divisor (MCD) de dos números enteros positivos dados. Obsérvese computador consiste de una serie de instrucciones muy que no se especifica cuáles son los dos números, pero si se precisas y escritas en un lenguaje de programación que establece claramente una restricción: deben ser enteros y positivos. el computador entiende (Logo, Java, Pascal, etc). En resumen, un Algoritmo es una secuencia ordenada Pág.21 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 22. de instrucciones, pasos o procesos que llevan a la comunicación depende de elementos como vocabulario, solución de un determinado problema. Los hay tan uso de comodines en lugar de vocablos precisos, uso de sencillos y cotidianos como seguir la receta del médico, adverbios coloquiales en lugar de adverbios formales, abrir una puerta, lavarse las manos, etc; hasta los que etc. Es fundamental que los estudiantes aprendan a conducen a la solución de problemas muy complejos. diferenciar entre comunicación informal y comunicación formal, cuya principal característica es la precisión. Los algoritmos no admiten ningún tipo de ambigüedad ya EJEMPLO que los lenguajes de programación tienen un Un procedimiento que realizamos varias veces al día vocabulario restringido y preciso. Esto exige la consiste en lavarnos los dientes. Veamos la forma de utilización de un conjunto determinado de palabras, expresar este procedimiento como un Algoritmo: mandos o primitivas en cualquiera de los procedimientos 1. Tomar la crema dental que se elaboren. 2. Destapar la crema dental 3. Tomar el cepillo de dientes ACTIVIDAD 4. Aplicar crema dental al cepillo Discutir en parejas el ejemplo de la bombilla y proponer algunas 5. Tapar la crema dental mejoras. Luego, un voluntario pasa al tablero y escribe un Algoritmo 6. Abrir la llave del lavamanos con participación de toda la clase. 7. Remojar el cepillo con la crema dental 8. Cerrar la llave del lavamanos 9. Frotar los dientes con el cepillo 10. Abrir la llave del lavamanos Pensamiento Algorítmico 11. Enjuagarse la boca Cuando se habla de algoritmos, con frecuencia 12. Enjuagar el cepillo aparecen tres tipos de pensamiento que generalmente 13. Cerrar la llave del lavamanos se relacionan con ellos y que se utilizan 14. Secarse la cara y las manos con una toalla indiscriminadamente como sinónimos: Pensamiento Computacional, Pensamiento Algorítmico y Pensamiento Procedimental. Por lo tanto es importante puntualizar a EJEMPLO qué se refiere cada uno de estos pensamientos. El ejemplo de cambiar una bombilla (foco) fundida es uno de los más utilizados por su sencillez para mostrar los pasos de un Algoritmo: Según Moursund (2006), el pensamiento computacional 1. Ubicar una escalera debajo de la bombilla fundida hace referencia a la representación y solución de 2. Tomar una bombilla nueva problemas utilizando inteligencia humana, de máquinas 3. Subir por la escalera o de otras formas que ayuden a resolver el problema. El 4. Girar la bombilla fundida hacia la izquierda hasta soltarla pensamiento algorítmico se refiere al desarrollo y uso de 5. Enroscar la bombilla nueva en el plafón hasta apretarla algoritmos que puedan ayudar a resolver un tipo 6. Bajar de la escalera especifico de problema o a realizar un tipo especifico de 7. Fin tarea. Por su parte, el pensamiento procedimental se ocupa del desarrollo y utilización de procedimientos diseñados para resolver un tipo especifico de problema En términos generales, un Algoritmo debe ser: o para realizar un tipo especifico de tarea, pero que no • Realizable: El proceso algorítmico debe terminar necesariamente, siempre resulta exitoso. después de una cantidad finita de pasos. Se dice que un algoritmo es inaplicable cuando se ejecuta Por otra parte y de acuerdo con un reporte del Consejo con un conjunto de datos iniciales y el proceso Nacional de Investigación de Estados Unidos (National resulta infinito o durante la ejecución se encuentra Research Council, NRC, 2004), conocido como “Being con un obstáculo insuperable sin arrojar un Fluent with Information Technology”, el Pensamiento resultado. Algorítmico incluye elementos tales como: • Comprensible: Debe ser claro lo que hace, de descomposición funcional, repetición (iteración y/o forma que quien ejecute los pasos (ser humano o recursión), organización de datos (registro, campo, máquina) sepa qué, cómo y cuándo hacerlo. Debe arreglo, lista, etc), generalización y parametrización, existir un procedimiento que determine el proceso diseño por descomposición de un problema en partes de ejecución. más pequeñas y manejables (top-down) y refinamiento. • Preciso: El orden de ejecución de las instrucciones debe estar perfectamente indicado. Cuando se El Pensamiento Algorítmico está fuertemente ligado al ejecuta varias veces, con los mismos datos iniciales, pensamiento procedimental requerido en la el resultado debe ser el mismo siempre. La precisión programación de computadores; sin embargo, su implica determinismo. desarrollo puede conducir a los estudiantes a aproximarse guiada y disciplinadamente a los problemas Un aspecto muy importante sobre el cual los estudiantes de forma que este pueda transferirse a otros ambientes deben reflexionar es la ambigüedad del lenguaje natural diferentes a los de la programación. En pocas palabras, que utilizan para comunicarse diariamente con sus la programación de computadores aporta al ámbito semejantes. La informalidad o formalidad en la escolar un laboratorio para desarrollar habilidades Pág.22 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 23. indispensables en la vida real del Siglo XXI. formales, los estudiantes demuestran su inteligencia por medio del uso lógico de símbolos relacionados con Una diferencia notoria entre un algoritmo y un programa conceptos 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 programación de computadores y que puede ayudar a problema. Se puede observar que una técnica de los estudiantes a desarrollar los pensamientos solución (correspondiente al algoritmo) se puede utilizar algorítmico y procedimental consiste en que ellos en diferentes situaciones problemáticas realicen actividades con juegos de estrategia como (correspondiente a los programas). De manera inversa, “Sokoban”, “Misión Escape”, “Tetris” e “Implode”, así se espera que una solución exitosa de problemas como ejercicios de Razonamiento Abstracto. En incorpore procesos generales que son independientes Sokoban se deben llevar las piedras hacia el lugar de las situaciones específicas (NRC, 2004). Esto se donde aparecen los prismas y para lograrlo, estas se conoce como experiencias de vida y los estudiantes deben empujar con el personaje teniendo cuidado en los deben adquirirlas en su paso por la educación básica y movimientos que se hacen para no bloquear el juego ya media para desempeñarse adecuadamente en su vida que el personaje solo puede empujar una piedra a la vez diaria. y no puede moverlas hacia atrás, siempre hacia delante. Hay disponibles varias versiones de Sokoban para Este es todo un reto para la educación, reto en el que la descargar y para jugar en línea. programación de computadores puede hacer una 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 guardarlo en el disco duro) es una tarea relativamente sencilla. Pero el proyecto puede aumentar su complejidad si se añaden funciones para dar formato al texto (fuentes, tamaño y características especiales). Posteriormente el proyecto puede crecer si se agregan funcionalidades para manejar imágenes y tablas. Al igual que en este ejemplo, se pueden diseñar proyectos de clase interesantes para mantener motivados a los estudiantes y cuyas tareas y retos sean progresivos en complejidad; que cada nuevo reto parta de lo construido con anterioridad. En resumen, los procedimientos son Ilustración 1: El marcianito debe mover la cuatro piedras redondas un tipo particular de tarea que busca solucionar hasta ubicarlas sobre los rombos morados. problemas específicos y al desarrollarlos se ponen en http://www.matejoven.mendoza.edu.ar/matejue/juegos/sokoban/sokoban.htm juego los pensamientos algorítmico y procedimental. Por su parte, el juego “Misión Escape” de la serie David Moursund (2006) se basó en sus propias “Chicos del Barrio” de Cartón Networks experimentaciones y en la teoría de los cuatro estados (http://www.cartoonnetworkla.com/spanish/) se puede de desarrollo cognitivo planteada por Piaget para utilizar para mejorar la habilidad de los estudiantes para proponer un planteamiento que amarra la computación llevar a cabo tareas en forma ordenada y lógica. En este con una escala de desarrollo cognitivo en la que se da juego, los participantes deben encontrar la mejor vía de bastante protagonismo al desarrollo del pensamiento escape a través de la casa del árbol y recorrerla en la algorítmico en los niños. Según Moursund (2006) en la menor cantidad de movimientos posibles. Para despejar etapa de las operaciones concretas los niños empiezan el camino de objetos hay que seguir las reglas del juego a manipular lógica y sistemáticamente símbolos en un y si no se mueven los objetos precisos, en la dirección computador y aprenden a apoyarse en software para correcta y en el orden adecuado, el camino se puede resolver un rango amplio de problemas y tareas de tipo bloquear. general. De esta manera, ganan habilidad considerable tanto en la utilización de lenguajes como Scratch y MicroMundos, como en la manipulación de ambientes gráficos. Posteriormente, en la etapa de operaciones Pág.23 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 24. 2 1 3 Ilustración 2: Comienzo del nivel tres del juego “Misión Escape” de Adaptado de “Razonamiento Abstracto”, Serrano (1998) Cartoon Network. El personaje debe alcanzar la baldosa café que aparece en la parte inferior del cuadrado. Por su parte, juegos como Guido van robot, Tetris, Implode y el mismo Sokoban, además de la versión para Computadores Personales (PCs), ofrecen versiones para los computadores OX de la iniciativa OLPC (One Laptop Per Child). Esto es importante ya que cada día más niños en América Latina disponen de estos equipos 1 y los utilizan como herramienta para el aprendizaje. 2 3 ACTIVIDAD Invitar a los estudiantes a reflexionar sobre el lenguaje que utiliza diariamente para comunicarse con sus padres, hermanos, profesores Ilustración 3: El personaje ya ha movido los obstáculos (1, 2, 3) y y compañeros. ¿Utiliza un lenguaje preciso? ¿utiliza vocablos está a punto de alcanzar la baldosa café que le permite avanzar al corrientes? nivel siguiente. ACTIVIDAD La ilustración 2 muestra el comienzo del nivel tres del A diferencia de los seres humanos que realizan actividades sin juego (cada nivel es más difícil que el anterior). El detenerse a pensar en los pasos que deben seguir, los personaje de ”Chicos del Barrio” se encuentra en el computadores son muy ordenados y necesitan que el programador punto de inicio y debe encontrar el mejor camino para les especifique cada uno de los pasos necesarios y su orden lógico llegar a la baldosa café de la parte inferior del cuadrado. de ejecución. Para lograrlo, debe mover las cajas precisas (marcadas Listar una serie de pasos para realizar una tarea y presentarlos a los con 1, 2 y 3), en la dirección correcta y en el orden estudiantes en forma desordenada para que ellos los ordenen. adecuado. En la ilustración 3 se pueden apreciar las Por ejemplo, ordenar los pasos para pescar: cajas movidas y el personaje a punto de alcanzar la ___ El pez se traga el anzuelo. baldosa café que le permite avanzar al nivel siguiente. ___ Enrollar el sedal. ___ Tirar el sedal al agua. El razonamiento abstracto es otro tipo de actividad de ___ Llevar el pescado a casa. aprestamiento que se puede llevar a cabo con los ___ Quitar el Anzuelo de la boca del pescado. estudiantes para desarrollar los pensamientos ___ Poner carnada al anzuelo. algorítmico y procedimental. El razonamiento abstracto ___ Sacar el pescado del agua. básicamente es un proceso de ordenación de objetos, situaciones o sucesos en secuencias lógicas de acuerdo ACTIVIDAD con algún criterio previamente establecido. Para ello se Solicitar a los estudiantes que traigan para la próxima clase los debe comprender e interpretar los cambios en función siguientes elementos: de la forma cómo varían las características de interés de • Arroz, lentejas o maíz (medio puñado). los objetos o sucesos estudiados. Todo cambio conduce • Una banda de caucho. a una alteración de algún aspecto del objeto, suceso o • Un vaso plástico. situación (Sánchez, 1993). • Un trozo de papel resistente (15cm x 15cm aproximadamente). Actividades como la siguiente exige de los estudiantes Divida los estudiantes en dos grupos y suministre a un grupo las un alto grado de observación para determinar qué es lo siguientes instrucciones para elaborar “Maracas”: que cambia (figura, forma, posición, etc) y cuál es el 1. Recortar del papel resistente un trozo más grande que la boca patrón de cambio (dirección, tamaño, color, etc): del vaso plástico. 2. Introducir el arroz, las lentejas o el maíz en el vaso (cada elemento produce una sonoridad diferente). 3. Poner sobre la boca del vaso el papel. Pág.24 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 25. 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.25 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 26. REPRESENTACIÓN DE ALGORITMOS Los Algoritmos se puede expresar de muchas maneras, pero en esta guía se tratarán solo dos formas: Utilizar Diagramas de Flujo para representar un Seudocódigo y Diagrama de Flujo. En Seudocódigo la algoritmo tiene claras ventajas, especialmente cuando secuencia de instrucciones se representa por medio de son construidos por estudiantes de básica y media. frases o proposiciones, mientras que en un Diagrama Numerosas investigaciones han mostrado que el de Flujo se representa por medio de gráficos. Aprendizaje Visual es uno de los mejores métodos para enseñar habilidades del pensamiento. Las técnicas que EJEMPLO utilizan formas graficas para representar ideas e Elaborar un Algoritmo para calcular el área de cualquier triángulo información ayudan a los estudiantes a clarificar su rectángulo y presentar el resultado en pantalla. pensamiento, y a procesar, organizar y priorizar nueva información. Los diagramas visuales revelan patrones, SEUDOCÓDIGO interrelaciones e interdependencias además de Paso 1: Inicio estimular el pensamiento creativo. Paso 2: Asignar el número 2 a la constante "Div" Paso 3: Conocer la base del triángulo y guardarla en la variable La utilización de Diagramas ayuda a los estudiantes a: "Base" • Clarificar el pensamiento : Ellos pueden ver cómo se Paso 4: Conocer la altura del triángulo y guardarla en la variable conectan los procesos y se dan cuenta de cómo "Altura" estos se pueden organizar o agrupar para darles el Paso 5: Guardar en la variable "Area" el valor de multiplicar "Base" orden lógico correcto. por "Altura" • Identificar pasos erróneos : Sobre un diagrama es Paso 6: Guardar en la variable "Area" el valor de dividir "Area" más fácil identificar los cambios que se requieren entre "Div" para el correcto funcionamiento de un programa de Paso 7: Reportar el valor de la variable "Area" computador que hacerlo sobre el código. Paso 8: Final DIAGRAMA DE FLUJO 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; • Verificar si se han tenido en cuenta todas las Ilustración 2-4: Algoritmo para calcular el área de cualquier posibilidades; triángulo rectángulo • Comprobar si hay procedimientos duplicados; • Representar gráficamente una solución (es más El seudocódigo está compuesto por proposiciones simple hacerlo con gráficas que mediante palabras); informales en español que permiten expresar • Facilitar a otras personas la comprensión de la detalladamente las instrucciones que llevan desde un secuencia lógica de la solución planteada; estado inicial (problema) hasta un resultados deseado • Posibilitar acuerdos con base en la aproximación (solución). Por lo regular, los algoritmos se escriben por común a una solución de un problema, resolver refinamiento: se escribe una primera versión que luego ambigüedades o realizar mejoras; se descompone en varios subproblemas (el número • Establecer posibles modificaciones (resulta más fácil depende de la complejidad del problema) depurar un programa con el diagrama que con el independientes entre sí. Si es necesario se va refinando listado del código); cada vez las instrucciones hasta que las proposiciones generales en español como las del ejemplo anterior se • Agilizar la codificación (traducción) del algoritmo en puedan codificar en el lenguaje seleccionado para hacer un lenguaje de programación; la programación (en el caso de esta guía será Logo). • Servir como elemento de documentación de la solución del problema. Pág.26 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 27. 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 (falso o verdadero) se toma la debe llegar una línea. decisión de seguir un camino del 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. (cambios de valores de variables, asignaciones, operaciones aritméticas, 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. Pág.27 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 28. 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 identifique la función del algoritmo; el nombre del autor; y la fecha de elaboración; • Sólo se pueden utilizar símbolos estándar (ISO 5807); • Los diagramas se deben dibujar de arriba hacía abajo y de izquierda a derecha; • La ejecución del programa siempre empieza en la parte superior del diagrama; Ilustración 2-6: Plantilla StandardGraph ISO 5807 para la elaboración • Los símbolos de “Inicio” y “Final” deben aparecer manual de Diagramas de Flujo. solo una vez; • La dirección del flujo se debe representar por medio También existe software especial para elaborar de flechas (líneas de flujo); Diagramas de Flujo en forma rápida y fácil. Los • Todas las líneas de flujo deben llegar a un símbolo o programas para esta tarea permiten a los estudiantes: a otra línea; • Almacenar digitalmente los diagramas construidos; • Una línea de flujo recta nunca debe cruzar a otra. • Introducirles modificaciones fácilmente; Cuando dos líneas de flujo se crucen, una de ellas • Imprimir copias de los diagramas para compartirlos debe incluir una línea arqueada en el sitio donde con compañeros o documentar sus trabajos; cruza a la otra (ilustración 2-5); • Exportarlos en varios formatos gráficos para • Se deben inicializar las variables que se utilicen o utilizarlos en otros programas; permitir la asignación de valores mediante consulta al • Alinear y organizar los símbolos automáticamente; usuario; • Agregar colores, tamaño de letra y sombreados para • Las bifurcaciones y ciclos se deben dibujar lograr una apariencia profesional; procurando una cierta simetría; • Ahorrar tiempo en la modificación de un diagrama ya • Cada rombo de decisión debe tener al menos dos que no es necesario hacer todo el dibujo líneas de salida (una para SI y otra para NO); nuevamente; • Las acciones y decisiones se deben describir utilizando el menor numero de palabras posible; sin En las siguientes direcciones de Internet se puede que resulten confusas o poco claras; encontrar información de software para la elaboración • Si el Diagrama se vuelve complejo y confuso, es de Diagramas de Flujo: mejor utilizar símbolos conectores para reducir las • Eduteka – Diagramas de Flujo http://www.eduteka.org/modulos.php?catx=4&idSubX=117 líneas de flujo; • GraFI-co • Todo el Diagrama debe ser claro, ordenado y fácil de http://www.eduteka.org/pdfdir/graFIco.rar recorrer; • SmartDraw • El Diagrama se debe probar recorriéndolo con datos http://www.smartdraw.com iniciales simples (prueba de escritorio). • WinEsquema http://www.softonic.com/ie/27771/WinEsquema • Dia Win32 Installer http://www.softonic.com/ie/33781/dia • DFD 1.0 http://www.softonic.com/ie/16035/DFD • Paraben's Flow Charter Incorrecto Correcto http://www.paraben.com/html/flow.html Ilustración 2-5: Cruce de líneas de flujo • Edraw Flowchart http://www.edrawsoft.com/flowchart.php Los Diagramas se pueden dibujar utilizando lápiz y • Novagraph Chartist http://www.tucows.com/preview/289535.html papel, en cuyo caso resultan muy útiles las plantillas • Flow Charting 6 plásticas como la de la ilustración 2-6. Estas descargan http://www.patton-patton.com al estudiante de la preocupación por lograr uniformidad • OrgPlus en el dibujo. http://www.tucows.com/preview/281861.html • Antechinus Draw Magic http://www.tucows.com/preview/254904.html Pág.28 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 29. ACTIVIDAD matemático Pierre Fermat, 1601-1665), para averiguar si se trataba Basándose en la actividad anterior, convertir los algoritmos de un número primo. Al cabo de 10 días, el resultado fue "NO". Este elaborados en seudocódigo en diagramas de flujo: es el cálculo realizado por un computador en el que se ha tardado 1. Hallar el área de un cuadrado cuyo lado mide 5 cm. más en dar una respuesta de "sí" o "no". (Libro Gunness de los 2. Hallar uno de los lados de un rectángulo cuya área es de 15 cm2 Records 2002) y uno de sus lados mide 3 cm. 3. Hallar el área y el perímetro de un círculo cuyo radio mide 2 cm. 4. Hallar el área de un pentágono regular de 6 cm de lado y con 4 Para avanzar en el tema de los Algoritmos resulta cm de apotema. indispensable que los estudiantes comprendan algunos conceptos básicos (variables, constantes, identificadores, funciones, operadores, etc), los cuales Dato Curioso serán indispensables tanto para diseñar algoritmos En el año 1986, se introdujo en el supercomputador CRAY-2 la cifra como para traducirlos a un lenguaje de programación, 2^220+1, o número de Fermat 20 (que debe su nombre al cualquiera que este sea (Logo, Java, Visual Basic, etc). CONCEPTOS BÁSICOS DE PROGRAMACIÓN Variables Para poder utilizar algoritmos con diferentes conjuntos Las variables Globales se crean con los comandos da de datos iniciales, se debe establecer una o nombra. Estas variables solo pierden su valor cuando independencia clara entre los datos iniciales de un se cierra MicroMundos o cuando se borran con el problema y la estructura de su solución. Esto se logra comando bnombres. mediante la utilización de Variables (cantidades que se suelen denotar con letras –identificadores- y que pueden En Scratch, se debe hacer clic en el botón “Variables” de tomar cualquier valor de un intervalo de valores la paleta de bloques. posibles). En programación, las Variables son espacios de trabajo (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. Luego se hace clic en el botón “Nueva variable” y se En MicroMundos se utiliza el comando da para asignar asigna un nombre a la variable, en este caso “Puntaje”. un valor a una variable o constante. La sintaxis es: Cuando se genera una variable, aparecen los bloques da “nombreVariable valor correspondientes a ella. Se puede escoger si la variable que es equivalente a la forma nombreVariable=Valor es para todos los Objetos (global) o solo para un Objeto que se utiliza en la mayoría de los lenguajes de (local). programación. Con el botón “Borrar una variable” se borran todos los Para utilizar el valor almacenado en una variable o bloques asociados con una variable. constante se debe anteponer dos puntos (:) al nombre; en :nombreVariable Al hacer clic sobre el cuadrito de selección, se empieza los dos puntos significan “no quiero que ejecutes el a Informar el valor de la variable “Puntaje” en el comando nombreVariable; quiero el valor almacenado escenario. en nombreVariable”. Pág.29 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 30. da "variableLocal 20 fin Incrementa la variable en una cantidad determinada (Si Ahora escriba en el centro de mando de MicroMundos la secuencia se tiene más de una variable, utilice el menú de instrucciones en cursiva y debe obtener las respuestas desplegable para seleccionar el nombre de la variable subrayadas: que se desea modificar). tipoVariable 70 muestra :valorParámetro valorParámetro no tiene valor Inicializa la variable a un valor específico. muestra :variableLocal variableLocal no tiene valor muestra :variableGlobal Muestra el monitor de la variable en el escenario. 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 conserva su valor Esta opción esconde el monitor de la variable para que (150) por fuera del procedimiento donde fue creada. no aparezca en el escenario. En MicroMundos también existen las variables de estado que permiten conocer o modificar los EJEMPLO componentes más importantes de una tortuga, un MicroMundos control o una caja de texto. para equilátero :tamaño limpia cp repite 3 [adelante :tamaño derecha 120] Constantes 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 palabra asignados, no cambian en ninguna instrucción del equilátero seguida por un número que representa el tamaño de cada Algoritmo. Pueden contener constantes matemáticas (pi) lado del triángulo (ejemplo: equilátero 70 ). o generadas para guardar valores fijos (3.8, "Jorge", La variable local :tamaño creada en la línea de título del etc). En el Algoritmo de la Ilustración 2-4, "div" es un procedimiento equilátero, contiene el valor 70 mientras el ejemplo 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 la variable tamaño. EJEMPLO Las variables y constantes además de tener un Nombre (identificador) para poder referirnos a ellas en los procedimientos, Scratch 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: edadCarlos es la constante donde se guarda la edad de Carlos En Scratch haga clic en la bandera verde para que se dibuje en el Andrés; escenario un triángulo equilátero con lado 100. Para dibujar R/. 2 x edadCarlos = 32 triángulos de tamaños diferentes basta con fijar la variable tamaño a otro valor. Situaciones: 1. La mitad de un valor (valor1) es 60 2. Cuatro veces un número (número1) equivale a 20 EJEMPLO 3. Un número (número2) disminuido en 5 es 18 Escriba en el área de procedimientos las siguientes líneas de código: 4. El doble (elDoble) del precio de una manzana para tipoVariable :valorParámetro 5. La midad (laMitad) del precio de una gaseosa limpia 6. el triple (elTriple) de mi edad da "variableGlobal 150 local "variableLocal Los valores que pueden tomar valor1, número1 y Pág.30 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 31. número2 (tres primeras situaciones) son constantes: 120, 5 y 23 respectivamente; no pueden tomar otros valores. Además, estas constantes son las incógnitas de EJEMPLO las situaciones. Escribir un procedimiento llamado contador para contar los números entre 1 y 10. Los valores que pueden tomar elDoble, laMitad y MicroMundos elTriple son variables ya que dependen de un precio o para contador de la edad del estudiante que resuelve el ejercicio. Los bnombres valores de estas variables hay que conocerlos para da "número 0 introducirlos en el problema como datos iniciales, pero repite 10 [da "número :número + 1 no son la incógnita. Para ampliar esta actividad, el muestra nombres] docente puede plantear nuevas situaciones o pedir a los muestra frase estudiantes que planteen situaciones similares. [El valor final del contador número es ] :número fin ACTIVIDAD Ahora escriba en el centro de mando de MicroMundos contador. Pedir a los estudiantes que traigan tres cajas de cartón (del tamaño de las de los zapatos) y marcar cada caja con uno de los siguientes Scratch letreros: BASE, ALTURA y DIVISOR. Introducir un papel en blanco en cada una de las cajas. Solicitar a un estudiante del grupo que escriba un valor en cada uno de los papeles guardados en las cajas. 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 Haga clic en la bandera verde de Scratch. valores en el papel de cada una de las cajas, tachando los valores anteriores. Hacer notar que en los papeles guardados en las cajas marcadas Acumuladores con “BASE” y “ALTURA” se han anotado valores diferentes en cada Estructura muy utilizada en programación (da “A :A + :B) ocasión. Este es el concepto de variable. y que consiste en almacenar en una variable (“A) el Hacer notar también que en el papel guardado en la caja “DIVISOR” valor de ella misma (:A) más otro valor variable (:B). Es solo se anotó un valor (2) al comienzo del ejercicio y no hubo muy útil para calcular sumatorias. necesidad de cambiarlo posteriormente. Este es el concepto de constante. EJEMPLO Escribir un procedimiento llamado acumulador para calcular la Esta actividad se puede adaptar para reforzar el cálculo sumatoria de los números entre 1 y 10. de áreas y perímetros de otras figuras geométricas planas. MicroMundos para acumulador bnombres Contadores da "contador 0 Los contadores en MicroMundos se implementan como da "sumatoria 0 una estructura de programación (da “A :A + 1) que repite 10 [da "contador :contador + 1 consistente en almacenar en una variable (“A) el valor da "sumatoria :sumatoria + :contador de ella misma (:A) más un valor constante (1). Es muy muestra nombres] útil para controlar el número de veces que debe muestra frase ejecutarse un grupo de instrucciones. [El valor final del acumulador sumatoria es ] :sumatoria fin En Scratch, se utiliza la instrucción cambiar ... por ... para incrementar la variable en una cantidad Ahora escriba en el centro de mando de MicroMundos acumulador. determinada. En este caso se almacena en la variable Puntaje el valor que ella tenga en el momento más el valor constante 1. Pág.31 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 32. Scratch 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). 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 Haga clic en la bandera verde de Scratch y el resultado debe ser izquierda (iz) limpia 2036. atrás (at) rumbo repite cp da sp Identificadores Los identificadores son nombres que se dan a los Las palabras reservadas no operan en Scratch ya que elementos utilizados para resolver un problema y poder todas las instrucciones, incluyendo mandos y reporteros, diferenciar unos de otros. Al asignar nombres son bloques de construcción (ver la sección Conceptos (identificadores) a variables, constantes y básicos de Logo en la Unidad 3). Los estudiantes no procedimientos se deben tener en cuenta algunas deben escribir las instrucciones, solo deben escribir los reglas: parámetros en algunas de ellas. • Los nombres pueden estar formados por una combinación de letras y números (saldoMes, salario, fecha2, baseTriángulo, etc). ACTIVIDAD • El primer carácter de un nombre debe ser una letra. ¿Cuáles de los siguientes identificadores NO son validos como • La mayoría de los lenguajes de programación nombres de Variables en MicroMundos y por qué? diferencian las mayúsculas de las minúsculas. 1. númeroX • Los nombres deben ser nemotécnicos, con solo 2. Numero X leerlos se puede entender lo que contienen. Deben 3. 7 ser muy descriptivos; no utilizar abreviaturas, a 4. A(45+ menos que se justifique plenamente. 5. VII • Es conveniente utilizar una sola palabra para 6. 7mesas nombrar páginas, controles, variables, etc. 7. sieteMesas • No utilizar caracteres reservados (%, +, /, >, etc). MicroMundos admite letras acentuadas (á, é, í, ó, ú). En cuanto a palabras reservadas, Scratch es más Se debe tener en cuenta que algunos lenguajes de flexible que MicroMundos, pues se pueden utilizar como programación no admiten las tildes. nombres de variables aquellos identificadores que no • No utilizar palabras reservadas por los lenguajes de son validos en MicroMundos: A(45+, 7, etc. programación. • Para cumplir con convenciones ampliamente TIP utilizadas (Jiménez, 2002), los nombres de Es buena idea asignar, a Variables y Constantes, nombres que procedimientos, variables y constantes deben indiquen cuál puede ser su contenido. Por ejemplo, a una Variable empezar con minúscula. Ejemplo, fecha, suma, etc. que contendrá el valor de la base de un triángulo debe asignársele el Si es un nombre compuesto por varias palabras, nombre "baseTriangulo"; "areaCuadrado" a una que guardará el área cada una de las palabras (con excepción de la de un cuadrado; y "radio" a una que contendrá el valor del radio de primera) deben empezar con mayúscula. Ejemplo: una circunferencia. Aunque MicroMundos no hace distinción entre fechaInicial, baseTriángulo, etc. mayúsculas y minúsculas, es buena práctica ser consistente a lo largo de todo el algoritmo en su uso (RADIOCIRC ≠ RadioCirc). El tipo de nombre –identificadores- que se asigne a Esto debido a que la mayoría de lenguajes de programación sí variables, constantes y procedimientos es muy hacen distinción entre mayúsculas y minúsculas. importante. Cuando los estudiantes dejan de trabajar en un proyecto por varios días, es más fácil para ellos . retomar la actividad si los identificadores describen muy bien el contenido de variables, constantes y Pág.32 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 33. 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. exp número Devuelve e 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 de Scratch no tiene el operador potencia, sin 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 repite 28 [fy 8 * tan 6 * coorx fx coorx + 1 / 2] Pág.33 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 34. TIPOS DE DATOS 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. EJEMPLO Números: se utilizan como entradas en las operaciones Las siguientes son listas validas en MicroMundos: matemáticas. Cuando se utilizan los signos positivo (+) o • [Esta es una lista de 7 elementos] negativo (-), estos deben estar pegados al número. • [x y z] MicroMundos acepta tanto el punto como la coma para escribir números decimales (3,14=3.14). Esto es Scratch importante tenerlo presente para no utilizar el punto para marcar la separación de miles y millones. Si asignamos a una variable el valor 20.000, MicroMundos guarda en ella el valor 20 y no 20000; si le asignamos 1.345.625 en 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: Aunque en Scratch se pueden introducir tanto palabras 1E6. como números en una variable, la operación de suma de dos variables o de elementos de una lista solo opera con Palabras: Las palabras están formadas por letras y/o números (versión 1.4). Por lo tanto no se pueden números. Una palabra está delimitada por espacios en concatenar varias palabras para formar una frase con el blanco; sin embargo, si se quiere tener un texto operador +, debe utilizarse el operador “unir”. Varios conformado por dos o más palabras, este debe operadores “unir” se pueden anidar para formar una encerrarse entre barras (|palabra1 palabra2|). cadena de varios elementos. En el siguiente ejemplo se requieren tres espacios: uno para mostrar el nombre, EJEMPLO otro para separar el nombre del apellido y el tercero para Las siguientes son palabras validas en Logo: el apellido. • Hola • x Scratch • 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 palabras en una lista no necesitan comillas y los espacios en blanco se ignoran. Pág.34 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 35. OPERADORES Son símbolos que sirven para manipular datos. En / División 4/2 2 MicroMundos 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 + Suma 4+2 6 clasifican en: • Aritméticos: Posibilitan las operaciones entre datos - resta 4-2 2 de tipo numérico y dan como resultado otro valor de tipo numérico. Ejemplo: potencia (potencia); “ asignación da “A 4 Se asigna el producto (*); división (/); suma (+); resta (-); valor de 4 a la asignación (“). Este último operador de variable A MicroMundos presenta diferencias con el operador de asignación (=) que utilizan la mayoría de los 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 cualquier otro mando Logo. Por ejemplo, en la operador &. instrucción muestra azar 6 + 1, la operación aritmética • Relaciónales: Permiten la comparación entre datos 6 + 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 (ilustración 1- 2) de MicroMundos las siguientes expresiones y anote en su Orden de evaluación de los operadores cuaderno las observaciones sobre los resultados de cada pareja (1 y Los computadores ejecutan los operadores en un orden 2; 3 y 4, 5 y 6): predeterminado. El siguiente es el orden (jerarquía) para 1. muestra 243 + 5 - 6 + 86 – 42 ejecutar operadores: 2. muestra 5 + 86 - 42 - 6 + 243 1. Paréntesis (se ejecutan primero los más internos) 3. muestra 7 + ( 8 * 16) 2. Signo (-2) 4. muestra (7 + 8 ) * 16 3. Potencias y Raíces (potencia y rc); Productos y 5. muestra 24 / 4 * 8 Divisiones ( * y /) 6. muestra 4 * 8 / 24 4. Sumas y Restas (+ y -) 5. Concatenación (+) 6. Relaciónales (=, <, >) 7. Negación (no) 8. Conjunción (y) 9. Disyunción (o) OPERADORERS ARÍTMETICOS Operador Operación Ejemplo Resultado potencia Potencia potencia 4 2 16 ^ 4^2 * Multiplicación 4*2 8 Pág.35 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 36. EXPRESIONES Una Expresión está compuesta por valores, funciones, desarrollar paso a paso las siguientes expresiones. Tener en cuenta primitivas, constantes y/o variables, o por una la jerarquía de los operadores: combinación de los anteriores mediante operadores. a. (5 + 2) * (4 + 4) = 56 Son Expresiones: b. 7 + 3 * 2 + (2 - 1) = 14 • Un valor (1.3, "Jorge) c. 6 * 2 + 4 * 3 + 5 / 2 = 26,5 • Una Constante o una Variable (divide, base, área) d. 5 + 1 * 4 / 2 * 7 - (8 + 2) = 9 • Una función (cos 60, arctan 1) e. 8 + (5 * 6) - 6 = 32 • Una combinación de valores, constantes, variables, f. 9 + 5 * 3 = 24 funciones y operadores que siguen reglas de g. 4 / 2 * (10 - 5) * 3 = 30 construcción y orden de evaluación de los operadores (cos 60 + 7 - :altura) ACTIVIDAD Pedir al estudiante que escriba en el Centro de Mando de Las Expresiones pueden ser: MicroMundos (ilustración 1-2) las siguientes expresiones y anote en • Aritméticas: Dan como resultado un valor el cuaderno sus observaciones sobre el resultado: numérico. Contienen únicamente operadores 1. muestra 7 + 5 + 6 aritméticos y datos numéricos (pi * 20 - :X) 2. muestra [7 + 5 + 6] • Alfanuméricas: Dan como resultado una serie o 3. muestra [mañana nos vemos en clase de inglés] cadena de caracteres. 4. muestra mañana nos vemos en clase de inglés • Lógicas: Dan como resultado un valor "Verdadero" Obsérvese que las instrucciones 1 y 2 se diferencian en o "Falso". Contienen variables y/o constantes que mientras la primera da como resultado un valor enlazadas con operadores lógicos (A>0 y B<=5). numérico (18), la segunda es una lista y reporta una • De Asignación: Estas Expresiones asignan el cadena alfanumérica de caracteres “7 + 5 + 6”. resultado de una Expresión a una Variable o a una La instrucción 4 reporta “No sé cómo hacer mañana” Constante. La Expresión de Asignación (da "área porque le faltan los corchetes inicial y final para que :base * :altura / 2) asigna (da) el valor resultante de MicroMundos la considere una lista de cinco palabras. la Expresión Aritmética (:base * :altura / 2) a la En Scratch no son necesarios los paréntesis ya que el variable área. orden de evaluación de las expresiones es inequívoco. EJEMPLO EJEMPLO Para diseñar algoritmos que posteriormente puedan ser traducidos a Luisa Fernanda quiere llenar 5 cajas de bombones y sabe que en un lenguaje de programación, es fundamental saber manejar muy cada caja hay que incluir 12 bombones de menta, 14 de fresa bien los operadores y el orden en el que estos se ejecutan. Las intensa y 10 de limón. Encontrar al menos dos expresiones fórmulas deben escribirse en una sola línea para que el computador equivalentes para calcular el número de bombones que necesita las evalúe. Luisa Fernanda. R/. NOTACIÓN EXPRESIÓN Expresión 1: 5 * 12 + 5 * 14 + 5 * 10 MATEMÁTICA ¿Qué significa cada producto? (rc (potencia 6 2)+ 7) / (potencia 8 2) ¿Qué significa la suma de los productos? Scratch no tiene el operador potencia, sin embargo es fácil programarlo: http://scratch.mit.edu/projects/jualop/752239 Expresión 2: 5 * ( 12 + 14 + 10 ) (base * altura / 2) ¿Qué representa la suma del paréntesis? ¿Por qué la suma se debe multiplicar por 5? ¿Las dos expresiones dan el mismo resultado? Ejercicio adaptado de “Cuenta Jugando 5”; Página 48 EJEMPLO (Casasbuenas & Cifuentes, 1998b). Evaluar la expresión muestra ((potencia (5 + 3) 2) - 10) / 3 + 4 * (2 + 4) teniendo en cuenta la jerarquía de los operadores: ACTIVIDAD R/. da “númeroA 5 (asigna el valor 5 a la Constante númeroA) ((potencia (5+3) 2) - 10) / 3 + 4 * (2 + 4) = ((potencia 8 2) - 10) / 3 + 4 * 6 da “númeroB 8 (asigna el valor 8 a la Constante númeroB) ((potencia8 2) - 10) / 3 + 4 * 6 = (64 - 10) / 3 + 4 * 6 Utilizando la información de los valores asignados a las Constantes (64 - 10) / 3 + 4 * 6 = 54 / 3 + 4 * 6 númeroA y númeroB, evaluar las siguientes expresiones: 54 / 3 + 4 * 6 = 18 + 24 1. 20 + :númeroA 18 + 24 = 42 2. :númeroA + 3 * :númeroB 42 3. :númeroA > :númeroB 4. :númeroA + "123 ACTIVIDAD 5. 4 + :númeroA - :númeroB Tomando como modelo el ejemplo anterior y utilizando lápiz y papel, Pág.36 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 37. UNIDAD 3: ESTRUCTURAS BÁSICAS LAS ESTRUCTURAS programación, pueden descargar gratuitamente las correspondientes Guías de Referencia: • MicroMundos (proyecto Teddi - PDF; 560KB) http://www.eduteka.org/pdfdir/ManualMicroMundos.pdf • Scratch (MIT - PDF; 1.5MB) http://www.eduteka.org/pdfdir/ScratchGuiaReferencia.pdf TIP Edsger Wybe Dijkstra nació en Rotterdam, (Holanda) en 1930. En 1956 anunció su algoritmo de caminos mínimos; posteriormente propuso el algoritmo del árbol generador minimal. A principios de la Ilustración 3-1: Fases segunda y tercera del ciclo de programación. década de los 60, aplicó la idea de exclusión mutua a la comunicación entre un computador y su teclado. Su solución de exclusión mutua ha sido usada en muchos procesadores y tarjetas Un Algoritmo está compuesto por instrucciones de de memoria desde 1964, año en el que fue utilizada por IBM en la diferentes tipos, organizadas secuencialmente, en forma arquitectura del “IBM 360”. El siguiente problema del que se ocupó de estructuras de control. De estas estructuras, las más Dijkstra fue el de los filósofos comensales. En este problema, cinco comunes y que se cubren en esta guía son las filósofos están sentados en una mesa circular con un plato de arroz siguientes: delante y un palillo a cada lado, de manera que hay cinco palillos en • Secuencial. total. El problema trata sobre el uso de recursos comunes sin que los • Iterativa (repetición). procesos (los filósofos) lleguen a una situación de bloqueo mutuo; además, que los recursos se utilicen por todos los procesos de la • Condicional (decisión, selección). manera más eficiente. Dijkstra también contribuyó a desterrar el comando GOTO de la programación: el comando "GOTO es Una estructura de control se define como un esquema considerado dañino. Cuantas más sentencias GOTO tenga un que permite representar ideas de manera simplificada y programa, más confuso será el código fuente". que bajo condiciones normales, es constante (Trejos, 1999). El uso del diseño descendente en los programas, la ejecución de operaciones secuenciales, la utilización de ciclos repetitivos y, la toma de decisiones y alternativas de proceso, ofrecen amplias posibilidades para resolver problemas mediante la construcción de procedimientos (Castellanos & Ferreyra, 2000b). Un famoso teorema de los años sesenta, formulado por Edsger Wybe Dijkstra, demostraba que se puede escribir cualquier programa utilizando únicamente la tres estructuras de control mencionadas. Actualmente, la programación orientada a objetos (POO) busca reducir al máximo la cantidad de estructuras de control mediante el uso de polimorfismo; pero aún así, todavía se vale de estas estructuras para construir métodos, los cuales podría decirse que son equivalentes a los procedimientos que se plantean en esta guía. Para traducir los algoritmos diseñados a un lenguaje de programación que el computador pueda entender, en esta guía se utilizan dos entornos de programación basados en Logo: MicroMundos y Scratch. Los docentes interesados en conocer estos ambientes de Pág.37 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 38. CONCEPTOS BÁSICOS DE PROGRAMACIÓN Logo Logo es un lenguaje de programación con un número limitado de palabras y de reglas gramaticales si se lo compara con lenguajes humanos, como el castellano o el inglés. Las instrucciones en Logo son equivalentes a las oraciones en castellano y las reglas para construir esas instrucciones son más simples que las reglas gramaticales de nuestro idioma, pero mucho más precisas. Logo fue desarrollado por Seymour Paper en el MIT en 1968 con el fin de utilizarlo en el ámbito educativo. Con este lenguaje de programación, inicialmente los niños dan instrucciones a una tortuga (adelante, atrás, derecha, izquierda, etc) para elaborar dibujos sencillos. Pero a medida que logran dominio del lenguaje, ellos utilizan comandos más sofisticados para realizar creaciones más complejas. Desde 1968 a la fecha se han creado numerosas versiones de Logo Ilustración 3-2(a): Área de trabajo de MicroMundos (http://www.elica.net/download/papers/LogoTreeProject.pdf); sin (interfaz del programa) embargo, en esta Guía se utilizarán los entornos de programación basados en Logo “MicroMundos” y EJEMPLO 3-1 “Scratch”. Ambos ofrecen una serie de comandos Digitar en el Centro de Mando (Ilustración 3-2) la instrucción: llamados “primitivas” para construir procedimientos (ver rumbo una lista básica de primitivas en el Anexo 1). MicroMundos devuelve un mensaje de error: No sé qué hacer con 0 Para obtener mayor información sobre Logo, se Digitar la siguiente instrucción en el Centro de Mando: recomienda visitar el sitio Web de Daniel Ajoy muestra rumbo http://neoparaiso.com/logo/ MicroMundos devuelve el rumbo actual de la tortuga: 0 En este caso el resultado de rumbo es reportado a muestra. MicroMundos MicroMundos (http://www.micromundos.com) es un Los docentes interesados en conocer más a fondo entorno de programación desarrollado por la compañía MicroMundos, pueden descargar una versión de prueba canadiense LCSI. La lista de primitivas es más extensa por 30 días del sitio: http://www.micromundos.com que la de Scratch; la cual, junto a los procedimientos Además, pueden descargar gratuitamente la Guía de elaborados por el programador, se pueden clasificar en Referencia en español: Proyecto Teddi; PDF; 560KB) dos categorías: Mandos y Reporteros. http://www.eduteka.org/pdfdir/ManualMicroMundos.pdf Los Mandos hacen algo. Por ejemplo, derecha y Aunque MicroMundos es bueno y ampliamente utilizado muestra son Mandos (derecha 120, muestra rumbo, en escuelas de América Latina, su costo puede etc). Los Reporteros informan sobre el resultado de un constituir una restricción para muchas Instituciones cálculo o sobre el estado de un objeto. Por ejemplo, Educativas. Sin embargo, entre las alternativas gratuitas rumbo y primero son Reporteros. En la instrucción (licencia GNU) de Logo hay una que utiliza en núcleo de muestra rumbo, el Reportero rumbo devuelve al Mando Logo creado por Brian Harvey de la Universidad de muestra el rumbo actual de la tortuga, rumbo como tal Berkeley: Microsoft Windows Logo (MSWLogo). Si bien, no puede hacer nada. no es un ambiente de programación tan atractivo y elaborado como MicroMundos, esta versión de Logo es Se requiere que los estudiantes aprendan a interpretar gratuita y tiene una traducción al español realizada por las instrucciones tal como lo hacen con las oraciones en Javier López-Escobar que se puede descargar de: castellano (sustantivos, verbos, conectores, adjetivos, http://sourceforge.net/projects/mswlogoes Sin embargo, etc). En MicroMundos la primera palabra de una desde 2006, y debido al notorio abandono de MSWLogo instrucción siempre debe ser un Mando, por lo tanto, los por parte de su desarrollador, David Costanzo asumió la Reporteros solo se pueden utilizar como entradas de un continuación del desarrollo de MSWLogo con el nombre Mando o de un procedimiento. FMSLogo: http://fmslogo.sourceforge.net/ Pág.38 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 39. Scratch Los docentes interesados en conocer más a fondo el Scratch (http://scratch.mit.edu/) es un entorno de ambiente de programación Scratch, puede descargarlo programación desarrollado recientemente por un grupo gratuitamente de la siguiente dirección: de investigadores del Lifelong Kindergarten Group del http://scratch.mit.edu/. Además, pueden descargar la Laboratorio de Medios del MIT, bajo la dirección del Dr. Guía de Referencia en español (PDF; 1.5MB): Michael Resnick. http://www.eduteka.org/pdfdir/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 comentar el código de los programas. Ilustración 3-2(b): Área de trabajo de Scratch (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 MicroMundos versiones oficiales para Windows, Mac y Sugar (XO); para lectura Además, hay versiones no oficiales para Linux. local "valorUno ; declarar variables y constantes local "ValorDos Este entorno de programación aprovecha los avances pregunta [Ingrese el primer valor ] ; ingresar valorUno en diseño de interfaces para hacer que la programación da "valorUno respuesta sea más atractiva y accesible para todo aquel que se pregunta [Ingrese el segundo valor ] ; ingresar valorDos enfrente por primera vez a aprender a programar. Según da "valorDos respuesta sus creadores, fue diseñado como medio de expresión muestra frase [El primer valor es ] :valorUno para ayudar a niños y jóvenes a expresar sus ideas de muestra frase [El segundo valor es ] :valorDos forma creativa, al tiempo que desarrollan habilidades de fin pensamiento algorítmico y de aprendizaje del Siglo XXI, a medida que sus maestros superan modelos de En Scratch, los comentarios se agregan en una caja de educación tradicional en los que utilizan las TIC texto amarilla que se crea al hacer clic derecho sobre simplemente para reproducir prácticas educativas cualquier parte del área de programas (zona central gris) obsoletas. y seleccionar la opción “añadir comentario”. Entre las características más atractivas de Scratch, Scratch 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 es una muy buena alternativa a MicroMundos; sin embargo, las Instituciones Educativas que ya cuentan con MicroMundos, pueden utilizar ambos entornos ya que puede resultar benéfico para los Los algoritmos diseñados como ejemplos en esta Guía estudiantes exponerlos a diferentes ambientes de no están optimizados ya que con ellos se busca mostrar explicita y detalladamente las operaciones básicas programación en los que puedan realizar las mismas cosas. requeridas para una solución y no la forma óptima de solución. Algunos ejemplos exponen de manera Pág.39 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 40. deliberada la forma larga y poco elaborada, para luego Scratch presentar la forma optimizada. EJEMPLO 3-2 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 PROCESOS hipotenusa se puede omitir. El estudiante debe preguntarse si sus Se llama procesos a todas las instrucciones contenidas conocimientos actuales de matemáticas le permiten resolver este en un algoritmo para: problema; de no ser así, debe plantear una estrategia para obtener • declarar variables y constantes (solo en los conocimientos requeridos. MicroMundos); Restricciones: Utilizar las medidas dadas. • asignar valores iniciales a variables y constantes; Procesos necesarios: Guardar en dos variables (BASE y ALTURA) • leer datos que suministra el usuario por medio del los valores de Base y Altura; Guardar en una constante (DIV) el teclado o del ratón (mouse); divisor 2; aplicar la fórmula BASE*ALTURA/DIV y guardar el resultado en la variable AREA; comunicar el resultado (AREA). • realizar operaciones matemáticas (aplicar fórmulas); • reportar o mostrar contenidos de variables y DISEÑO DEL ALGORITMO 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). Luego de asociar valores a variables o constantes, estas se pueden utilizar anteponiendo dos puntos (:) al TRADUCCIÓN DEL ALGORITMO nombre de la variable o constante: MicroMundos da “nuevaAltura 2 + :altura para triángulo local "div ;declara las constantes como locales. El Mando da asigna a la variable nuevaAltura el valor 2 local "base más el contenido de la variable altura. local "altura local "área ;declara esta variable como local. Por otra parte, al momento de crear una variable en da "div 2 ;almacena 2 en la constante div (div=2) Scratch, el entorno pregunta si esta será visible “para da "base 3 ;equivalente a base=3 todos los objetos” (global) o solo será visible “para este da "altura 4 objeto” (local). da "área :base * :altura / :div ;aplica la fórmula. muestra :área ;reporta el contenido de la variable área Scratch fin Tal como se puede comprobar al ejecutar el procedimiento anterior, el texto entre un punto y coma y el final de una línea de código no produce ningún resultado, ni causa errores de sintaxis. Pág.40 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 41. MicroMundos 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). En MicroMundos, la forma más común de interactuar con un programa es por medio de controles y botones, los cuales se manipulan con el ratón. Ambos se pueden programar para que realicen acciones (ejecutar un Ilustración 3-4: Los comandos pregunta y respuesta permiten procedimiento, ir a otra página, cambiar el valor a una interactuar con el usuario para obtener información de él. variable, etc). MicroMundos Scratch Ilustración 3-3: Con el ratón se puede hacer clic sobre los Botones y Ilustración 3-5: Los comandos pregunta y respuesta permiten deslizar el indicador de los Controles (a la izquierda disminuye y interactuar con el usuario para obtener información de él. hacia la derecha aumenta). En Scratch las respuestas que el usuario aporta se En Scratch algunos objetos se les puede dar forma de pueden almacenar en variables con el comando botón y programarlos para que cumplan la misma respuesta. Para mostrar lo que el usuario contesta se función que cumplen estos en MicroMundos. Respecto a puede utilizar los comandos “decir” y “pensar”. los controles, en Scratch cada variable se puede convertir en un control deslizante. Basta con hacer clic EJEMPLO 3-3 derecho sobre cualquier variable que se muestre en el MicroMundos escenario y seleccionar “deslizador”; luego se hace clic para lectura derecho nuevamente y se eligen los valores mínimo y local "valorUno ; declarar variables y constantes máximo que puede almacenar esa variable mediante la local "ValorDos manipulación con el deslizador. pregunta [Ingrese el primer valor ] ; ingresar valorUno da "valorUno respuesta Scratch pregunta [Ingrese el segundo valor ] ; ingresar valorDos da "valorDos respuesta muestra frase [El primer valor es ] :valorUno muestra frase [El segundo valor es ] :valorDos fin Scratch Otra forma de interactuar con un programa consiste en que el usuario utilice el teclado para responder a las preguntas que le plantea el programa. En MicroMundos las respuestas que el usuario aporta se pueden almacenar en las variables correspondientes con el comando respuesta. Para mostrar lo que el usuario contesta se puede utilizar varios comandos de MicroMundos (mostrar, escribe, anuncia, anuncia frase). El ejemplo 3-6 de la sección “Estructura Secuencial” ilustra muy bien la interactividad que se puede establecer entre usuario y programa. La interactividad Pág.41 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 42. facilita generalizar la solución de un problema. Por condiciones para que ellos ejerciten en forma efectiva y ejemplo, si se elabora un procedimiento que calcule el divertida el pensamiento algorítmico y los razonamientos área de un triángulo rectángulo, cada vez que se temporal y condicional. cambien los valores iniciales de “base” y “altura”, estos deben actualizarse en el cuerpo del procedimiento. La En este sentido, la utilización del área de procedimientos interactividad, por el contrario, permite que cada vez que de MicroMundos (ilustración 3-2) ofrece mayores se ejecute el procedimiento, este le pregunte al usuario posibilidades para gestionar, organizar y planificar, en por los valores de “base” y “altura”, y los tome para contraposición a introducir instrucciones una a una en el calcular el área sin la necesidad de modificar nada en el “centro de mando” (lo que permite al estudiante ver procedimiento. inmediatamente cuál es el efecto que produce cada instrucción ejecutada). PROCEDIMIENTOS Como se expuso en la Unidad 1, los procedimientos son Según Papert (1993), los problemas que experimentan módulos con instrucciones que inician con el comando muchos estudiantes con las matemáticas se deben más “para” y que el computador ejecuta automáticamente, a la falta de comprensión de los algoritmos apropiados, una tras otra, hasta encontrar el comando “fin”. Todo que a la falta de manejo de los conceptos involucrados procedimiento debe tener un nombre que lo identifique y en estos. Cuando experimentan problemas con la suma, que sirve para ejecutarlo cuando se ejecuta dicho lo primero que se debe revisar es el procedimiento de la nombre. Pero antes de ejecutar un procedimiento, los adición. estudiantes deben utilizar pensamiento algorítmico, razonamiento temporal y razonamiento condicional, para Los procedimientos se utilizan muy a menudo en la vida determinar y escribir todas las instrucciones que lo diaria. Participar en un juego o dar instrucciones a deben componer y el orden lógico de ejecución. alguien que se encuentra perdido son actividades que requieren pensamiento procedimental o algorítmico. Los estudiantes activan a diario este tipo de pensamiento sin percatarse y sin hacer algún tipo de reflexión sobre esto. De hecho, ellos disponen de un conocimiento procedimental que utilizan en muchos aspectos de sus vidas, tanto para planear una estrategia en un juego, como para dar instrucciones a alguien perdido en el vecindario. Lo curioso es que en raras ocasiones utilizan este conocimiento procedimental en las clases de matemáticas. Los ambientes Logo ayudan a los estudiantes a hacer conciencia de la idea de procedimiento, ya que en él, los procedimientos se convierten en algo que se puede nombrar, manipular y reconocer (Papert, 1993). Además del pensamiento algorítmico, los razonamientos temporal y condicional juegan un papel muy importante Ilustración 3-5: Elementos que componen el procedimiento en la gestión, organización y planificación de cualquier “cuadrado”; el parámetro es el único elemento opcional. procedimiento. Estos facilitan al programador plantear y seguir instrucciones, fragmentar una tarea en módulos Por otra parte, el vocabulario disponible en cualquier con funciones precisas y plantear decisiones que un proyecto Logo está compuesto por los comandos procedimiento debe tomar de acuerdo a ciertas propios del lenguaje (Mandos y Reporteros) más los condiciones. La programación esta muy ligada al control nombres de los procedimientos definidos en ese de la sucesión temporal de instrucciones organizadas en proyecto. En otras palabras, los procedimientos secuencias. Este control, guiado por un razonamiento definidos (en este caso “cuadrado”) entran a formar temporal, es necesario para organizar el orden de las parte del vocabulario de ese proyecto. Cuando se abre instrucciones a ejecutar, para llamar otros un proyecto nuevo, esos procedimientos ya no están procedimientos en el orden correcto y ejecutar ciertas disponibles; por tanto, para utilizarlos hay que copiarlos instrucciones mientras una condición se dé o a partir de de un proyecto existente y pegarlos en el nuevo cuando esta se dé (Dufoyer, 1991). Y, según Friedman proyecto. (1982) y Piaget (1946), citados por Dufoyer (1991), hay que esperar necesariamente hasta los 7 u 8 años (nivel Todo procedimiento debe tener una línea de título que de las operaciones concretas) para que estas incluye un nombre; el cual, al invocarlo, ejecuta en operaciones sean posibles. Por lo tanto, utilizar la orden, una a una, las líneas de instrucciones que programación de computadores con estudiantes de contiene hasta que llega a la línea con el Mando fin. cuarto grado en adelante es viable si se hace con el objetivo de ofrecerles oportunidades de acceso a Para escribir procedimientos se deben tener en cuenta conceptos relacionados con procedimientos, creando las siguientes recomendaciones: Pág.42 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 43. • El título está compuesto por: el Mando “para”, el Aquí tenemos dos formas equivalentes e igualmente correctas de nombre del procedimiento y los parámetros algoritmo para dibujar un cuadrado. El algoritmo de la izquierda (opcional). utiliza un rectángulo de proceso para cada instrucción; el de la • El nombre del procedimiento debe ser una palabra. derecha agrupa en un solo rectángulo las instrucciones de proceso Cuando se deben utilizar varias palabras para adyacentes. nombrar un procedimiento, se escriben sin dejar espacio entre ellas y con mayúscula la primera letra TRADUCCIÓN DEL ALGORITMO de la segunda palabra y de las subsiguientes El siguiente procedimiento es la traducción al lenguaje Logo del palabras (ejemplo: valorMasAlto). algoritmo representado por el diagrama de flujo. Pedir a los • Cada instrucción completa debe ocupar una línea de estudiantes que lo escriban en el área de procedimientos. código • Puede contener líneas en blanco MicroMundos • En la última línea solo puede aparecer el Mando “fin” para cuadrado :lado • Desde un procedimiento se pueden invocar otros limpia procedimientos. cp adelante :lado Ejemplo 3-4 derecha 90 Escribir un procedimiento para dibujar en la pantalla un cuadrado de adelante :lado tamaño variable. derecha 90 R/. adelante :lado derecha 90 ANÁLISIS DEL PROBLEMA adelante :lado Formular el problema: Ya está claramente planteado. fin Resultados esperados: El dibujo de un cuadrado en la pantalla. Datos disponibles: El tamaño de los lados del cuadrado debe Cuando escriban en el Centro de Mando el nombre del ingresarlo el usuario; se sabe que todos los ángulos internos de un procedimiento, seguido del parámetro correspondiente al tamaño del cuadrado son de 90 grados. El estudiante debe preguntarse si sus lado (Ejemplo: cuadrado 100 ) debe dibujarse en la pantalla un conocimientos actuales de matemáticas le permiten resolver este cuadrado. problema; de no ser así, debe plantear una estrategia para obtener los conocimientos requeridos. Scratch 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. DISEÑO DEL ALGORITMO Con el fin de poder ejemplificar más adelante las dos formas de ejecutar un procedimiento, se debe escribir este otro procedimiento: MicroMundos para dibujaCuadrado cuadrado 120 fin El procedimiento cuadrado ilustra el modelo general para escribir procedimientos con parámetros. Este tipo de procedimientos son muy útiles cuando varias Pág.43 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 44. instrucciones se deben ejecutar en un programa varias cuadrado 150. veces de manera idéntica, cuya única diferencia sea el valor inicial que tomen algunas variables. En estos Otra forma de ejecutar un procedimiento es invocándolo casos, las instrucciones se “empaquetan” en un desde otro procedimiento. Cuando se ejecuta el procedimiento y los distintos valores iniciales de las procedimiento dibujaCuadrado (sin parámetros), variables se asignan por medio de parámetros. indirectamente se ejecuta el procedimiento cuadrado con 120 como parámetro. Este procedimiento dibuja El nombre del parámetro se debe escribir en la línea del exactamente el mismo cuadrado cada vez que se título, después del nombre del procedimiento, ejecuta (ver ejemplo 3-4). ajustándose a las indicaciones establecidas en la Unidad 2 de esta guía para nombrar identificadores. No Adicionalmente, poder invocar un procedimiento desde olvidar que al parámetro se debe anteponer el signo de otro, simplifica el dibujo de figuras simétricas. Se dice dos puntos (:) tal como se puede apreciar en el ejemplo que una figura es simétrica cuando al doblarla por la 3-4 (:lado). mitad sus dos partes coinciden (Casasbuenas & Cifuentes, 1998b). El ejemplo 3-5 en la sección Luego de definir el nombre de un parámetro en la línea “Estructura Secuencial” ilustra muy bien la construcción de título de un procedimiento (para cuadrado :lado), este de figuras simétricas mediante la utilización de parámetro se puede utilizar en cualquiera de las procedimientos que invocan a otros procedimientos. instrucciones (ejemplo: adelante :lado). Cada procedimiento tiene su propia biblioteca de En otras palabras, la línea de título del procedimiento nombres, esta es la razón por la cual un procedimiento cuadrado le dice a Logo que solo hay un parámetro, puede transferirle parámetros a otros, manteniendo los llamado lado. En el cuerpo del procedimiento se utiliza el valores de sus propios parámetros. Como los nombres Mando adelante acompañado del parámetro :lado. Esta de los parámetros son privados, diferentes instrucción dibuja una línea cuya medida es igual al procedimientos pueden usar el mismo nombre para un valor que contiene :lado. parámetro sin que haya confusión acerca de su valor. Cuando Logo ejecuta un procedimiento, éste establece Cuando en el título de un procedimiento se definen uno una biblioteca privada que contiene los nombres de los o varios parámetros, estos no tienen valor. Solo cuando parámetros que hay en la definición del procedimiento, se ejecuta el procedimiento es que se conoce el valor de asociados con los valores dados al momento de llamar cada parámetro. Por esta razón, todo parámetro debe al procedimiento. Al ejecutarse una instrucción que tener un nombre. Por ejemplo, al cambiar la línea de contiene el nombre del parámetro, el procedimiento título del procedimiento cuadrado por la siguiente (con busca en su biblioteca privada el valor de ese nombre. dos parámetros): Este es el motivo por el cual el mismo nombre de para cuadrado :lado :ángulo parámetro puede estar en dos bibliotecas distintas y el valor del ángulo se tratará como un parámetro cuando tener información diferente. se invoque el procedimiento. Los parámetros son como "variables locales" del En resumen, un procedimiento, internamente, es un procedimiento en el cual fueron definidos. La algoritmo que resuelve en forma parcial un problema. importancia de los nombres de entrada privados es que Desde el punto de vista externo es una orden o ofrecen la posibilidad de ejecutar un procedimiento sin instrucción única que puede formar parte de otro tener que preocuparse por detalles de su definición. procedimiento o algoritmo (Cajaraville, 1989). Por su parte, en Scratch no hay procedimientos con Por otra parte, los estudiantes deben aprender a parámetros como en MicroMundos; sin embargo, se distinguir entre escribir un procedimiento y ejecutarlo. La pueden simular con las instrucciones de Control “Al primera actividad es el resultado de las etapas de enviar a todos” y “Al recibir”. análisis del problema, diseño del algoritmo y traducción de este a un lenguaje de programación. Scratch La segunda actividad (ejecutar un procedimiento) hay dos formas de realizarla. La manera más simple consiste en escribir el nombre del procedimiento en el Centro de Mando (ver ilustración 3-2). Escribir cuadrado 100 en el Centro de Mando ejecuta el procedimiento llamado 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 dibujar un cuadrado cuyos lados midan 60 unidades se debe escribir cuadrado 60 en el Centro de Mando. Para dibujar un cuadrado más grande se debe aumentar el valor del parámetro; por ejemplo: Pág.44 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 45. Para ejecutar los procedimientos en Scratch basta con hacer clic en la bandera verde ubicada en la esquina superior derecha de la pantalla: 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. Pág.45 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 46. ESTRUCTURA SECUENCIAL Una estructura se define como un esquema con cierta Restricciones: La figura resultante debe ser igual en su forma a la distribución y orden que permite representar una idea de muestra. Las dimensiones pueden variar. forma simplificada y que bajo ciertas condiciones es Procesos necesarios: la figura se puede realizar mediante tres constante (Trejos, 1999). La estructura de control procedimientos. El primero, que puede llamarse simetríaCuadrado, secuencial es la más sencilla. También se la conoce dibuja un cuadrado con los comandos adelante y derecha. El como estructura lineal. Se compone de instrucciones segundo procedimiento (simetríaCuadricula), dibuja cuatro que deben ejecutarse en forma consecutiva, una tras cuadrados utilizando el procedimiento simetríaCuadrado y el otra, siguiendo una línea de flujo. Solamente los comando izquierda. El tercero (simetríaEstrella), dibuja dos veces la problemas muy sencillos pueden resolverse haciendo figura que se forma con el procedimiento simetríaCuadrado; se debe uso únicamente de esta estructura. Normalmente, la girar la tortuga 45 grados a la derecha luego de ejecutar estructura secuencial hace parte de soluciones a simetríaCuadrado por primera vez. problemas complejos en las que se la utiliza mezclada con estructuras iterativas (repetir varias veces un DISEÑO DEL ALGORITMO conjunto de instrucciones) y condicionales (tomar decisiones). Ilustración 3-6: Modelo de estructura secuencial. Una estructura de control secuencial puede contener 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: TRADUCIÓN DEL ALGORITMO 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 R/. adelante 100 ANÁLISIS DEL PROBLEMA derecha 90 Formular el problema: Ya está claramente planteado. adelante 100 Resultados esperados: El dibujo dado. derecha 90 Datos disponibles: La figura geométrica suministrada. El análisis de adelante 100 la figura permite establecer que está construida con varios derecha 90 cuadrados de igual tamaño. fin Pág.46 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 47. simetríaCuadricula no realiza ningún dibujo, lo 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í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 izquierda 90 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 vez, cada que es invocado, llama cuatro veces al procedimiento simetríaCuadrado. Para lograr el efecto de estrella, luego de llamar la primera vez al procedimiento simetríaCuadricula, se gira la tortuga 45 grados, antes de llamar el mismo procedimiento por segunda vez. Las siguientes son las instrucciones equivalentes en Scratch para elaborar la misma estrella: 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 Pág.47 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 48. 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 programación de computadores puede apoyar muy 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). Por último, en este ejemplo se utilizan más comandos de los que realmente se requieren. Como el objetivo no es presentar códigos optimizados sino más bien que el estudiante se familiarice con los comandos disponibles, más adelante, cuando se vea la estructura repetitiva, el docente puede repetir este ejemplo y utilizar el comando “repetir”. Posteriormente, promover la reflexión de los estudiantes sobre la optimización del código y las múltiples maneras que hay en programación para realizar la misma tarea. EJEMPLO 3-6 http://scratch.mit.edu/projects/jualop/42800 Escribir un procedimiento para calcular el área de cualquier triángulo rectángulo. En él se debe pedir al usuario que ingrese los valores de Muchos estudiantes logran construir la figura del la Altura y la Base del triángulo. procedimiento simetríaEstrella utilizando gran cantidad R/. de comandos que se repiten sin estructura alguna ANÁLISIS DEL PROBLEMA (mediante experimentación). Es muy importante que Formular el problema: Ya está claramente planteado. ellos reflexionen sobre las ventajas que ofrecen los Resultados esperados: Un procedimiento que permita calcular el procedimientos cuando se los utiliza a manera de área de cualquier triángulo rectángulo. objetos que cumplen con una función determinada Datos disponibles: Base y Altura del triángulo (se deben solicitar al (dibujar un cuadrado, calcular un área, etc). Una tarea usuario). El estudiante debe preguntarse si sus conocimientos que debe realizarse varias veces es candidata ideal para actuales de matemáticas le permiten resolver este problema; de no tratarla como un procedimiento. Con la utilización de ser así, debe plantear una estrategia para obtener los conocimientos parámetros se pueden cambiar algunos valores cada requeridos. vez que se ejecute esa tarea. De esta manera, si Restricciones: Los valores de base y altura son variables y se necesitamos dibujar varios cuadrados de diferentes deben solicitar al usuario. tamaños, lo más adecuado será construir un Procesos necesarios: definir variables; asignar el valor 2 a la procedimiento con el valor de Lado como parámetro y constante div; solicitar al usuario el valor de la altura del triángulo; ejecutarlo varias veces asignando a este el valor del solicitar al usuario el valor de la base; aplicar la fórmula de área; Lado del cuadro a dibujar, cada vez que se ejecute (ver mostrar el resultado. el ejemplo 3-4). Pág.48 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 49. DISEÑO DEL ALGORITMO cada vez que se ejecute el procedimiento triánguloRectángulo, este le preguntará al usuario cuál es la altura y la base del triángulo del cual desea calcular su área. Tanto en la utilización de la estructura secuencial, como en las dos que veremos más adelante, es muy importante que los estudiantes reflexionen y determinen el orden de ejecución de las instrucciones (posición) ya que la 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 y posicional; busca la precisión, el rigor, la abreviación y la universalidad; y, su finalidad fundamental consiste en obtener resultados internamente consistentes (Onrubia & Rochera & Barbarà, 2001). La construcción de estructuras algorítmicas, entendidas estas como secuencias de instrucciones y operaciones, con el fin de lograr un resultado concreto, ayuda a TRADUCCIÓN DEL ALGORITMO EN MICROMUNDOS afianzar en los estudiantes el conocimiento para triánguloRectángulo procedimental matemático. Este conocimiento se local "div ; declarar variables y constantes caracteriza por la acción (saber hacer) frente al local "base conocimiento declarativo que se basa en la enunciación local "altura (saber decir). Saber explicar (enunciar) un teorema no local "área garantiza que este se sepa aplicar (actuar) da "div 2 correctamente en la solución de una situación pregunta [Ingrese la Altura del Triángulo] ; ingresar altura y problemática determinada (Onrubia & Rochera & base Barbarà, 2001). da "altura respuesta pregunta [Ingrese la Base del Triángulo] Toda secuencia de acciones tiene una estructura que da "base respuesta debe planearse (consciente o inconscientemente) antes da "área :base * :altura / :div ; realizar cálculos de ejecutarla. Cuando la acción se realiza de manera anuncia frase [El Área del triángulo es:] :área ; reportar el automática, quien actúa no es consciente de la resultado estructura y por tanto no puede ver las correlaciones en fin su actuación y con el entorno de dicha acción; las acciones se convierten en operaciones cuando quien las TRADUCCIÓN DEL ALGORITMO EN SCRATCH 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 diferencia de un símbolo, no se parece a su significado; es elegido arbitrariamente y para conocer su significado En este ejemplo, el procedimiento triánguloRectángulo hay que aprenderlo y fijarlo en la memoria: palabras de también está compuesto únicamente por una estructura lenguajes naturales, cifras, signos algebraicos, etc. Los secuencial de instrucciones. En ella se utilizan las significados se pueden codificar básicamente de cuatro primitivas “pregunta” y “respuesta” para permitir que el formas: mediante la palabra hablada, la palabra escrita, usuario del programa suministre al programa los datos el signo gráfico, y la variable. Así, el número 2 se puede “altura” y “base” del triángulo. De esta forma, se logra un representar mediante el fonema “dos”, la palabra “dos”, procedimiento generalizado para calcular el área de el signo “2” o “..” y la variable “a”. CUALQUIER triángulo rectángulo. En otras palabras, Pág.49 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 50. De lo anterior se puede deducir que elaborar programas TRADUCCIÓN DEL ALGORITMO EN SCRATCH de computador para resolver problemas matemáticos ofrece al estudiante la oportunidad de fijar la atención en la estructura de las operaciones que realiza, mediante su traducción a un sistema de signos que el computador pueda entender. Dirigir la atención a la estructura tiene como consecuencia que operaciones clásicas, como la suma con números naturales, se hagan cada vez más móviles y puedan constituir sistemas cada vez más complejos (Aebli, 2001). Este es un problema muy sencillo de resolver mediante la utilización de una estructura secuencial. Pedir a los EJEMPLO 3-7 estudiantes que analicen qué tan eficiente sería utilizar Escribir un procedimiento que muestre 3 veces en pantalla la frase la misma estructura si el enunciado del problema fuera: “Esto es un camello”. Escribir un procedimiento que muestre 60 veces en R/. pantalla la frase “Esto es un camello”. ¿Qué habría que ANÁLISIS DEL PROBLEMA hacer si se cambiara 3 veces por 60? Formular el problema: Ya se encuentra claramente formulado. Resultados esperados: Que aparezca tres veces en pantalla la frase “Esto es un camello”. ACTIVIDADES Datos disponibles: La frase dada. 1. Diseñar un algoritmo que pida al usuario dos números y calcule la Restricciones: Ninguna. suma, la resta, la multiplicación y la división del primero por el Procesos necesarios: Ninguno. segundo. Traducir el algoritmo al lenguaje Logo y probarlo. DISEÑO DEL ALGORITMO 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. TRADUCCIÓN DEL ALGORITMO EN MICROMUNDOS para camello1 muestra [Esto es un camello] muestra [Esto es un camello] muestra [Esto es un camello] fin Pág.50 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 51. ESTRUCTURA ITERATIVA (REPETICIÓN) La estructura iterativa o de repetición permite ejecutar ejemplo: repite 60 [muestra “hola] una o varias instrucciones, un número determinado de donde número (60) indica las veces que se ejecutará la veces o, indefinidamente, mientras se cumpla una lista-de-instrucciones ([muestra “hola]). condición. Esta estructura ayuda a simplificar los algoritmos, ahorrando tiempo valioso a quien resuelve La sintaxis de cumpleveces en MMP es: problemas con ayuda del computador. cumpleveces [serie] [lista-de-instrucciones] ejemplo: cumpleveces [i 8][muestra :i] En programación existen al menos dos tipos de donde serie ([i 8]) indica el nombre del parámetro (i) y el estructuras repetitivas, las cuales a su vez tienen número de veces (8) que se ejecutará la lista-de- variantes en los diferentes lenguajes de programación. instrucciones ([muestra :i]). La característica común es que ambos tipos permiten ejecutar una o varias instrucciones: Por su parte, la estructura repetitiva se implementa en • un número determinado de veces. Scratch con los Mandos repetir (n veces); repetir hasta • mientras se cumpla una condición. que <una condición sea verdadera>; por siempre; por siempre si <una condición es verdadera>: 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 estructura repetitiva. Por lo general, la mayoría de instituciones educativas destina una o dos horas semanales a la clase de informática, tiempo muy limitado para cubrir todas las variantes que ofrecen los lenguajes de programación. Ante esta situación, se requiere concentrar esfuerzos en lograr la comprensión de conceptos fundamentales de los tres tipos básicos de estructura (secuencial, repetitiva y condicional). Esto solo se consigue resolviendo una buena cantidad de problemas cuya solución requiera de estas estructuras en forma combinada. 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. 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] Pág.51 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 52. DISEÑO DEL ALGORITMO cuadrado cuyos lados fueran variables. Es muy probable que en una primera aproximación a la solución de este problema ellos elaboren un procedimiento similar al que se planteó en ese ejemplo, utilizando una estructura secuencial: para cuadrado :lado limpia cp adelante :lado derecha 90 adelante :lado derecha 90 adelante :lado derecha 90 adelante :lado fin TRADUCCIÓN DEL ALGORITMO EN MICROMUNDOS Un análisis más elaborado de este problema permitirá a Con el uso del comando repite: los estudiantes adquirir una conciencia mayor de la para camello2a organización global de un cuadrado. Determinar los repite 85 elementos comunes presentes en todos los cuadrados [ permite identificar qué permanece estático (cuatro muestra [Esto es un camello] segmentos de recta iguales y cuatro ángulos iguales) y ] qué es lo que cambia (longitud de los segmentos). fin Aquello que cambia entre un cuadrado y otro se puede tratar como un parámetro. Además, este análisis permite Ahora con el uso del comando cumpleveces: descubrir que es posible utilizar otro tipo de estructura para camello2b de control para elaborar el mismo dibujo: cumpleveces [i 85] [ TRADUCCIÓN DEL ALGORITMO EN MICROMUNDOS para cuadrado :lado muestra [Esto es un camello] limpia ] cp fin repite 4 [ adelante :lado TRADUCCIÓN DEL ALGORITMO EN SCRATCH derecha 90 ] 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 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 Esta situación evidencia cómo en las actividades de incidencia en la estructura del algoritmo, sea este 85 ó programación el estudiante debe utilizar conocimientos 1385. Es muy importante que los estudiantes tengan adquiridos con anterioridad, cómo la etapa de análisis muy claro la diferencia entre los procedimientos favorece y alienta el rigor y la disciplina en el camello1 y camello2a. razonamiento y cómo ese análisis puede conducir a nuevos descubrimientos que deriven en En el Ejemplo 3-4 se solicitó a los estudiantes dibujar un reorganizaciones del pensamiento, reestructuraciones de esquemas, etc. (Dufoyer, 1991). Además, algunos Pág.52 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 53. psicólogos han llegado a sugerir que la programación da "contador 0 alienta el estudio de las matemáticas, facilita la da "sumatoria 0 comprensión de conceptos de esta disciplina, admite repite 100 explorar activamente campos de conocimiento, permite [ desarrollar habilidades y ofrece un lenguaje que permite da "contador :contador + 1 describir la forma personal de resolver problemas. da "sumatoria :sumatoria + :contador muestra nombres ] EJEMPLO 3-9 muestra frase Calcular el valor de la sumatoria: 1 + 2 + 3 + 4 +5 + … + 100. [El valor de la suma 1 + 2 + 3 + . . . + 100 es ] :sumatoria R/. fin ANÁLISIS DEL PROBLEMA Formular el problema: Ya se encuentra claramente formulado. Ahora el mismo algoritmo pero con el Mando cumpleveces de Resultados esperados: El resultado de la suma de los números MicroMundos: entre 1 y 100. Datos disponibles: El rango de números dado. para suma100b Restricciones: Ninguna. bnombres Procesos necesarios: guardar el número 0 en una variable e da "sumatoria 0 incrementarla en 1 cada vez que se ejecute el ciclo repetitivo. cumpleveces [contador 100 ] Guardar 0 en otra variable e ir acumulando en ella su propio valor [ más el valor de la primera variable. da "sumatoria :sumatoria + :contador + 1 muestra nombres DISEÑO DEL ALGORITMO ] 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 EJEMPLO 3-10 misma (sumatoria) más otro valor variable (contador). Es muy La profesora Ángela Cristina necesita calcular la nota definitiva para utilizada para acumular valores. cada uno de los 22 alumnos que asisten a su curso de geometría. Ella realizó a todos sus estudiantes, en el primer periodo del año TRADUCCIÓN DEL ALGORITMO EN MICROMUNDOS lectivo, dos exámenes y asignó un trabajo de investigación. ¿Cómo Con el Mando repite: puedes ayudarle? para suma100a R/. bnombres Pág.53 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 54. ANÁLISIS DEL PROBLEMA Formular el problema: Se requiere calcular un promedio de tres notas para cada uno de los 22 alumnos. Resultados esperados: La nota definitiva de cada uno de los 22 alumnos. 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 porcentaje en la nota definitiva. Tres notas por alumno y 22 alumnos. Procesos necesarios: Para cada uno de los 22 alumnos: Leer las tres notas, sumarlas, calcular el promedio y mostrar el promedio. 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 mediante la utilización de estructuras repetitivas. En ellos se puede apreciar claramente la forma como esta estructura simplifica algunas soluciones, en comparación con soluciones cuya estructura es secuencial. Por otro lado, la estructura repetitiva es muy apropiada para explorar los conceptos de multiplicación (suma cuyos sumandos son iguales) y potenciación (multiplicación de factores iguales). TRADUCCIÓN DEL ALGORITMO EN MICROMUNDOS EJEMPLO 3-11 para notas Elaborar un procedimiento para calcular tablas de multiplicar. El cumpleveces [estudiante 22] usuario debe ingresar qué tabla de multiplicar desea. [ R/. pregunta [Ingrese la nota del primer examen ] ANÁLISIS DEL PROBLEMA da "examenUno respuesta Formular el problema: Ya se encuentra claramente formulado. pregunta [Ingrese la nota del segundo examen ] Resultados esperados: La tabla de multiplicar que el usuario da "examenDos respuesta indique. pregunta [Ingrese la nota del trabajo de investigación ] Datos disponibles: El número de la tabla (indicada por el usuario). da "trabajo respuesta Restricciones: Ninguna. da "sumatoria :examenUno + :examenDos + :trabajo Procesos necesarios: pedir al usuario que ingrese la tabla de da "promedio :sumatoria / 3 multiplicar que desea. Guardar ese valor en una variable (tabla). muestra (frase [El promedio del estudiante ] :estudiante + 1 [ es Multiplicar cada uno de los valores entre 0 y 9 por la variable tabla. ] Mostrar el resultado de cada multiplicación. :promedio) ] Fin TRADUCCIÓN DEL ALGORITMO EN SCRATCH Pág.54 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 55. 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 da "resultado :multiplicando * :tabla multiplicación: 6 * 7; de forma similar, la multiplicación 3 4 muestra (frase :tabla [ x ] :multiplicando [ = ] :resultado) * 3 * 3 * 3 puede expresarse como una potencia: 3 =81. ] El número 3, que se multiplica varias veces, se conoce fin como base; 4, la cantidad de veces que se debe multiplicar la base, se conoce como exponente, y 81, el Nótese que, al igual que en el ejemplo 3-10, el reportero resultado, se conoce como potencia. Se lee: 81 es la frase devuelve una lista formada por sus entradas potencia de 3 elevado a la 4. (palabras o listas). frase puede tomar más de dos entradas cuando se utilizan paréntesis para encerrar el Existe una leyenda muy antigua sobre el origen del reportero y sus entradas, las cuales pueden incluir texto juego de ajedrez. La leyenda evidencia claramente la entre corchetes: velocidad con que aumenta una progresión geométrica y muestra (frase [texto 1] :variable1 [ texto2] :variable2 + 1 es un buen punto de partida para empezar a resolver :variable3 [texto3]) problemas de potenciación con ayuda del computador. 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. Algún tiempo después, el rey mandó llamar a su presencia al joven bracmán y dirigiéndose a él le dijo: Pág.55 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 56. - Quiero recompensarte, amigo mío, por este maravilloso obsequio, ANÁLISIS DEL PROBLEMA que de tanto me sirvió para aliviar viejas angustias. Pide, pues, lo Formular el problema: Es un problema de multiplicaciones de que desees, para que yo pueda demostrar, una vez más, como soy factores iguales que pueden expresarse en forma de potencias; de agradecido con aquellos que son dignos de una recompensa. además, para llegar al resultado final se deben acumular los Ante tal ofrecimiento, el joven respondió: resultados parciales. - Voy, pues, a aceptar por el juego que inventé, una recompensa que Resultados esperados: El número de granos que el Rey Ladava corresponda a vuestra generosidad; no deseo, sin embargo, ni oro, debe entregar a Lahur Sessa. ni tierras, ni palacios. Deseo mi recompensa en granos de trigo. Datos disponibles: El número de cuadros del tablero de ajedrez -¿Granos de trigo? –exclamó el rey, sin ocultar la sorpresa que le (64) y la regla dada por Sessa: “un grano de trigo por la primera causara semejante propuesta-. ¿Cómo podré pagarte con tan casilla del tablero, dos por la segunda, cuatro por la tercera, ocho insignificante moneda? por la cuarta, y así sucesivamente hasta la sexagésima cuarta y -Nada más simple -aclaró Sessa-. Dadme un grano de trigo por la última casilla del tablero”. primera casilla del tablero, dos por la segunda, cuatro por la tercera, Restricciones: Aplicar la regla planteada por Sessa. ocho por la cuarta, y así sucesivamente hasta la sexagésima cuarta Procesos necesarios: Un ciclo que se repita 64 veces. En cada y última casilla del tablero. iteración se debe acumular en una variable (granos), su propio valor No sólo el rey, sino también los visires y venerables bracmanes, se más el resultado de 2 elevado a un exponente que aumenta su valor rieron estrepitosamente al oír la extraña solicitud del joven. en uno con cada iteración. Insensato -exclamó el rey-. ¿Dónde aprendiste tan grande indiferencia por la fortuna? La recompensa que me pides es ridícula. DISEÑO DEL ALGORITMO Mando llamar el rey a los algebristas más hábiles de la Corte y les ordenó calculasen la porción de trigo que Sessa pretendía. 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. TRADUCCIÓN DEL ALGORITMO EN MICROMUNDOS (Tomado del libro “El hombre que calculaba” escrito por Malba Utilizando el comando repite: Tahan) para ajedrez bnombres da "exponente 1 EJEMPLO 3-12 da "granos 0 Elaborar un procedimiento para ayudar a los hábiles algebristas de la repite 64 corte del Rey Ladava con el cálculo del número de granos de trigo [ que deben entregar a Lahur Sessa como pago por haber inventado da "granos :granos + potencia 2 :exponente el juego de ajedrez. da "exponente :exponente + 1 R/. muestra nombres ] Pág.56 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 57. muestra frase [El número de granos que ganó Sessa es ] :granos 3. Elaborar un procedimiento que le reporte al electricista de un fin 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. TRADUCCIÓN DEL ALGORITMO EN SCRATCH 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 Los estudiantes deben encontrar solución a los siguientes problemas empleando la metodología expuesta en la Unidad 1: Analizar el problema (formulación del problema, resultados esperados, datos disponibles, restricciones y procesos necesarios), diseñar el algoritmo, traducirlo al lenguaje Logo y probar el programa resultante. 1. Elaborar un procedimiento que calcule y muestre las áreas de 100 círculos con radio de 1 a 100 cm. 2. Elaborar un procedimiento que calcule y muestre el cuadrado de los números 1 a 90. Pág.57 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 58. ESTRUCTURA CONDICIONAL Es fundamental que los estudiantes presten atención especial a las estructuras que utilizan para resolver Por su parte, un bloque de instrucciones puede contener problemas y las reconozcan para lograr mayor control una o varias instrucciones que se ejecutan una detrás sobre la solución planteada. De esta manera, la de otra. La estructura condicional tiene tres variantes: programación de computadores les ayuda a planear • selección simple. conscientemente las secuencias de acciones que • selección doble. resuelven un problema planteado y las estructuras • selección múltiple. involucradas en una solución dada. Las estructuras condicionales simple y doble evalúan La estructura condicional se utiliza para indicarle al una proposición (condición) que devuelve como computador que debe evaluar una condición y, a partir resultado únicamente dos valores posibles y del resultado, ejecutar el bloque de instrucciones excluyentes: verdadero o falso. En cambio, la estructura correspondiente. La forma más común está compuesta condicional de selección múltiple permite que la por una proposición (condición) que se evalúa y dos condición devuelva más de un valor posible y que para bloques de instrucciones que se ejecutan, uno cuando la cada uno de esos valores se ejecute el bloque de condición es verdadera (selección simple y doble) y otro instrucciones correspondiente. Por ejemplo, una cuando ésta es falsa (únicamente en la selección doble). situación típica de selección múltiple es cuando la Algunos autores se refieren a este tipo de estructura incorporación al ejercito, de un joven al terminar sus como estructura de selección, estructura selectiva o estudios de educación media, depende del color de una estructura de decisión; en esta guía, todas estas balota: si saca una balota roja, su incorporación al denominaciones son consideradas sinónimas. ejercito es inmediata; si es azul, la incorporación será en julio; y si es blanca, el estudiante no debe prestar Para que una proposición (frase declarativa) sea valida, servicio militar. En esta situación hay tres valores debe poder afirmarse que es verdadera o falsa. En posibles y cada uno de esos valores implica la ejecución programación, se utilizan operadores relacionales (<, =, de una instrucción diferente (Jiménez, 2002). >) para establecer la relación que existe entre dos elementos de la proposición. Por ejemplo, “La Debido al alcance de esta guía, solo se cubren aquí los calificación de Esteban en Historia es mayor que 6.0”, es dos primeros tipos de estructura condicional: simple y una proposición valida. De una parte tenemos “La doble. calificación de Esteban en Historia” (A) y, de la otra, el valor “6.0” (B); de A con respecto a B, se afirma que “A es mayor que B”, por lo tanto, la relación existente entre Selección simple A y B es “ser mayor que”. Para que el computador La estructura condicional de selección simple ejecuta un entienda esta proposición, debe expresarse así: bloque de instrucciones cuando la proposición “:calificación > 6.0”, donde :calificación es la variable (condición) es verdadera; si esta es falsa, no hace nada. 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 Adicionalmente, las proposiciones pueden ser sencillas o compuestas. Las proposiciones compuestas se forman con dos o más proposiciones sencillas unidas por operadores lógicos (y, o, no). Cuando se unen dos proposiciones por medio del operador lógico “y”, Ilustración 3-9: Modelo de estructura condicional simple. significa que ambas proposiciones deben ser verdaderas (conjunción). Cuando se unen dos Para la estructura condicional de selección simple, proposiciones por medio del operador lógico “o”, MicroMundos ofrece el comando “si”. La sintaxis es: significa que por lo menos una de las dos proposiciones debe ser verdadera (disyunción). si cierto-o-falso Pág.58 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 59. [ forma que se aprecie muy claramente dónde inicia y lista-de-instrucciones dónde termina una lista-de-instrucciones. ] el comando “si” ejecuta la lista-de-instrucciones Selección doble únicamente si al evaluarse la proposición, esta devuelve La estructura condicional de selección doble ejecuta un cierto (verdadero). bloque de instrucciones (A) cuando la proposición (condición) es verdadera y un bloque diferente (B) Por su parte, la estructura condicional de selección cuando esta es falsa. simple se implementa en Scratch con el bloque “si” (condición): 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 lista-de-instrucciones-B pregunta [Ingrese el á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-instrucciones- da "reportar [ es un ángulo recto] B. Ambas listas de instrucciones se deben indicar entre muestra frase :ánguloUno :reportar corchetes [ ] y pueden estar compuestas por una o más ] instrucciones. fin En Scratch, la estructura condicional de selección doble En este ejemplo, cierto-o-falso (:ánguloUno = 90) indica se implementa con el bloque “si (condición) si no”: 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. Además, se puede observar un recurso gráfico muy EJEMPLO 3-14 importante para dar claridad a las líneas de código de para selecciónDoble los procedimientos en MicroMundos: (1) dejar líneas en pregunta [Ingrese el ángulo] blanco para dividir bloques de código; (2) utilizar da "ánguloUno respuesta sangrías para indicar porciones de código subordinadas siotro (:ánguloUno = 90) a un comando; (3) abrir y cerrar los corchetes que [ indican bloques de código en una línea a parte, de tal da "reportar [ es un ángulo recto] Pág.59 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 60. ] empieza y dónde termina la lista que conforma el [ bloque que se debe ejecutar. da "reportar [ NO es un ángulo recto] ] muestra frase :ánguloUno :reportar EJEMPLO 3-15 fin 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 contrario, reportar “Reprobado”. DISEÑO DEL ALGORITMO En este ejemplo, cierto-o-falso (:ánguloUno = 90) indica la proposición que se debe evaluar, la cual solo puede devolver uno de dos valores posibles: verdadero o falso. 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-de- instrucciones-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 TRADUCCIÓN DEL ALGORITMO EN vayan las palabras reservadas si y siotro MICROMUNDOS respectivamente. para aprueba • En MicroMundos, cuando la proposición es sencilla local "calificación (sin operadores lógicos) no es necesario que vaya pregunta [Ingrese la Calificación] entre paréntesis; si es compuesta (dos o más da "calificación respuesta proposiciones unidas con operadores lógicos como: siotro o :calificación > 6.0 :calificación = 6.0 o, y, no) tiene que encerrarse con paréntesis. Como [ en el primer caso no sobran los paréntesis (no anuncia [Aprobado] genera error), es recomendable utilizarlos siempre. ] Por ejemplo: (ánguloUno = 90) es una proposición [ sencilla equivalente a ánguloUno = 90, pero es mejor anuncia [Reprobado] utilizar la primera forma. ] • En MicroMundos, las listas de instrucciones deben fin estar agrupadas con corchetes, estos indican dónde Pág.60 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 61. proposiciones simples y compuestas (calificables como TRADUCCIÓN DEL ALGORITMO EN SCRATCH falsas o verdaderas). 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. En este ejemplo, se puede observar la sintaxis de los c. ________________ calle perfecta para perro azul. 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 abre la proposición: f. ________________ el nevado del Ruiz es un volcá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. Proposiciones j. ________________ Perú y Chile son países Iberoamericanos. Según Piaget (1993), las operaciones verbales o k. ________________ el cuaderno verde de geometría. proposicionales surgen hacia los once o doce años con l. ________________ está permitido subir las escaleras. 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 n. ________________ si alguien es chileno, entonces es español. niños entre los once y los catorce años piensen en o. ________________ hace mucho frío términos de proposiciones y no únicamente sobre objetos; acepten cualquier tipo de dato como puramente p. ________________ en un lugar de la Mancha de cuyo nombre hipotético y razonen correctamente a partir de él; q. ________________ ojalá no me llame. deduzcan las implicaciones de enunciados posibles y r. ________________ apague la luz cuando salga. así distingan entre lo posible y lo necesario; formulen todas las hipótesis posibles relativas a los factores que entran en juego en una actividad y organicen la Un curso de algoritmos y programación puede contribuir significativamente a desarrollar la capacidad hipotética- información en función de estos factores. deductiva en la que el pensamiento no proceda de lo De acuerdo con Piaget y sus seguidores, es en este real a lo teórico, sino que parta de la teoría y establezca estado del desarrollo cognitivo en el que se constituye o verifique relaciones reales entre cosas. Concretamente, dos tipos de actividades pueden ayudar un conjunto de estructuras proposicionales basadas en a lograr este propósito: utilizar estructuras condicionales lo que en teoría de conjuntos se llama un "conjunto de todos los subconjuntos". Esta estructura está las cuales están basadas en la operación de implicación conformada por operaciones equivalentes a ciertas (si...., entonces...) y formular enunciados declarativos estructuras del pensamiento verbal, tales como compuestos (proposiciones simples unidas por los implicación (p -> q: si..., entonces...; si la hipótesis p es conectores lógicos “y”, “ó”) que el computador pueda evaluar como verdaderos o falsos. Adicionalmente, verdadera, entonces la consecuencia q se sigue estos enunciados promueven el razonamiento por necesariamente); disyunción (p V q; ó p, ó q, ó los dos); unión (p ^ q); incompatibilidad (p | q). atribución o relación (Felipe es más joven que Ángela) en contraposición al razonamiento por predicados Una forma efectiva para iniciar a los estudiantes más (Felipe es joven). pequeños en el tema de las proposiciones puede ser la Precisamente, la estructura condicional utilizada en propuesta por Marquínez & Sanz (1988): empezar con cadenas de palabras (sin sentido), avanzar a programación (si... entonces...) ofrece al estudiante expresiones (con sentido incompleto), continuar con oportunidades para desarrollar habilidades con oraciones (con sentido completo) y finalizar con proposiciones y relaciones de orden. Sin embargo hay que tener en cuenta que la construcción “si P entonces Pág.61 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 62. S”, que utilizan los lenguajes de programación 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 A es mayor que B (:a > :b) frase declarativa que puede ser afirmada o negada" y para Iranzo (2005) la lógica proposicional "se ocupa de A es mayor o igual (o :a > :b :a = :b) los enunciados declarativos simples como un todo que B indivisible y que pueden combinarse mediante partículas lógicas denominadas conectores (no, y, o, si... A es como mínimo (o :a > :b :a = :b) entonces..., etc)". A esta lógica también se le conoce igual a B con el nombre de lógica de enunciados o lógica de conectores. De acuerdo con estos dos autores, los A es menor que B (:a < :b) siguientes enunciados declarativos se pueden negar o afirmar, por lo tanto pueden considerarse proposiciones: A es menor o igual (o :a < :b :a = :b) que B 1. Cali es la capital del Valle del Cauca. A es al menos (o :a < :b :a = :b) 2. El cuatro es un número impar. igual a B 3. Seis es menor que doce. 4. El INSA es un colegio regentado por la comunidad A está entre 0 y 10 (y :a > 0 :a < 10) de Padres Basilianos. 5. Andrés Pastrana es el presidente de Colombia. 6. Es verano A está entre 0 y (y (o :a > 0 :a = 0) (o :a < 10 :a = 7. Hace calor 10, inclusive 10)) De las proposiciones primera, tercera, cuarta y quinta podemos decir que son verdaderas y de la segunda Un aspecto fundamental de la estructura condicional es podemos afirmar que es falsa. Sin embargo, para poder la reflexión sobre el papel del lenguaje natural en la afirmar que la cuarta proposición es verdadera, hay que formulación y uso de relaciones de orden y de disponer del conocimiento suficiente sobre este colegio proposiciones. Diversos autores que se han ocupado de ubicado en el barrio Andrés Sanín en la ciudad de Cali. la lógica y el lenguaje han establecido tres categorías Esto nos conduce a hacer otra consideración: establecer generales para el uso del lenguaje: informativa explícitamente si una proposición es verdadera o falsa (suministra información definiendo, declarando, puede resultar en algunos casos muy difícil o imposible. aclarando, describiendo), expresiva (expresa Por otra parte, la quinta proposición fue verdadera sentimientos, emociones, deseos) y directiva (busca durante un lapso de tiempo (1998-2002). inducir a alguien a que haga u omita algo). Son ejemplos de cada una de estas categorías lo siguiente: En relación a las proposiciones sexta y séptima, su valor Uso informativo: de verdad depende del momento en el cual se haga la • La línea recta es la más corta entre dos punto afirmación. Esto nos lleva a otra forma de clasificar los de un plano. enunciados declarativos: de acción cuando el sujeto no • Colombia es un país andino está determinado (6 y 7); de atribución cuando el sujeto • Los noruegos son altos, delgados y de ojos es determinado y se le atribuye una propiedad (1, 2 y 5); azules. y de relación cuando hay dos o más sujetos (3 y 4). Uso expresivo: • Ojalá haga buen día mañana! Con respecto a las relaciones de orden podemos decir • Qué horror! no podría soportar algo tan que consisten en un par de elementos presentes en una doloroso. proposición relacionados por medio de un atributo Uso directivo: gradado. Por ejemplo, “el elemento A es mayor o igual • Prohibido fumar que el elemento B” o “seis es menor que doce”. • Cierre la puerta Proposiciones en las cuales “mayor o igual que” y • Se solicita comportarse bien “menor que” son las relaciones de orden que se establecen entre los elementos A y B, y entre seis y Pág.62 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 63. Para la programación y en especial para la estructura También hay que tener cuidado cuando se quiere condicional, resulta imprescindible el uso informativo del comparar un texto conformado por dos o más palabras, lenguaje. Este se encarga de comunicar información este debe encerrarse entre barras (|palabra1 mediante la formulación y afirmación o negación de palabra2|). proposiciones. El discurso informativo se utiliza para describir el mundo y para razonar sobre él, sin importar si las proposiciones son importantes o no, si son Otro aspecto a tener en cuenta con las proposiciones y generales o específicas, o si son verdaderas o falsas que se debe trabajar con los estudiantes es la riqueza (Copi & Cohen, 2000). del lenguaje natural (Marquínez & Sanz, 1998). Por ejemplo, el conector lógico "y" (^) se presenta de Los estudiantes deben estar en capacidad de distinguir diversas formas en el lenguaje común utilizado para el discurso informativo en un texto o en el planteamiento formular problemas y los estudiantes deben aprender a verbal de un problema. Pero en ciertos textos o identificarlo: planteamientos resulta difícil identificar de manera inmediata la existencia de proposiciones que se puedan • Cali Y Medellín son ciudades ecuatorianas. contestar con un “verdadero” o con un “falso” (Solano, • Bogotá, Quito, Lima, Montevideo son ciudades 1991). En lenguajes de programación como Logo es capitales (Bogotá es ciudad capital Y Quito es muy importante que las proposiciones se puedan ciudad capital Y Lima es ciudad capital Y expresar directamente, en forma de notación Montevideo es ciudad capital) matemática o mediante texto. Para ello, es fundamental • Luisa estudia, Cristina también (Luisa estudia Y que los estudiantes identifiquen los componentes de las Cristina estudia) proposiciones (enunciados y relación entre ellos) y • En Bogotá hace frío, IGUALMENTE en Tunja (En verifiquen que sean validos. Luego determinen en cada Bogotá hace frío Y en Tunja hace frío) proposición el sujeto (objetos o individuos acerca de los • En Bogotá hace frío, DEL MISMO MODO en Tunja cuales se afirma algo) y el predicado (propiedad que (En Bogotá hace frío Y en Tunja hace frío) posee el sujeto) y en seguida identifiquen con un • En Bogotá hace frío, MIENTRAS QUE en Cartagena nombre (identificador) al que puede variar (sujeto o calor (En Bogotá hace frío Y en Cartagena hace predicado). calor) • Ángela tiene un automóvil, PERO no sabe manejarlo Por ejemplo, en la proposición número 1 “Cali es la aún (Ángela tiene automóvil Y Ángela no sabe capital del Valle del Cauca”, el sujeto es “Cali”, el manejar automóvil) predicado es “capital del Valle del Cauca” y la relación • Luisa no viene, SIN EMBARGO escribe correos es de igualdad “es”. Se debe asignar un nombre al electrónicos todos los días (Luisa no viene Y Luisa predicado (capitalValle) para guardar el valor “Cali”. En escribe correos electrónicos todos los días) el caso de la proposición “Seis es menor que doce”, el • Esteban no estudia, NO OBSTANTE quiere hacerlo sujeto es “Seis”, el predicado es “doce” y la relación es (Esteban no estudia Y Esteban quiere estudiar) “menor que”. • A PESAR DEl buen tiempo, no vamos a la piscina Por otra parte, de las siete proposiciones planteadas, (Hace buen tiempo Y no vamos a piscina) solo la número tres se puede expresar en notación • PESE A QUE lo sabe, no lo puede decir (Él lo sabe matemática; la otras proposiciones hay que expresarlas Y él no lo puede decir) como texto, con excepción de la número 2 que no se • En Cali no hay energía eléctrica, TAMPOCO en puede expresar directamente: Bogotá (En Cali no hay energía eléctrica Y en 1. (:capitalValle = "Cali) Bogotá no hay energía eléctrica) 2. “El cuatro es un número impar” no se puede expresar directamente. Hay que elaborar un Lo mismo ocurre con la determinación de si una procedimiento para determinar si un número es par proposición está expresada en afirmativo o en negativo: o impar. • Colombia NO es un país europeo. 3. (6 < 12) • El Nilo es un río Incontrolable (El Nilo es un río que 4. (:rectorINSA = "Basiliano) NO se puede controlar) 5. (:presidenteColombia = "|Álvaro Uribe|) • La vida humana en Marte es Imposible (NO es 6. (:verano = true) posible la vida humana en Marte) 7. (:haceCalor = false) • Luisa es una diseñadora DESconocida (Luisa NO es conocida como diseñadora) • La aparición de cometas es un fenómeno TIP DIScontinuo (NO es continua la aparición de Hay que tener cuidado cuando se copia de un cometas) procesador de texto una porción de texto que contenga • Los animales son Amorales (Los animales NO comillas (“) y se pega en el área de procedimientos de tienen moral) MicroMundos [4]. Las comillas (“) que generan estos • Los castigos son ANTIpedagógicos (NO son programas no son equivalentes a las comillas de pedagógicos los castigos) MicroMundos [4] ("). Pág.63 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 64. NUNCA me ganó la lotería (NO me he ganado la g. El valor de una calificación no puede exceder a 10 lotería) h. La capital de Colombia es Bogotá • Ricardo JAMÁS miente (Ricardo NO ha mendido) i. 4 y 8 son números menores que 10 • NINGÚN hombre colombiano usa falda (Los hombres colombianos NO usan falda)* EJEMPLO * Es una afirmación falsa ya que los hombres colombianos de la etnia Supongamos que Mónica quiere ir a comer helado y su padre le guambiana si usan falda. propone: “Como hoy entregan tus calificaciones del segundo período, si haz obtenido en matemáticas más de 8.0, vamos a comer Un último aspecto a tener en cuenta son los helado el próximo sábado, de lo contrario no vamos”. La situación cuantificadores que se utilizan en algunas “comer helado” está sujeta a la condición “obtener más de 8.0 en proposiciones: todos, algunos, ningún, ninguno, sólo, matemáticas para el segundo período”. hay, etc. Incluso, proposiciones que no contienen R/. cuantificadores se pueden transformar en proposiciones ANÁLISIS DEL PROBLEMA cuantificadas: “Cada planeta gira sobre su eje” se puede Formular el problema: Es un problema sencillo de selección doble. escribir como “todos los planetas giran sobre su eje” Resultados esperados: Un aviso que indique si el estudiante puede (Melo, 2001). ir a comer helado el próximo sábado o no. Datos disponibles: La calificación de matemáticas ingresada por el usuario. La regla dice: para ir a comer helado, la nota debe ser ACTIVIDADES mayor que 8.0. 1. Identificar cuál(es) de las siguientes proposiciones Restricciones: Aplicar la regla dada. son validas (calificables), explicar por qué son validas o Procesos necesarios: Solicitar al usuario que ingrese la calificación por qué no lo son: de matemáticas. Evaluar si la calificación es igual o inferior a 8.0; en a. El año 1200 aC. es más reciente que el año 970 de caso de ser verdadero, reportar “NO come helado”; en caso la era Cristiana contrario, reportar “SI come helado”. b. El jugo de lulo tiene muy buen sabor c. La nota máxima en un examen es 10 DISEÑO DEL ALGORITMO d. Esteban es alto e. Ojalá que no llueva mañana f. ¿Podría decirme, por favor, qué hora es? 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). TRADUCCIÓN DEL ALGORITMO EN MICROMUNDOS a. 7.0 es menor o igual que 20.5 para helado b. El ánguloUno es mayor que 90 local "matemáticas c. La calificación de Juan Felipe en Historia es menor pregunta [Ingrese la calificación de Matemáticas] que 5.0 da "matemáticas respuesta d. Cali y Medellín son ciudades colombianas siotro (o :matemáticas < 8.0 :matemáticas = 8.0) e. 4 y 8 son números menores que 10 [ f. La capital de Colombia es Bogotá anuncia [NO come helado] ] 4. Expresar las siguientes proposiciones en un formato [ que pueda entender un computador. anuncia [SI come helado] a. 7.0 es menor o igual que 20.5 ] b. El ánguloUno es mayor que 90 fin c. El jugo de lulo tiene muy buen sabor d. La calificación de Juan Felipe en Historia es menor TRADUCCIÓN DEL ALGORITMO EN SCRATCH que 5.0 e. Esteban es alto f. El valor de una calificación no puede ser mayor que 10 Pág.64 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 65. 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 TRADUCCIÓN DEL ALGORITMO EN MICROMUNDOS en el enunciado del problema. para notasDos cumpleveces [estudiante 22] EJEMPLO [ La profesora Ángela Cristina necesita calcular la nota definitiva para pregunta [Ingrese la nota del primer examen ] cada uno de los 22 alumnos que asisten a su curso de geometría, da "examenUno respuesta con el fin de saber quiénes aprobaron y quiénes reprobaron (para pregunta [Ingrese la nota del segundo examen ] aprobar hay que obtener una nota igual o superior a 6.5). Ella realizó da "examenDos respuesta a todos sus estudiantes, en el primer periodo del año lectivo, dos pregunta [Ingrese la nota del trabajo de investigación ] exámenes y asignó un trabajo de investigación. ¿Cómo puedes da "trabajo respuesta ayudarle? siotro (o :examenUno < 1 :examenUno > 10 :examenDos < 1 R/. :examenDos > 10 :trabajo < 1 :trabajo > 10) ANÁLISIS DEL PROBLEMA [ Formular el problema: Se requiere calcular un promedio de tres anuncia [Datos no validos ] notas para cada uno de los 22 alumnos. ] Resultados esperados: La nota definitiva de cada uno de los 22 [ alumnos y un aviso que indique si aprobó o no. da "sumatoria :examenUno + :examenDos + :trabajo Datos disponibles: El número de alumnos: 22. Las notas de cada da "promedio :sumatoria / 3 alumno las debe digitar la profesora. siotro (:promedio < 6.5) Restricciones: Cada una de las tres notas tienen el mismo [ porcentaje en la nota definitiva. Tres notas por alumno y 22 alumnos. da "aprobar [ -> NO aprobó el primer periodo de Todas las notas deben ser mayores o iguales a 1 y menores o Geometría ] 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 da "aprobar [ -> SI aprobó el primer periodo de tres notas, verificar que estén en el rango permitido (entre 1 y 10), Geometría ] sumarlas, calcular el promedio, verificar si aprobó o no. Mostrar el ] promedio y un aviso que informe si aprobó o no. Pág.65 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 66. muestra (frase [El promedio del estudiante ] :estudiante + 1 DISEÑO DEL ALGORITMO [ es ] :promedio :aprobar) ] ] fin TRADUCCIÓN DEL ALGORITMO EN SCRATCH 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 Nótese que en este ejemplo se evalúa si la proposición da "EsRectangulo "NO ;inicializa la variable TIPO en NO compuesta es verdadera entonces los datos no son validos. Como se utiliza el operador lógico “o”, basta con ;si uno de los ángulos es igual a 90 cambia el valor de TIPO a que una de las proposiciones sea verdadera para que SI toda la proposición compuesta también lo sea. si :ANGULO1 = 90 [da "EsRectangulo "SI] Adicionalmente, en la traducción a Scratch se utilizan si :ANGULO2 = 90 [da "EsRectangulo "SI] estructuras condicionales anidadas (ver la sustentación si :ANGULO3 = 90 [da "EsRectangulo "SI] educativa del uso de estructuras anidadas al final de esta sección). ;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 anuncia [SI es un Triángulo Rectángulo] á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”. anuncia [NO es un Triángulo Rectángulo] ] fin Pág.66 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 67. DISEÑO DEL ALGORITMO TRADUCCIÓN DEL ALGORITMO EN SCRATCH TRADUCCIÓN DEL ALGORITMO EN MICROMUNDOS para triangulo local "ANGULO1 local "ANGULO2 local "ANGULO3 pregunta [Ingrese el 1er Ángulo del Triángulo] da "ANGULO1 respuesta pregunta [Ingrese el 2do Ángulo del Triángulo] En este ejemplo se evalúa una a una las proposiciones da "ANGULO2 respuesta para determinar sí uno de los ángulos es igual a 90. da "ANGULO3 180 - :ANGULO1 - :ANGULO2 Nótese que la variable esRectángulo se inicializa con el siotro (o :ANGULO1 = 90 :ANGULO2 = 90 :ANGULO3 = 90) valor “NO”, en caso de que cualquiera de los ángulos [ sea igual a 90, entonces la variable esRectangulo se anuncia [SI es un Triángulo Rectángulo] cambia a “SI”. Finalmente se evalúa el valor resultante ] de esta variable para mostrar el mensaje “si” o “no” es [ un triángulo rectángulo. anuncia [NO es un Triángulo Rectángulo] ] fin EJEMPLO TRADUCCIÓN DEL ALGORITMO EN SCRATCH 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”. Utilizar operadores lógicos en la solución. Pág.67 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 68. Esta es una solución más simple, corta y elegante que la haber realizado aportes por más de 20 años". hallada en el ejemplo anterior. La utilización del operador lógico “o” permite evaluar en una sola Para resolver este problema se puede plantear la instrucción si alguno de los ángulos vale 90. Un siguiente inclusión de clases: edad(A) < género(B) < problema inesperado a plantear a los estudiantes aportes(C). 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. ACTIVIDAD Tomando como base el ejemplo anterior, realizar las modificaciones necesarias para que adicionalmente, el programa muestre en pantalla “No es un Triángulo” en caso de que cualquiera de los ángulos sea menor o igual a cero. Estructuras condicionales anidadas Hay situaciones que requieren el uso de estructuras 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, hasta agotar todas las condiciones. 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, C- B'=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'). 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 Pág.68 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 69. UNIDAD 4: DEPURACIÓN CUANDO SE PRESENTAN PROBLEMAS Depuración La corrección de fallas es una de las situaciones que mayor frecuencia tienen en el mundo profesional. Con esta actividad se intenta identificar fallas sintácticas o lógicas en programas que no funcionan adecuadamente; una vez aislada la falla, esta se soluciona y se vuelve a probar el programa y a validar los resultados. Según Jonassen (2003), para corregir fallas efectiva y 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, Ilustración 4-1: Cuarta fase del ciclo de programación. dónde y por qué aplicar procedimientos de solución de fallas y actividades de prueba). 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 Fallas de sintaxis traducir el algoritmo en un lenguaje de programación, el Este tipo de fallas solo se presenta en MicroMundos ya procedimiento resultante debe ser probado y los que el entorno de programación de Scratch es gráfico y resultados validados (revisión). A este proceso se le los estudiantes no deben escribir el código. Además, los conoce como depuración y contribuye a mejorar en los bloques con las instrucciones son autoencajables, por estudiantes la capacidad para resolver problemas tanto no es posible ubicar un bloque de manera que se puesto que la depuración basada en la retroalimentación generen fallas de sintaxis. es una habilidad útil para toda la vida (Stager, 2003). Las fallas sintácticas son las más sencillas de identificar La depuración de un procedimiento hace parte ya que el entorno de programación indica dónde se ha fundamental del ciclo de programación y desde el punto producido el error y de que tipo es. Por ejemplo, de vista educativo estimula en los estudiantes la MicroMundos reportará el error “valorDos no tiene valor curiosidad, la perspectiva, la comunicación y promueve en prueba” cuando, en el procedimiento “prueba”, se valores como responsabilidad, fortaleza, laboriosidad, intenta mostrar el contenido de la variable “valorDos” sin paciencia y perseverancia. La programación facilita un haberla asignado antes. diálogo interior en el cual la retroalimentación constante y el éxito gradual empujan a los alumnos a ir más allá de En caso de presentarse una falla de sintaxis, el sus expectativas (Stager, 2003). estudiante debe: • Comprender el mensaje de error que reporta el Otras dos actividades relacionadas con esta etapa, que ambiente de programación (apoyarse en las opciones no se tratarán en esta guía, son la afinación y la de ayuda que ofrece MicroMundos o en el docente). documentación. La primera consiste en realizar retoques • Examinar el código del programa para identificar en para lograr una mejor apariencia del programa (en cuál instrucción se encuentra la falla pantalla o en los resultados impresos) o para ofrecer • Corregir la falla funcionalidades más allá de los resultados esperados, • Probar el programa de nuevo 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 EJEMPLO 4-1 la capacidad del estudiante para informar a otras Retomemos el ejemplo del estudiante que aprueba un examen personas qué hace su programa, cómo lo hace y el cuando obtiene una calificación mayor o igual a seis (ejemplo 3-14). significado de cada elemento utilizado. Esta actividad se Se requiere elaborar un procedimiento que pida al usuario una puede llevar a cabo mediante comentarios introducidos calificación, aplique el criterio de aprobación e imprima “Aprobado” o al código o por medio de documentación formal en un “Reprobado”, según sea el caso. documento que se anexa al procedimiento elaborado. R/. ANÁLISIS DEL PROBLEMA Formular el problema: Es un problema sencillo de selección doble. Pág.69 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 70. Resultados esperados: Un aviso que reporte si el estudiante revisar cuidadosamente. Uno de los procedimientos más “Aprobó” o “Reprobó” el examen. utilizados es el que se conoce como prueba de Datos disponibles: La calificación ingresada por el usuario. Para escritorio. Esta consiste seguir paso a paso cada una de aprobar, la nota debe ser mayor o igual a 6.0. las instrucciones del procedimiento, asignando valores Restricciones: Aplicar el criterio de aprobación. iniciales a variables y constantes y, realizando las Procesos necesarios: Solicitar al usuario que ingrese la calificación. operaciones indicadas en cada instrucción hasta llegar Evaluar si la calificación es igual o superior a 6.0; en caso de ser al final del procedimiento. Luego, comparar los verdadero, reportar “Aprobado”; en caso contrario, reportar resultados que produce la prueba de escritorio con los “Reprobado”. resultados que arroja el procedimiento; ambos conjuntos de resultados deben ser iguales. Esta metodología es DISEÑO DEL ALGORITMO viable cuando los procedimientos son sencillos, con pocas instrucciones. En caso de presentarse una falla de lógica, el estudiante debe: • Examinar el diagrama de flujo para detectar instrucciones que faltan, sobran o que se encuentran en la posición incorrecta • Asegurarse que las instrucciones representan rigurosamente el diagrama de flujo • Utilizar las opciones de MicroMundos y Scratch para ver la ejecución del programa en forma lenta. EJEMPLO 4-2 Continuamos con el mismo ejemplo: 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. Con el fin de ejemplificar una falla de lógica, se debe digitar en el área de procedimientos de MMP el siguiente código que representa el algoritmo del ejemplo 4-1. TRADUCCIÓN DEL ALGORITMO para aprueba2 TRADUCCIÓN DEL ALGORITMO local "calificación para aprueba1 pregunta [Ingrese la Calificación] local "calificación da "calificación respuesta preguntas [Ingrese la Calificación] siotro (o :calificación < 6.0 :calificación = 6.0) da "calificación respuesta [ siotro (o :calificación > 6.0 :calificación = 6.0) anuncia [Aprobado] [ ] anuncia [Aprobado] [ ] anuncia [Reprobado] [ ] anuncia [Reprobado] fin ] fin Obsérvese que el procedimiento “aprueba2” se ejecuta Obsérvese que MicroMundos arroja un mensaje de error correctamente; no aparece ningún error de sintaxis. cuando se ejecuta el procedimiento: “No sé cómo hacer Pero no funciona bien desde el punto de vista lógico. Si preguntas en aprueba1”. Este error se produce porque lo probamos con el valor 5, el procedimiento nos reporta el comando pregunta está mal escrito, en su lugar se que el estudiante aprobó la materia, cuando esto no es escribió preguntas. El problema se soluciona al escribir correcto. Si lo probamos con 7, nos reporta que el correctamente el comando indicado. estudiante reprobó, cuando tampoco es exacto. En cambio, cuando lo probamos con 6 nos dice que el estudiante aprobó y este dato si es correcto. El problema radica en que en el comando siotro se digitó Fallas de lógica erróneamente “<” en lugar de “>”, tal como aparece en el Este tipo de falla se presenta tanto en MicroMundos diagrama de flujo. como en Scratch. Para identificar fallas de tipo lógico en un procedimiento que no se interrumpe en ningún Adicionalmente, en este ejemplo se puede observar la momento y que arroja unos resultados, estos se deben sintaxis en MicroMundos de los operadores lógicos (y, o, Pág.70 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 71. 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.71 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 72. 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 Mueve la tortuga hacia adelante. Los valores Ver at, de, iz. mínimos y máximos para adelante son -9999 y adelante control1 9999, respectivamente. repite 4 [ad 50 de 90] ALTO Alto Detiene el procedimiento que está activo. Alto Ver deténtodo, deténme y reporta. solo 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] mueve la caja de alerta a una nueva posición anuncia 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 Ver ad, de, iz mínimos y máximos para atrás son -9999 y 9999, atrás 45 respectivamente. at control1 repite 4 [at 50 iz 90] AZAR azar número Devuelve un número entero positivo (incluyendo azar control1 el 0) menor que número. El número máximo es azar 2 9999. Repite 26 [ad azar 30 de azar 60] BNOMBRES bnombres Borra de la memoria todas las variables globales. Ver nombres. MicroMundos no borra las variables cuando se bnombres No aplica abre o se crea un nuevo proyecto. Por lo tanto se 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. dejará una marca cuando se mueva, pero no repite 6 [sp ad 10 cp ad 10] cuando sea arrastrada. CUMPLEVECES cumpleveces serie lista-de- Activa la lista de instrucción para cada uno de los instrucción valores especificados en la serie. La primera Ver cumplelista. entrada es una lista con un nombre de variable cumpleveces [i 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-o- Ver nombra, cosa, bnombre, lista. Estas variables mantienen su valor siempre nombres y creavarproyecto. y cuando no se las borre o se cierre da "equipo [t1 t2 t3] MicroMundos. da "texto texto1 Pág.72 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 73. 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. para derecha es 9999. derecha 45 repite 5 [de -90 ad 15 de 90 ad 15] ESCRIBE escribe (es) palabra-o-lista Escribe la palabra o la lista en la caja de texto en Ver inserta. No aplica uso. El texto va seguido de un retorno de línea y escribe "holaescribe [Bienvenidos de una secuencia de avance de línea. de nuevo] escribe texto1 ESPERA espera número Origina una pausa en la ejecución de un espera 2 programa o de una instrucción. El tiempo se mide espera control1 en décimas de segundo. ESPERAHASTA esperahasta cierto-o-falso-lista-de- Antes de activar otra instrucción, espera hasta instrucciones que cierto-o-falso-lista-de-instrucciones devuelva esperahasta [tocando? "t1 "t2] cierto. La entrada debe ser una lista de t3, mt instrucciones que devuelva cierto o falso cuando se active. FRASE frase (fr) palabra-o-lista1 palabra-o- Devuelve una lista formada por sus entradas lista2 (palabras o listas). Frase puede tomar más de (frase palabra-o-lista1 palabra-o- dos entradas cuando frase y sus entradas se lista2 palabra-o-lista3...) encierran entre paréntesis. Frase no mostrará los Ver lista. corchetes de las listas individuales dadas como frase "uno [dos] entrada. (frase "una "gran [ciudad]) frase texto1 texto2 RUMBO frumbo número Fija el rumbo de la tortuga (en grados) en la Ver rumbo. dirección especificada. Los grados corresponden frumbo 0 a los de la brújula: 0 apunta al norte, 90 al este, frumbo control1 180 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 Gira la tortuga a la izquierda. El máximo valor Ver ad, at, de. para 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. tortuga. limpia LOCAL (VARIABLES) local palabra-o-lista Crea una variable local en el procedimiento Ver asigna, da y nombra. No aplica dentro del cual se utilizó el mando local. Local local "lista sólo puede ser usado dentro de un procedimiento. da "lista páginas MUESTRA muestra palabra-o-lista Escribe una palabra o una lista en el Centro de muestra "hola Mando. Los corchetes exteriores de la lista no muestra [hola todos] aparecen. muestra :texto1 Pág.73 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 74. 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 Devuelve los nombres de todas las variables con Ver bnombres sus valores. muestra nombres O o cierto-o-falso1 cierto-o-falso2 Devuelve cierto si alguna de sus entradas (o cierto-o-falso1 cierto-o-falso2 devuelve cierto. Si se usan más de dos entradas, cierto-o-falso3...) o y sus entradas deben estar entre paréntesis. Ver “y” y “no”. 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, Sincronización en los Temas de Detener Todo, o Ctrl+Inter para detener el Ayuda de MicroMundos. proceso. porsiempre [ad 2] porsiempre "cuar porsiempre texto1 PREGUNTA pregunta palabra-o-lista Abre una caja de diálogo que muestra la pregunta Ver respuesta. y una zona para escribir la respuesta. Respuesta pregunta "¿Bien? devuelve lo que se ha escrito en la caja de pregunta [¿Cómo estás?] diálogo. Si se escribe una pregunta muy larga, pregunta texto1 solo 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. REPITE repite número [lista-de- Activa la lista de instrucciones el número de instrucciones] veces especificado. Ver cumpleveces y cumplelista para opciones más avanzadas. repite 96 [at 40 ad 40 de 4] RESPUESTA respuesta Devuelve el contenido de la última respuesta que da “valor respuesta se escribió en la caja de diálogos de pregunta. si respuesta = "sí [ffig "contento] Usando pregunta y respuesta, se pueden utilizar si respuesta = "no [ffig "triste] las 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 Ver siotro. proposición de la primera entrada devuelve cierto. si 5 > 2 [anuncia "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-de-instrucciones2] lista de instrucciones si la proposición devuelve Ver si. falso. siotro colordebajo = 15 [ad 50] [ at 50] SIN PLUMA Sp Significa sin pluma. Saca la pluma a la tortuga en Ver cp. uso. La tortuga no dejará ningún trazo cuando se repite 6 [sp ad 10 cp ad 10] mueva. Pág.74 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 75. DESCRIPCIÓN MICROMUNDOS SCRATCH Y y cierto-o-falso1 cierto-o-falso2 Devuelve cierto si todas sus entradas devuelven (y 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”. entradas. y1=13<4 (y 1 = 1 3 < 4 2 > 1) Pág.75 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 76. 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. Pág.76 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 77. 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) • 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; datos resultados esperados; datos disponibles; restricciones; disponibles; restricciones; • Ciclo de programación disponibles; restricciones; procesos necesarios) procesos necesarios) procesos 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 resultados • Verificación de resultados • Prueba de escritorio • 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 Pág.77 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 78. 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. 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.78 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 79. 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 Pág.79 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 80. 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 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.80 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 81. 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 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] Pág.81 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 82. 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 o Mostrar <LISTA> en el escenario [Bloque Variables] Pág.82 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 83. 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.83 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 84. 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] ≈ Utilizar el lenguaje pseudocódigo para representar algoritmos. Pág.84 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 85. 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 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 Pág.85 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 86. 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] 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] Pág.86 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 87. 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] ≈ 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] Pág.87 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 88. 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 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”. Pág.88 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 89. 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] ≈ 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] Pág.89 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 90. 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] ≈ 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.90 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 91. ANEXO 6 A N Á LIS IS D EL P R O B LEM A F o r m u la r e l p r o b le m a : R e s u lt a d o s e s p e r a d o s : D a t o s D is p o n ib le s : R e s t r ic cio n e s : P r o c e s o s N e c e s a r io s : Pág.91 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 92. ANEXO 7 Pág.92 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 93. ANEXO 8 Interfaz de Scratch, versión 1.4 (http://scratch.mit.edu) Pág.93 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 94. 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. 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. Pág.94 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 95. 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]. ---------- (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. Pág.95 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php
  • 96. 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.96 - 9-nov-09 - Segunda Edición - Descargue gratuitamente esta Guía: http://www.eduteka.org/GuiaAlgoritmos.php