DESARROLLO DEL
 PENSAMIENTO
COMPUTACIONAL
  EN EL AULA

   Juan Carlos López – Eduteka
Gonzalo Ulloa – Universidad Icesi
Introducción
 En muchas ocasiones debemos
  resolver problemas, así no los veamos
  como problemas o los resolvamos
  intuitivamente.
 Ejemplo:
    ◦ Quienes de ustedes han venido a Cali
      antes?
    ◦ A la Universidad Icesi antes?
    ◦ A este auditorio?
Etapas para la solución




Tomado de http://www.eduteka.org/pdfdir/AlgoritmosProgramacion.pdf
 Citando a Polya
Introducción
 La naturaleza es sabia resolviendo
  problemas, problemas complejos.
 La evolución desarrolla mecanismos
  para resolver los problemas, las
  especies que no los logran se
  extinguen.
 La vida misma es una competencia
  feroz..! Solo las mejores estrategias
  triunfan..!
Problemas biológicos
    La avispa que parasita las avispas de
    los ficus.
Problemas biológicos
Hormigas y acacias
   La simbiosis que existe entre las
    acacias y las hormigas, la acacia
    alimenta la hormiga y la hormiga
    protege la acacia de los insectos
    depredadores.
Problemas del mundo
moderno
 Piensen en un escenario catastrófico de ciencia
  ficción, una ciudad de dos millones de habitantes
  donde comienza una epidemia.
 Esta dura ya dos años y ha muerto el 2,5% de la
  población. No se sabe cómo se propaga ni por
  qué afecta a todos por igual, ricos y pobres. Es
  la historia de una epidemia anunciada que ha
  infectado otros países en los últimos cinco años.
  Es una pandemia a escala mundial. Cómo atacar
  el problema?
 No se sabe nada de la enfermedad que causa la
  pandemia. La enfermedad se dispersa mucho
  más rápidamente que la investigación sobre las
  causas. Se piensa que es una enfermedad que
  se propaga por el aire.
Problemas (2)
    A alguien se le ocurre llevar un censo
    de los muertos y marcar sobre el mapa
    los lugares donde ocurrían y observa
    que los muertos se concentran en
    ciertos sectores
Problemas (3)
 Descubre que cuando aparecen casos
  en un sector se propagan en todas
  direcciones (no en la dirección del
  viento). Se propaga alrededor de las
  fuentes de agua que se contaminan.
 Esta fue la epidemia de cólera que
  azotó a Londres en 1854.
Problemas (4)
   John Snow – MD Anestesiólogo fundó
    las bases de la Epidemiología
Problemas (5)
   Identificada la causa un ingeniero
    británico Joseph Bazalguette diseña y
    construye todo un sistema de
    alcantarillado para evitar que las
    aguas se contaminen (1858)
    resolviendo de esta forma la epidemia
    y presentando un modelo de sistema
    sanitario para la ciudades modernas.
Problemas
   Solo en 1883, 20 años después de la
    epidemia, Robert Koch logró
    identificar la bacteria que ocasionaba
    el cólera.
Otro problema del mundo
moderno
 Piensen en un mundo donde los
  computadores están aislados, donde
  para comunicarme con el extranjero
  se debía enviar una carta que
  tomaban semanas.
 La información solo estaba en las
  bibliotecas y había que ir a ellas
  físicamente para revisar los
  documentos.
Otro problema del mundo
moderno
 Alguien soñó en tener una red que
  interconectara a todos. Que la red
  fuera libre y gratuita.
 Internet
Otro problema del mundo
moderno
 Muchos de ustedes tienen ya
  teléfonos celulares inteligentes que
  pueden ser usados no solo como
  teléfonos sino que son capaces de
  recibir correo electrónico, navegar por
  Internet o acceder a las redes
  sociales.
 Habrían anticipado ustedes que esto
  sucedería?
 Piensen en el mundo del futuro..!
El mundo de hoy
Vivimos en un mundo complejo y
 globalizado, donde nuestros jóvenes
 deben adquirir nuevos conocimientos
 y habilidades a lo largo de la vida.
 ¿Cómo podemos aportar en la
 educación en la formación de
 nuestros niños y jóvenes a resolver
 problemas y a innovar?
