tecnologías alternativas para la enseñanza de la programación en el aula, ¡hay vida más allá...
TRANSCRIPT
Tecnologías alternativas para la enseñanza de la programación en el aula, ¡hay vida más allá de Scratch!Jorge Castellanos VegaJITICE 2016
Jorge Castellanos Vega
PRESENTACIÓN• Jorge Castellanos Vega• Twitter: @jorgejjcv• Web: El incidente TIC - http://elincidentetic.blogspot.com.es/
ENSEÑAR A PROGRAMAR ¿PARA QUÉ?
Porqué enseñar a programar
Sketchnote por @sylviaduckworth y @mraspinall (brianaspinall.com)
¿Y esto de dónde surge?• Pensamiento computacional - Primera referencia (Wing, 2006)• “Computational thinking is a way humans solve problems; it is not
trying to get humans to think like computers. Computers are dull and boring; humans are clever and imaginative. We humans make computers exciting”
• “Computational thinking is a fundamental skill for everyone, not just for computer scientists. To reading, writing, and arithmetic, we should add computational thinking to every child’s analytical ability”
Pero además….• EU (Programa Agenda Digital)• En el año 2020 habrá en la Unión Europea 900.000 empleos TIC
para los que no habrá personal cualificado• Carta de Neelie Kroes y Androulla Vassiliou a los Ministros de
Educación de los países de la Unión Europea • “Promoting coding skills in Europe is part of the solution to youth
unemployment” (julio, 2014)
• USA (Bureau of Labor Statistics) • En el año 2020 será necesario cubrir 1.4 millones de empleos en
este sector• Al ritmo actual de titulados actual no podrán cubrir
aproximadamente un millón de esos empleos
¿PUEDO ENSEÑAR ESTO EN CLASE?
Legislación• BOCM 118, 20 de mayo 2015, Contenidos de la asignatura de
Tecnología, Programación y Robótica• BOCM 120, 22 de mayo de 2015, Contenidos de la asignatura
de Tecnologías de la Información y Comunicación • BOCM 175, 25 de julio de 2014, Tecnología y recursos
digitales para la mejora del aprendizaje
¿transversal?
Contenidos :Educación Primaria• Búsqueda de información en la red.• Recogida y almacenamiento de información.• Análisis y utilización de la información mediante las TIC.• Presentación de trabajos mediante TIC.• Correo electrónico.• Planificación y gestión de proyectos mediante las TIC.• Fundamentos de programación, creación de juegos sencillos,
animaciones e historias interactivas.• Utilización de equipos informáticos.
Contenidos: Educación Secundaria• Tecnología, programación y robótica
Aprendizaje de la programación
Robótica y prototipado
Impresión 3DDesarrollo de aplicaciones para
móviles
Programación Web
Contenidos: BachilleratoPrimero de bachillerato Segundo de bachillerato
La sociedad de la información y el ordenador
Programación
Arquitectura de ordenadores Publicación y difusión de contenidos
Software para sistemas informáticos Seguridad
Redes de ordenadores
Programación
ME SUENA QUE ESTO YA SE HA INTENTADO….
Lenguaje Logo• “Logo is the name for a philosophy of education and a continually
evolving family of programming languajes that aid in its realization”
Harold Abelson Co-Director del Consejo del MIT en Tecnología
Educativa• Primera versión año 1967
Intérprete de Logo
Pero no funcionó• “Early programming languages were too difficult to use, and
many children simply couldn't master the syntax of programming”
• “Programming was often introduced with activities (such as generating lists of prime numbers and making simple line drawings) that were not connected to young people's interests or experiences”• Resnick et al, 2009
Nuevos alumnos nuevas herramientas• many young people are very comfortable sending text
messages, playing online games, and browsing the Web. But does that really make them fluent with new technologies? Though they interact with digital media all the time, few are able to create their own games, animations, or simulations. It's as if they can "read" but not "write.“
Resnick et al, 2009
ETAPAS TEMPRANAS
Etapas tempranas: Pensamiento computacional sin ordenadores
• Juegos de aula• Role play. Robots and Programmers• Juego en pares
• Un alumno es el robot • Un alumno es el programador
• Materiales:• Rueda para indicar dirección
Fuente: 5 Years olds coding without technology – Brian Aspinall Blog
Etapas tempranas: Pensamiento computacional sin ordenadores
• Juegos de aulaJuego de instruccionesToda instrucción empieza por:
Por favor, Robot
Realiza x pasosRealiza x pasos hacia atrás
Gira un círculo enteroGira y hacia la derechaGira y hacia la izquierda
Valor de x:Se puede decir directamente o mediante expresiones, por ejemplo:• El doble de dos• Dos más tres
Valor de y:• Un cuarto ¼• Medio cuarto ½• Giro completoPara indicar sentido de dirección y cantidad el programador puede ayudarse con la rueda
Etapas tempranas: Pensamiento computacional sin ordenadores• Juegos de aula• Programador: Realiza 10 pasos• Robot: No has dicho “Por Favor Robot”• Programador: Por favor Robot, realiza 5 pasos• El robot avanza 5 pasos contando en alto• Programador: Por favor Robot, gira un cuarto• Robot: ¿En qué dirección?• Programador: (Usando la rueda) hacia la derecha• El robot gira un cuarto hacia la derecha• Programador: Por favor Robot, realiza 2 mas 3 pasos hacia atrás• Robot: ¿Cuánto es eso?• El programador y el robot empiezan a calcularlo usando sus dedos para
contar
Etapas tempranas: Pensamiento computacional sin ordenadores
• Robotizando el Gonzalo • CEIP Gonzalo Fernández de Córdoba (Madrid)
Imagen de Nuestras Cosas Diminutas
Etapas tempranas: Robots de aprendizaje• Bee Bot• Aplicación para iPad
Etapas tempranas: Robots de aprendizaje• Blue Bot• Mismas funciones que Bee Bot pero con conexión BlueTooth• Controlable desde una tablet• Aplicación para iPad y para Android
Etapas tempranas: Robots de aprendizaje• Robots controlados desde Android mediante Robopad o
Robopad++• http
://diwo.bq.com/robotica-educativa-en-educacion-infantil-es-posible/
Etapas tempranas: Robots de aprendizaje• Robopad++ Android
Etapas tempranas: Robots de aprendizaje• Escornabot• Website: http://escornabot.com
Etapas tempranas: Programando bloques• Osmo Coding• Website: https://www.playosmo.com• Sistema de aprendizaje para extender la interacción con el iPad
permitiendo manipular objetos externos que son reconocidos por el dispositivo
• Formado por una base y un espejo que se sitúa sobre la cámara del iPad y le permite ver lo que tiene enfrente de él
• Veamos primero cómo funciona….
Etapas tempranas: Programando bloques• Osmo Coding
Etapas tempranas: Programando bloques• Osmo Coding
DISPOSITIVOS MÓVILES
Etapas tempranas: Dispositivos móviles• Scratch JR• Diseñado por el MIT para edades de 5 a 7 años• Disponible para iPad/Android/ Chrome OS• Orientada a programación libre
• ¿Qué puedo hacer con scratchjr?
Etapas tempranas: Dispositivos móviles• Daisy the dinosaur• A partir de cuatro años• Disponible para iPad• Modos de juego libre y desafío
Aplicaciones para dispositivos móviles• Lightbot• Orientado al aprendizaje del pensamiento computacional
mediante la resolución de puzzles• Dos niveles de puzzles
• Edades de 4 a 8 años (Lightbot jr) - Android/iPad/iPhone• Edades de más de 9 años (Lightbot) - Anteriores y Windows y Mac
• El juego de instrucciones se va incrementando según se van superando los puzzles• Incorpora conceptos de subprogramación y bucles
• La versión gratuita se llama Lightbot: Code Hour• Android• Apple Store
• Versión Web - https://lightbot.com/hocflash.html
Aplicaciones para dispositivos móviles• Lightbot
Aplicaciones para dispositivos móviles• Pocket Code• Disponible para versiones Android• Funcionamiento similar al de Scratch• Orientado a programación libre• Permite crear aplicaciones para Android• Integración con Lego Mindstorms NXT• Permite usar los recursos del dispositivo móvil
• Por ejemplo la cámara con la que podremos detectar caras
Aplicaciones para dispositivos móviles• Pocket Code
Aplicaciones para dispositivos móviles
• Hopscotch• Disponible para iPhone e iPad (
Enlace Apple Store)• Requiere registro• Existe una comunidad de
desarrolladores donde compartir nuestros programas
• Orientado a programación libre• Requiere completar unos tutoriales de
aprendizaje
Aplicaciones para dispositivos móviles• Tynker• Sistema de aprendizaje de la programación basado en
programación visual• Tiene una parte comercial
• Originalmente centrado en la web • Disponible para iPad y Android• Modo de aprendizaje basado en desafíos• Modo de desarrollo libre
• Comunidad de usuarios para compartir proyectos• Posibilidad de interacción con dispositivos externos
Aplicaciones para dispositivos móviles• Tynker
Aplicaciones para dispositivos móviles• Tynker - Projects
Aplicaciones para dispositivos móviles• Tynker - Projects
Aplicaciones para dispositivos móviles• Tynker - Projects
Aplicaciones para dispositivos móviles• Tynker - Community
Aplicaciones para dispositivos móviles• Tynker - Tutoriales
Aplicaciones para dispositivos móviles• Tynker – Tutoriales
Aplicaciones para dispositivos móviles• Tynker - Tutoriales
Aplicaciones para dispositivos móviles• Cargo-bot• Pensamiento computacional mediante la resolución de puzzles• Disponible para iPad• Modo tutorial y desafío con cinco niveles de dificultad• Incorpora conceptos de subprogramación
Aplicaciones para dispositivos móviles• Cargo-bot – Tutorial y niveles
Aplicaciones para dispositivos móviles• Cargo-bot – Entorno• Objetivo• Líneas de programa• Juego de instrucciones• Pistas
Aplicaciones para dispositivos móviles• Cargo-Bot - Ejecución
APRENDIZAJE DE LA PROGRAMACIÓN CON ORDENADORES
Programación visual utilizando ordenadores• Snap!• Website: http://snap.berkeley.edu/• Lenguajes de programación visual desarrollado en la Universidad
de Berkeley a partir de Scratch 1.5• Orientado a programación libre• Juego de instrucciones más complejo que Scratch• Se puede conectar a diferentes dispositivos
• Lego NXT• Wiimote• LEAP Motion• Arduino• Raspberry Pi
Programación visual utilizando ordenadores• Snap!
Programación visual utilizando ordenadores• code.org• Website: https://code.org• Permite registro como profesor
• Seguimiento del progreso de los alumnos• Cursos gratuitos pero orientados al sistema educativo
estadounidense• Incorporan una planificación completa
• Cursos de una hora de fácil aplicación en clase• Especifican edades recomendadas
• Entorno de programación – Code Studio• AppLab vs PlayLab
Programación visual utilizando ordenadores• code.org
Programación visual utilizando ordenadores• code.org
Programación visual utilizando ordenadores• CodeMonkey• Website: https://www.playcodemonkey.com• Aprendizaje de la programación principalmente mediante la
resolución de desafíos• No es gratuito• Instrucciones mediante bloques o tecleando
Programación visual utilizando ordenadores• CodeCombat• Website: https://codecombat.com• Aprendizaje de la programación mediante la resolución de
desafíos• Apariencia de juego
• Permite crear clases controladas y configuradas por el profesor• El primer curso es gratuito• También es posible que los estudiantes se registren de manera
individual• No estarán asociados a su profesor
• Orientado a lenguajes como python, javascript, HTML5, CSS3,….
Programación visual utilizando ordenadores• CodeCombat
Programación visual utilizando ordenadores• CodeCombat
Programación visual utilizando ordenadores• Turtle Academy• Website: https://turtleacademy.com/• Aprendizaje de la programación mediante logo.• Gratuito aunque es posible registrarse• Logo es un lenguaje de programación diseñado con fines
didácticos • Permite hacer dibujos• Primeros lenguajes utilizados para la enseñanza en la programación
en niños
Programación visual utilizando ordenadores• Turtle Academy
Programación visual utilizando ordenadores• Blocky• Website: https://blockly-games.appspot.com/• Proyecto de Google, totalmente gratis• Diversos juegos que refuerzan diferentes conceptos sobre
programación
Programación visual utilizando ordenadores• Blocky
Juego Objetivo
Puzzle (rompecabezas) Introducción a las formas del lenguaje y cómo encajan
Maze (Laberinto) Introducción a bucles y condicionales
Bird (pájaro) Profundización en condicionales
Turtle (Tortuga) Profundización en bucles
Movie (Película) Introducción a las ecuaciones matemáticas
Pond Tutor (Tutor del estanque)
Programación textual. Alterna entre programación visual en bloques y JavaScript
Pond (Estanque) Competición final
Programación visual utilizando ordenadores• Codecademy• Website: https://www.codecademy.com
• Gran catálogo de cursos cortos• HTML, CSS, Javascript, jQuery, SQL, python…..• Existe una versión Pro con más funcionalidades, pero no gratuita
Programación visual utilizando ordenadores• Codecademy
Programación visual utilizando ordenadores• PencilCode• Website: https://pencilcode.net
• Colaborativo y open source• Entorno gráfico para programación abierta que recuerda a logo y
scratch• Orientado al dibujo, música y creación de juegos• También permite el aprendizaje de Javascript, HTML y CSS
Programación visual utilizando ordenadores• PencilCode
Música y programación• Sonic Pi• Website: http://sonic-pi.net/• Software de composición musical Open Source bajo licencia MIT• Creado en la universidad de Cambridge• Diseñado específicamente para uso en el aula• Funcionamiento orientado al aprendizaje de la programación• Versiones para Windows/Linux/Mac OS/Raspberry pi
Música y programación
Zona Tutorial
UTILIZANDO HARDWARE ADICIONALPlataformas de prototipado y robótica educativa
Hardware adicional• Makey Makey• Website: http://makeymakey.com/• Dispositivo hardware que nos permite que cualquier elemento
conductor de electricidad se convierta en una tecla de nuestro equipo• Diseñado en el MIT
• Fomenta la creatividad del alumno al permitir la interacción entre programas de ordenador con dispositivos físicos
Plataformas de prototipado• Crumble• Website: http://redfernelectronics.co.uk/• Controlador programable • Puede gestionar dos motores a velocidad variable
• Hacia delante y hacia atrás• 4 conexiones de entrada salida, podemos conectar:
• Sensores • Switches• Leds
• Utiliza conexiones con pinzas de cocodrilo• Funciona en PC, MAC y Linux • Se programa mediante una aplicación bastante similar a Scratch
Plataformas de prototipado• Crumble
Plataformas de prototipado• Crumble
Plataformas de prototipado• Crumble
Plataformas de prototipado• Arduino /Genuino• Website: https://www.arduino.cc/• Placa con controlador programable y puertos de entrada salida.• Tanto hardware como software son libres con licencia de código
abierto• Posee su propio entorno de desarrollo
• Lenguaje de programación• Funcionamiento:
• Interfaz de entrada Recoge información mediante sensores• Microcontrolador Procesa información según las instrucciones del
programador• Interfaz de salida Emite órdenes a los actuadores de salida
Plataformas de prototipado• Arduino/Genuino
Plataformas de prototipado• Arduino/Genuino – Placas compatibles, sensores y
actuadores
Plataformas de prototipado• Arduino/Genuino – Entorno de programación• Descargable desde https://www.arduino.cc/en/Main/Software• Versiones para Windows/Linux/MAC
Plataformas de prototipado• Arduino Create• Plataforma Web - https://create.arduino.cc/• Funcionalidades:
• Editor Web• Guía de inicio• Hub de proyectos • Foro de ayuda• Tienda• Cloud –Permite conectar las placas a Internet y entre ellas de manera
sencilla.
Plataformas de prototipado• Arduino Create
Plataformas de prototipado• Arduino/Genuino – Entornos de programación gráficos• Scratch for Arduino - http://s4a.cat/index_es.html• Ardublock - http://blog.ardublock.com/• Blockyduino - https://github.com/BlocklyDuino/BlocklyDuino/wiki• mBlock - http://www.mblock.cc/• MiniBloq - http://blog.minibloq.org/• Bitbloq - https://bitbloq.bq.com
Robótica Educativa• Lego WeDo / Mindstorms• Kits de LEGO orientados a
diferentes edades• Piezas reutilizables• WeDo
• Sencillo• Hasta 10 años
• Mindstorms• A partir de 10 años• Permite construir robots
Complejos
• Soporte a profesores por parte de la marca
• First Lego League
Robótica Educativa• Vexrobotics• Website: http://www.vexrobotics.com/
Y HASTA ORDENADORES DIY…
Hardware adicional• Kano• Website: https://kano.me/• Ordenador basado en Raspberry Pi y Linux• Debes construirlo tu mismo• Sistema operativo es de código abierto y viene preparado para
ayudar al aprendizaje del pensamiento computacional• Podemos descargar su Sistema Operativo
• Funciona en Raspberry Pi 1B, 2, 3 y Zero
Hardware adicional• Kano
Hardware adicional• Kano• Website: https://kano.me/• Ordenador basado en Raspberry Pi y Linux• Debes construirlo tu mismo• Sistema operativo es de código abierto y viene preparado para
ayudar al aprendizaje del pensamiento computacional• Podemos descargar su Sistema Operativo
• Funciona en Raspberry Pi 1B, 2, 3 y Zero
Hardware adicional• Kano
Referencias• Resnick, M., Maloney, J., Monroy-Hernández, A., Rusk, N., Eastmond, E.,
Brennan, K., ... & Kafai, Y. (2009). Scratch: programming for all. Communications of the ACM, 52(11), 60-67.
• Wing, J. M. (2006). Computational thinking. Communications of the ACM, 49(3), 33-35.