Pensamiento computacional
   “El pensamiento computacional son
    los procesos y la ideas relacionados
    con la formulación y la solución de
    un problema de manera que esta
    pueda ser realizada por un agente de
    procesamiento de información”


CMU Center for Computational Thinking – Cuny, Snyder, Wing –
http://www.cs.cmu.edu/~CompThink/
Pensamiento computacional
  (2) el mundo de hoy el pensamiento
   En
    computacional debe ser una parte como
    las personas piensan y entienden el
    mundo.
   Es una forma de resolver
    problemas, diseñar sistemas y
    entender el comportamiento humano
    que deriva sus principios en la ciencia
    de la computación.
   Significa crear y hacer uso de diferentes
    niveles de abstracción para entender
CMU Center for Computational Thinking – efectivamente.
    y resolver problemas
http://www.cs.cmu.edu/~CompThink/
Pensamiento computacional




  Pensamien
      to
  Algorítmico
Pensamiento Algorítmico
   Un Algoritmo es una forma ordenada y
    sistemática para descomponer y
    resolver un problema.

    Formular problemas para
    facilitar el uso de
    computadores y otras
    herramientas para
    solucionarlos
Pensamiento computacional


                Pensamien
                    to
                 Científico




                Pensamien
                 to Lógico

  Pensamien
      to
  Algorítmico
Pensamiento Lógico y
Científico
   Buscar las relaciones entre las causas
    y los efectos. Demostrar las hipótesis.
    Analizar los datos, ser sistemático.
Pensamiento computacional


                Pensamien
                    to
                 Científico

                              Soluciones
                              eficientes


                Pensamien
                 to Lógico

  Pensamien
      to
  Algorítmico
Soluciones eficientes
   Una vez se tiene una solución, es tratar
    de buscar una solución que utilice
    menos recursos, sea más sencilla o
    pueda conducir a la solución más
    rápidamente..
Pensamiento computacional


                Pensamien                  Innovación
                    to                         y
                 Científico                Creatividad

                              Soluciones
                              eficientes


                Pensamien
                 to Lógico

  Pensamien
      to
  Algorítmico
Pensamiento creativo
   (Innovación)




Espiral de la creatividad – Michael Resnick- MIT Media Lab - Lifelong Kinderga
Otras características y
habilidades
   Generalizar y transferir el proceso de
    solución de problemas a una gran
    diversidad de estos
   Confianza en el manejo de la complejidad
   Persistencia al trabajar con problemas
    difíciles
   Tolerancia a la ambigüedad.
   Habilidad para lidiar con problemas no
    estructurados (open-ended)
   Habilidad para comunicarse y trabajar con
Por qué usar Scratch para
fortalecer el Pensamiento
computacional?
 Facilidad de uso
 Exige un estrategia precisa y un
  método ordenado (lógica y
  algoritmica)
 Todo lenguaje de programación exige
  una solución ordenada y precisa pues
  el computador no permite
  ambigüedades.
 Puede ser optimizada.
 Permite resolver muchos problemas
Video de Pensamiento
computacional
¿Qué es
un
cuadrado?
 Pensamiento
simbólico
 Operación con
modelos
 Memoria
 Comprensión
 Lenguaje
Scratch




cuadrado
POLÍGONOS




Determinar qué hacer
Determinar qué hacer
¿Qué es un cuadrado?




Probar las modificaciones
Probar el programa resultante
¿qué pasó? ¿Por qué no dibuja?

Modificar el programa para lograr que dibuje el
Dibujar un cuadrado en el reverso de esta hoja


Elaborar un programa para dibujar un cuadrado en
                                        
                                                                           Memoria, pensamiento simbólico, signos


                                    




                
                                                                           Formular problemas (identificar una meta)
                                    




                
                                                                                   Descomponer el problema
                                    




                
                                                                                   Recopilar y organizar datos
                                                                          Estructuras de datos (tablas, árboles, redes)
                                    




                
                                                                                         Analizar datos


           
                                



                                                                                        Formular un plan



    
                        


                                                                        Ejecutar un primer intento para alcanzar la meta
                                                                        Representar datos (abstracciones, simulaciones)
    
                        




                                                                                 Algoritmos y procedimientos
                                                                              Automatización (pasos ordenados)
                    




                                                                             Probar, evaluar y compartir resultados
                                            PENSAMIENTO COMPUTACIONAL





                    




                                                                          Depurar, editar y revisar (retroalimentación)
                                                                                        Optimizar códigos
                                                                                     Generalizar y transferir

    
                    
                        




                                                                                     Estructura secuencial
                                                                                   Estructura iterativa (ciclos)

    
                    
                        




                                                                                       Manejo de eventos
                                                                                    Estructuras condicionales
                                                                                Proposiciones (lógica booleana)
                                                                                           Operadores
                                                                                        Variables y Listas
                                                                        Coordinación y sincronización (enviar mensajes)
                                                                                       Paralelismo (hilos)
                                            CONCEPTOS DE PROGRAMACIÓN




                                                                               Interacción dinámica (tiempo real)
¿Qué es
un
pentágono
?
“




                                                                                                                          POLÍGONOS


                                                                              Determinar qué hacer
                                                                                                     ¿Qué es pentágono?




Probar las modificaciones
                            Modificar el programa para dibujar un pentágono
                                                                                                                                                         Memoria, pensamiento simbólico, signos




                                                                                                     
                                                                                                                                                         Formular problemas (identificar una meta)




                                                                                                     
                                                                                                                                                                 Descomponer el problema




                                                                                                     
                                                                                                                                                                 Recopilar y organizar datos
                                                                                                                                                        Estructuras de datos (tablas, árboles, redes)



                                                                                                     
                                                                                                                                                                       Analizar datos



                                                                              
                                                                                                                                                                      Formular un plan



                            
                                                                                                                                                      Ejecutar un primer intento para alcanzar la meta
                                                                                                                                                      Representar datos (abstracciones, simulaciones)
                            
                                                                                                                                                                Algoritmos y procedimientos
                            
                                                                                                                                                             Automatización (pasos ordenados)

                                                                                                                                                           Probar, evaluar y compartir resultados
                                                                                                                          PENSAMIENTO COMPUTACIONAL






                                                                                                                                                        Depurar, editar y revisar (retroalimentación)
                            




                                                                                                                                                                      Optimizar códigos
                                                                                                                                                                   Generalizar y transferir

                            




                                                                                                                                                                   Estructura secuencial

                            




                                                                                                                                                                 Estructura iterativa (ciclos)

                            




                                                                                                                                                                     Manejo de eventos
                                                                                                                                                                  Estructuras condicionales
                                                                                                                                                              Proposiciones (lógica booleana)
                                                                                                                                                                         Operadores
                                                                                                                                                                      Variables y Listas
                                                                                                                                                      Coordinación y sincronización (enviar mensajes)
                                                                                                                                                                     Paralelismo (hilos)
                                                                                                                          CONCEPTOS DE PROGRAMACIÓN




                                                                                                                                                             Interacción dinámica (tiempo real)
¿Cómo dibujar
cualquier polígono
regular?
“




POLÍGONOS




muchos lados?




Determinar qué hacer
Determinar qué hacer
Determinar qué hacer




Probar las modificaciones
Probar las modificaciones
Probar las modificaciones




¿Podemos mejorar el código?
¿Cómo dibujar cualquier polígono regular?




Modificar el programa para hacer más claro el código
Modificar el programa para dibujar polígonos regulares
¿Qué pasa en Scratch cuando el polígono regular tiene
Modificar el programa para dibujar cualquier polígono regular
                                                                                        Memoria, pensamiento simbólico, signos




             
                              
                                                    

                                                                                        Formular problemas (identificar una meta)




             
                              
                                                    



                                                                                                Descomponer el problema




             
                              
                                                    




                                                                                                Recopilar y organizar datos
                                                                                       Estructuras de datos (tablas, árboles, redes)


             
                              
                                                    




                                                                                                      Analizar datos


        
                          
                                                




                                                                                                     Formular un plan

    
                      
                                            




                                                                                     Ejecutar un primer intento para alcanzar la meta
    
                      
                                            




                                                                                    Representar datos (abstracciones, simulaciones)
                      
                                            




                                                                                               Algoritmos y procedimientos
    
                      
                                            




                                                                                            Automatización (pasos ordenados)

                 
                                       




                                                                                          Probar, evaluar y compartir resultados
                                                         PENSAMIENTO COMPUTACIONAL





                 
                                       




                                                                                       Depurar, editar y revisar (retroalimentación)
    
                      
                                            




                                                                                                     Optimizar códigos
    
                      
                                            




                                                                                                  Generalizar y transferir


                 
                 
                                       
                                       




                                                                                                  Estructura secuencial


                 
                 
                                       
                                       




                                                                                                Estructura iterativa (ciclos)


                 
                 
                                       
                                       




                                                                                                    Manejo de eventos


                 
                 




                                                                                                 Estructuras condicionales


                 
                 




                                                                                             Proposiciones (lógica booleana)


                 
                 
                                       
                                       




                                                                                                        Operadores


                 
                 




                                                                                                     Variables y Listas






                                                                                     Coordinación y sincronización (enviar mensajes)






                                                                                                    Paralelismo (hilos)
                                                         CONCEPTOS DE PROGRAMACIÓN






                 
                 
                                       
                                       




                                                                                            Interacción dinámica (tiempo real)
MUCHAS GRACIAS


     Juan Carlos López –
     editor@eduteka.org
     Gonzalo Ulloa –
     gulloa@icesi.edu.co

Pensamiento computacional sdc2012

  • 1.
    DESARROLLO DEL PENSAMIENTO COMPUTACIONAL EN EL AULA Juan Carlos López – Eduteka Gonzalo Ulloa – Universidad Icesi
  • 3.
    Introducción  En muchasocasiones debemos resolver problemas, así no los veamos como problemas o los resolvamos intuitivamente.  Ejemplo: ◦ Quienes de ustedes han venido a Cali antes? ◦ A la Universidad Icesi antes? ◦ A este auditorio?
  • 4.
    Etapas para lasolución Tomado de http://www.eduteka.org/pdfdir/AlgoritmosProgramacion.pdf Citando a Polya
  • 5.
    Introducción  La naturalezaes sabia resolviendo problemas, problemas complejos.  La evolución desarrolla mecanismos para resolver los problemas, las especies que no los logran se extinguen.  La vida misma es una competencia feroz..! Solo las mejores estrategias triunfan..!
  • 6.
    Problemas biológicos  La avispa que parasita las avispas de los ficus.
  • 7.
  • 8.
    Hormigas y acacias  La simbiosis que existe entre las acacias y las hormigas, la acacia alimenta la hormiga y la hormiga protege la acacia de los insectos depredadores.
  • 9.
    Problemas del mundo moderno Piensen en un escenario catastrófico de ciencia ficción, una ciudad de dos millones de habitantes donde comienza una epidemia.  Esta dura ya dos años y ha muerto el 2,5% de la población. No se sabe cómo se propaga ni por qué afecta a todos por igual, ricos y pobres. Es la historia de una epidemia anunciada que ha infectado otros países en los últimos cinco años. Es una pandemia a escala mundial. Cómo atacar el problema?  No se sabe nada de la enfermedad que causa la pandemia. La enfermedad se dispersa mucho más rápidamente que la investigación sobre las causas. Se piensa que es una enfermedad que se propaga por el aire.
  • 10.
    Problemas (2)  A alguien se le ocurre llevar un censo de los muertos y marcar sobre el mapa los lugares donde ocurrían y observa que los muertos se concentran en ciertos sectores
  • 11.
    Problemas (3)  Descubreque cuando aparecen casos en un sector se propagan en todas direcciones (no en la dirección del viento). Se propaga alrededor de las fuentes de agua que se contaminan.  Esta fue la epidemia de cólera que azotó a Londres en 1854.
  • 12.
    Problemas (4)  John Snow – MD Anestesiólogo fundó las bases de la Epidemiología
  • 13.
    Problemas (5)  Identificada la causa un ingeniero británico Joseph Bazalguette diseña y construye todo un sistema de alcantarillado para evitar que las aguas se contaminen (1858) resolviendo de esta forma la epidemia y presentando un modelo de sistema sanitario para la ciudades modernas.
  • 14.
    Problemas  Solo en 1883, 20 años después de la epidemia, Robert Koch logró identificar la bacteria que ocasionaba el cólera.
  • 15.
    Otro problema delmundo moderno  Piensen en un mundo donde los computadores están aislados, donde para comunicarme con el extranjero se debía enviar una carta que tomaban semanas.  La información solo estaba en las bibliotecas y había que ir a ellas físicamente para revisar los documentos.
  • 16.
    Otro problema delmundo moderno  Alguien soñó en tener una red que interconectara a todos. Que la red fuera libre y gratuita.  Internet
  • 17.
    Otro problema delmundo moderno  Muchos de ustedes tienen ya teléfonos celulares inteligentes que pueden ser usados no solo como teléfonos sino que son capaces de recibir correo electrónico, navegar por Internet o acceder a las redes sociales.  Habrían anticipado ustedes que esto sucedería?  Piensen en el mundo del futuro..!
  • 18.
    El mundo dehoy Vivimos en un mundo complejo y globalizado, donde nuestros jóvenes deben adquirir nuevos conocimientos y habilidades a lo largo de la vida.  ¿Cómo podemos aportar en la educación en la formación de nuestros niños y jóvenes a resolver problemas y a innovar?
  • 19.
    Pensamiento computacional  “El pensamiento computacional son los procesos y la ideas relacionados con la formulación y la solución de un problema de manera que esta pueda ser realizada por un agente de procesamiento de información” CMU Center for Computational Thinking – Cuny, Snyder, Wing – http://www.cs.cmu.edu/~CompThink/
  • 20.
    Pensamiento computacional (2) el mundo de hoy el pensamiento  En computacional debe ser una parte como las personas piensan y entienden el mundo.  Es una forma de resolver problemas, diseñar sistemas y entender el comportamiento humano que deriva sus principios en la ciencia de la computación.  Significa crear y hacer uso de diferentes niveles de abstracción para entender CMU Center for Computational Thinking – efectivamente. y resolver problemas http://www.cs.cmu.edu/~CompThink/
  • 21.
    Pensamiento computacional Pensamien to Algorítmico
  • 22.
    Pensamiento Algorítmico  Un Algoritmo es una forma ordenada y sistemática para descomponer y resolver un problema. Formular problemas para facilitar el uso de computadores y otras herramientas para solucionarlos
  • 23.
    Pensamiento computacional Pensamien to Científico Pensamien to Lógico Pensamien to Algorítmico
  • 24.
    Pensamiento Lógico y Científico  Buscar las relaciones entre las causas y los efectos. Demostrar las hipótesis. Analizar los datos, ser sistemático.
  • 25.
    Pensamiento computacional Pensamien to Científico Soluciones eficientes Pensamien to Lógico Pensamien to Algorítmico
  • 26.
    Soluciones eficientes  Una vez se tiene una solución, es tratar de buscar una solución que utilice menos recursos, sea más sencilla o pueda conducir a la solución más rápidamente..
  • 27.
    Pensamiento computacional Pensamien Innovación to y Científico Creatividad Soluciones eficientes Pensamien to Lógico Pensamien to Algorítmico
  • 28.
    Pensamiento creativo (Innovación) Espiral de la creatividad – Michael Resnick- MIT Media Lab - Lifelong Kinderga
  • 29.
    Otras características y habilidades  Generalizar y transferir el proceso de solución de problemas a una gran diversidad de estos  Confianza en el manejo de la complejidad  Persistencia al trabajar con problemas difíciles  Tolerancia a la ambigüedad.  Habilidad para lidiar con problemas no estructurados (open-ended)  Habilidad para comunicarse y trabajar con
  • 30.
    Por qué usarScratch para fortalecer el Pensamiento computacional?  Facilidad de uso  Exige un estrategia precisa y un método ordenado (lógica y algoritmica)  Todo lenguaje de programación exige una solución ordenada y precisa pues el computador no permite ambigüedades.  Puede ser optimizada.  Permite resolver muchos problemas
  • 31.
  • 33.
  • 34.
     Pensamiento simbólico  Operacióncon modelos  Memoria  Comprensión  Lenguaje
  • 35.
    Scratch cuadrado POLÍGONOS Determinar qué hacer Determinarqué hacer ¿Qué es un cuadrado? Probar las modificaciones Probar el programa resultante ¿qué pasó? ¿Por qué no dibuja? Modificar el programa para lograr que dibuje el Dibujar un cuadrado en el reverso de esta hoja Elaborar un programa para dibujar un cuadrado en  Memoria, pensamiento simbólico, signos   Formular problemas (identificar una meta)   Descomponer el problema   Recopilar y organizar datos Estructuras de datos (tablas, árboles, redes)   Analizar datos   Formular un plan   Ejecutar un primer intento para alcanzar la meta Representar datos (abstracciones, simulaciones)    Algoritmos y procedimientos  Automatización (pasos ordenados)  Probar, evaluar y compartir resultados PENSAMIENTO COMPUTACIONAL   Depurar, editar y revisar (retroalimentación) Optimizar códigos Generalizar y transferir     Estructura secuencial Estructura iterativa (ciclos)     Manejo de eventos Estructuras condicionales Proposiciones (lógica booleana) Operadores Variables y Listas Coordinación y sincronización (enviar mensajes) Paralelismo (hilos) CONCEPTOS DE PROGRAMACIÓN Interacción dinámica (tiempo real)
  • 36.
  • 37.
    POLÍGONOS Determinar qué hacer ¿Qué es pentágono? Probar las modificaciones Modificar el programa para dibujar un pentágono Memoria, pensamiento simbólico, signos  Formular problemas (identificar una meta)  Descomponer el problema  Recopilar y organizar datos Estructuras de datos (tablas, árboles, redes)  Analizar datos  Formular un plan  Ejecutar un primer intento para alcanzar la meta Representar datos (abstracciones, simulaciones)  Algoritmos y procedimientos  Automatización (pasos ordenados)  Probar, evaluar y compartir resultados PENSAMIENTO COMPUTACIONAL  Depurar, editar y revisar (retroalimentación)  Optimizar códigos Generalizar y transferir   Estructura secuencial   Estructura iterativa (ciclos)   Manejo de eventos Estructuras condicionales Proposiciones (lógica booleana) Operadores Variables y Listas Coordinación y sincronización (enviar mensajes) Paralelismo (hilos) CONCEPTOS DE PROGRAMACIÓN Interacción dinámica (tiempo real)
  • 38.
  • 39.
    “ POLÍGONOS muchos lados? Determinar quéhacer Determinar qué hacer Determinar qué hacer Probar las modificaciones Probar las modificaciones Probar las modificaciones ¿Podemos mejorar el código? ¿Cómo dibujar cualquier polígono regular? Modificar el programa para hacer más claro el código Modificar el programa para dibujar polígonos regulares ¿Qué pasa en Scratch cuando el polígono regular tiene Modificar el programa para dibujar cualquier polígono regular Memoria, pensamiento simbólico, signos    Formular problemas (identificar una meta)    Descomponer el problema    Recopilar y organizar datos Estructuras de datos (tablas, árboles, redes)    Analizar datos    Formular un plan    Ejecutar un primer intento para alcanzar la meta     Representar datos (abstracciones, simulaciones)   Algoritmos y procedimientos    Automatización (pasos ordenados)    Probar, evaluar y compartir resultados PENSAMIENTO COMPUTACIONAL    Depurar, editar y revisar (retroalimentación)    Optimizar códigos    Generalizar y transferir       Estructura secuencial       Estructura iterativa (ciclos)       Manejo de eventos     Estructuras condicionales     Proposiciones (lógica booleana)       Operadores     Variables y Listas   Coordinación y sincronización (enviar mensajes)   Paralelismo (hilos) CONCEPTOS DE PROGRAMACIÓN       Interacción dinámica (tiempo real)
  • 40.
    MUCHAS GRACIAS Juan Carlos López – editor@eduteka.org Gonzalo Ulloa – gulloa@icesi.edu.co