Programación y Robótica

Sitio: Formación en Línea
Curso: Kit Digital
Libro: Programación y Robótica
Imprimido por: Invitado
Día: viernes, 3 de mayo de 2024, 20:22

1. Introducción a la Programación

Creado con autodraw.com

La programación informática es la disciplina orientada al desarrollo de aplicaciones, herramientas virtuales o software  de cualquier proceso digital. En los últimos años, el uso de las TIC ha adquirido una importancia en la sociedad tal que la demanda de profesionales en este ámbito ha crecido vertiginosamente.

Además, la programación está asociada al desarrollo de habilidades creativas,  a la capacidad en la resolución de problemas, a la planificación estructurada de tareas o al desarrollo del pensamiento computacional.

Es por ello que la programación (anteriormente designada a profesionales especialistas en Informática) ha llegado a niveles inferiores de la educación, con el fin de crear los cimientos en esta disciplina que se desarrollará a lo largo de toda la etapa educativa.

Un programa informático se compone de un conjunto de instrucciones que sigue una secuencia o estrategia  determinada para lograr un fin, para obtener un resultado concreto y que están escritas en un código o lenguaje  de programación siguiendo unas normas establecidas. 

En los últimos años, el desarrollo de distintos lenguajes de programación basados en entornos gráficos amigables ha permitido acercar la programación a los primeros niveles de la educación. Las instrucciones de estos lenguajes de programación se componen de bloques que se arrastran en el lienzo formando el programa. Algunos ejemplos son Scratch, Code.org, Alice, Kodu, AppInventor, Edublocks, etc.

Los lenguajes basados en texto aparecieron antes que los lenguajes gráficos, pero siguen utilizándose, ya que son imprescindibles para ciertas aplicaciones. Algunos de ellos son Python, Java, C++, Processing (basado en Java), etc.

Además, el desarrollo de los lenguajes de programación está asociado a la evolución de los sistemas de control programado; es decir, máquinas cuyos actuadores (por ejemplo motores) son gobernados por un programa en el que se tienen en cuenta otros elementos del sistema (por ejemplo sensores de proximidad). De esta forma, y continuando con el ejemplo,  a través del programa instalado en una tarjeta de control, los motores reciben órdenes de movimiento en un sentido u otro, o parada, en función de las señales que envíen los sensores de proximidad. La mayoría de los sistemas robóticos se basan en control programado y por ello, la robótica, también se está incorporando desde hace unos años a la educación en los niveles inferiores.

Algunos programas utilizados en sistemas robóticos o en sistemas de control programado son Robolab, Ardublock, mBot, Bee Bot, Lego Mindstorm, Makeymakey, etc.

Por último, queremos reservar un espacio en este libro a las herramientas relativas a la Inteligencia Artificial, disciplina que ha cobrado muchísimo interés en los últimos años. Presentamos algunas herramientas de machine learning que enseñarán a tu computador a reconocer imágenes, sonidos, personas, objetos, etc. Podrás incorporar estos módulos en tu programa.

En conclusión, hay muchísimos lenguajes de programación adecuados para la educación. En los siguientes capítulos presentamos algunos de ellos.




Ilustración creada con https://www.autodraw.com

2. Programación gráfica

En la programación gráfica o visual, los elementos e instrucciones del lenguaje de programación se disponen en forma de bloques arrastables por el lienzo de trabajo.
Los bloques están diseñados de manera que unos encajan sobre otros, facilitando la conexión entre ellos y, de esta forma, la comprensión de la secuencia del programa. Además los bloques están etiquetados de tal manera que es muy sencillo  identificar su tarea en el flujo del programa. Así, no se necesitan estructuras muy complejas ni un alto grado de abstracción.


Programación grafica 1
Ejemplo: Programación gráfica. Captura de pantalla de Scratch

2.1. App Inventor para dispositivos móviles

App Inventor es una herramienta de desarrollo de software que fue creado conjuntamente por el MIT (Massachusetts Institute of Technology) y por Google Education  para la elaboración de aplicaciones destinadas al sistema operativo de Android, aunque las últimas versiones de App Inventor son válidas también en iOs.

Esta herramienta es gratuita y el entorno de programación es gráfico por lo que es muy fácil familiarizarse con él y crear apps para un dispositivo móvil basado en Android. Al igual que Scratch, el sistema de bloques en el que está basado su lenguaje de programación permite a cualquier usuario crear programas y ponerlos en funcionamiento en su propio dispositivo, lo cual es muy estimulante para los estudiantes. Aunque las aplicaciones creadas con AppInventor están algo limitadas por su simplicidad, proporcionan un gran número de utilidades.

App Inventor es software libre y podrás acceder a multitud de proyectos elaborados por otros usuarios para poder editarlos, mejorarlos o simplemente comprobar cómo ha sido desarrollado.

  • Para empezar a trabajar con App Inventor necesitarás una cuenta de Google.
  • Crearemos el programa accediendo al editor.
  • Después de crear nuestra App en el editor debemos llevarla al dispositivo y comprobar que funciona correctamente. Para ello, es necesario haber instalado en nuestro dispositivo MlT AI2 Companion.
  • Desde el editor en el que hemos creado el programa podemos seleccionar la opción de crear un código QR.
  • Así, desde nuestro dispositivo móvil podemos leer el código QR y descargar nuestra propia app en el dispositivo.

Acceso al editor App Inventor>>

Acceso a MIT AI2 Companion>>

Antes de comenzar a utilizar App Inventor te aconsejamos que leas sus Términos de Uso y su Política de Privacidad


Tutoriales:



Introducción a App Inventor

App Inventor 1: Introducción del canal de YouTube Programamos


Interfaz de App Inventor

App Inventor 2: Repaso a la interfaz de Diseño del canal de YouTube Programamos


Mi primera App 1

App Inventor 3.1: Mi primera App(Diseño) del canal de YouTube Programamos



Mi primera App 2

App Inventor 3.2: Mi primera App(Bloques) del canal de YouTube Programamos


Mi primera App 3

App Inventor 3.2: Mi primera App(Prueba y corrección de errores) del canal de YouTube Programamos

2.2. Scratch

Scratch es un lenguaje de programación creado por el MIT (Massachusetts Institute of Technology) diseñado especialmente para acercar el mundo de la programación a cualquier usuario, independientemente de sus conocimientos iniciales en este campo. El entorno es totalmente visual y a través de su código se pueden crear historias interactivas, juegos, animaciones, etc.

Scratch es una herramienta totalmente gratuita y de código abierto. Además puedes acceder a su comunidad y utilizar, editar y mejorar programas que otros usuarios hayn compartido públicamente en el sitio web.


Puedes empezar a crear un proyecto en Scratch (sin cuenta de usuario)  en este enlace: Empezar a crear

También puedes crear una cuenta de usuario totalmente gratuita y podrás gestionar todas tus creaciones, compartirlas, volver a editarlas y descargarlas cuando tu quieras. Únete a Scratch.

Otra opción es descargar la aplicación en tu propio ordenador. Descargar Scratch.

Antes de comenzar a utilizar esta herramienta te recomendamos que leas la Información publicada para educadores, Información para padres, los Términos de uso y la Política de Privacidad.


Tutoriales de Scratch:
En la página de Scratch podrás encontrar los tutoriales que la herramienta pone a tu disposición para que comiences a trabajar en Scratch. Tutorials

cpatura sratch1


Introducción a Scratch 3.0


Los tutoriales. Introducción a Scratch 3.0 del canal de Youtube INTEF


Crear objetos

Crear objetos. Introducción a Scratch 3.0 del canal de Youtube INTEF


Propiedades de los objetos


Propiedades de los objetos. del canal de Youtube INTEF



Videojuegos de persecución

Videojuegos de persecución. El ratón y el gato 1 del canal de 10 minutos de Scratch



Juego Esquivar Balones con Scratch


Scratch 3.0 - Juego de Esquivar Balones del canal de Youtube Edukative S.L. - Robótica Educativa en inglés

2.3. Blockly

Google Blockly es un lenguaje de programación visual, basado en bloques. Es Open Source, con licencia Apache License 2.0.

Blockly de basa en programación visual como Scratch y podrás implementar tus algoritmos arrastrando los bloques por el lienzo. Además con blockly podrás ver simultáneamente el código traducido a otros lenguajes de programación como Python, JavaScript, PHP, Lua, Dart... Así que este es un buen lenguaje de programación para iniciarse en la programación textual.

Para comenzar a trabajar con Blockly es aconsejable visitar Blockly Games, una serie de juegos que a través de retos de menor a mayor dificultad ayudarán a los alumnos a familiarizarse con el entorno y con las instrucciones de Blockly.  Además, en el siguiente enlace se muestra información específica para que los educadores>>


Puedes empezar a crear un proyecto en Blockly  en este enlace: Empezar a crear

Antes de comenzar a utilizar esta herramienta te recomendamos que leas los Términos de uso y la Política de Privacidad.




2.4. Game blox

GameBlox es una herramienta para crear videojuegos para dispositivos móviles. El lenguaje de programación es gráfico.



Puedes empezar a crear un proyecto en Game Blox  en este enlace: Empezar a crear

Antes de comenzar a utilizar esta herramienta te recomendamos que leas los Términos de uso y la Política de Privacidad.




2.5. Thunkable

 Thunkable es una herramienta basada en App Inventor que permite familiarizar a los alumnos con el desarrollo de aplicaciones para dispositivos Android.

Thunkable es un entorno realmente sencillo, similar a los otros entornos mencionados, basado en bloques.


Acceso a la página  de Thunkable>>

Es importante que consultes los Términos de uso y su Política de Privacidad antes de empezar a utilizar esta herramienta.


Tutorial:


Introducción a Thunkable

Thunkable 01 | Aprende a crear una aplicación de móvil: Introducción y Primera APP del canal de Youtube Lleida Hack



2.6. Swift Playgrounds

Swift Playgrounds es una herramienta para macOs y para iOs diseñada para comenzar a programar a través de instrucciones básicas. Esta plataforma está preparada para que los usuarios, sin necesidad de conocimientos previos, pueda aprender los conceptos básicos de la programación usando el lenguaje Swift creado por Apple.


Acceso a la descarga de Swift Playgrounds >>

Antes de comenzar a utilizar esta aplicación te aconsejamos que leas sus Términos de Uso y su Política de Privacidad


Tutoriales:


Primeros pasos con Swift Playgrounds


Learn to Code 1 #002​: Issuing Commands, Commands – Swift Playgrounds del canal de Youtube Swift Playgrounds Tutorials

2.7. Code.org

Code.org® es una organización sin ánimo de lucro dedicada a acercar la programación y la computación a los estudiantes. Además trabaja intensamente para aumentar la participación de las mujeres y las minorías que no están suficientemente representadas en este campo.

Code.org ofrece distintos tipos de proyectos para comenzar a programar. A continuación mostramos algunos de ellos.

code.org captura

Captura de pantalla de code.org


Además podrás acceder a multitud de estudios con trabajos públicos realizados por otros usuarios y utilizar el código desarrollado.



Acceso a la página  de Code.org (Laboratorio de Sprites)>>

Acceso a la página  de Code.org (Artista)>>

Acceso a la página  de Code.org (Fiesta de Baile)>>

Es importante que consultes los Términos de uso y su Política de Privacidad antes de empezar a utilizar esta herramienta.

2.8. Tynker


Tynker es un lenguaje de programación gráfico ideado para que los alumnos aprendan a programar de manera fácil e intuitiva, construyendo sus propios juegos, controlando robots y drones y publicando apps. EL entorno se basa en bloques que se conectan, de forma similar a como se realiza en Scratch. Además Tynker dispone de un sistema de gestión de clases para los docentes.

Tynker también permite programar drones a un nivel básico.


Puedes acceder a la página de Tynker en este enlace>>

Antes de comenzar a utilizar esta herramienta te recomendamos que leas los Términos de uso y la Política de Privacidad.



Introducción

Tynker. Introducción a la programación. Puntos. Variables del canal de Youtube José Antonio Redondo

2.9. Snap!


Snap! es una herramienta de programación gráfica pro bloques,  creada en la Universidad de Berkeley, basada en el lenguaje de programación Scratch. Su manejo es muy sencillo, partes de bloques de instrucciones que pueden ser arrastrados y agrupados a modo de puzzle para crear un programa. Es un lenguaje pensado para desarrollar juegos, animaciones y creaciones multimedia mediante  bloques de acciones, como en Scratch.

Snap! incorpora nuevas y potentes mejoras en algunas de sus funciones, en cualquier ámbito, ya sea educativo, laboral o personal.


    Acceso a Snap!>>

    Antes de comenzar a utilizar App Inventor te aconsejamos que leas sus Términos de Uso y su Política de Privacidad


    Tutoriales:

    Introducción a Snap!

    Introducción al lenguaje de programación visual Snap! en el canal de Youtube Programamos

    3. Programación textual

    La programación basada en texto o textual se refiere a la secuencia de instrucciones que componen un algoritmo escritas en un lenguaje de programación determinado, basado en las normas establecidas en el propio lenguaje. Este conjunto de sentencias es analizado y "traducido" por el procesador para realizar las tareas para las que ha sido creado.

    A diferencia de la programación gráfica, los lenguajes de programación textual requieren unos conocimientos más amplios, así como un alto grado de abstracción. Aprender un lenguaje de programación textual requiere aprender una "sintaxis" y una "gramática" específicas del lenguaje, lo cual dificulta su uso. No obstante, desde la década de los 60 se han ido desarrollando distintos entornos de programación y en la actualidad existen multitud de lenguajes y de entornos visuales más amigables para el usuario.

    Ejemplo de un programa basado en texto. En este caso el programa está escrito en Python:

    ### Voy a decirte si el número que introduces es par o impar
    num = int(input('Introduce un numero: '))
    ifnum % 2 == 0:
    print('Es Par')
    else:
    print('Es Impar')

    3.1. PSEINT Pseudocódigo

    Antes de presentar  lenguajes de programación como Python, Processing o Java, habituales en niveles superiores de ESO o en Bachillerato, podemos introducir la programación basada en texto con un pseudocódigo muy fácil de comprender.

    PSeInt es una herramienta para familiarizar a los estudiantes con los lenguajes basados en texto. Con Pseint el estudiante puede crear programas mediante un simple e intuitivo pseudolenguaje en español. Además Pseint dispone de una herramienta de creación y edición de diagramas de flujo que genera el diagrama asociado al algoritmo creado de forma simultánea.

    Esto permite a los estudiantes comprender los conceptos fundamentales de la algoritmia computacional y minimizar las dificultades propias de un lenguaje de programación.

    Pseint está disponible para Linux, para Windows y para macOS.


    Antes de comenzar a utilizar esta herramienta te recomendamos que leas  los Términos de uso y la Política de Privacidad.

    Tutoriales:


    Primeros Pasos en Pseint

    Ejercicio 1-"Hola, mundo".+ Estructura general de un algoritmo,comentarios del canal de Youtube tecnoDavid





    Variables, tipos de datos y asignaciones en PSeInt


    Variables, tipos de datos y asignaciones en PSeInt del canal de Youtube tecnoDavid

    Escritura y lectura de datos en PSeInt.


    Escritura y lectura de datos en PSeInt del canal de Youtube tecnoDavid

    3.2. Python

    Python es un lenguaje de programación de alto nivel de código abierto, orientado a objetos, muy simple y cuya sintaxis es fácil de comprender. Este lenguaje de programación se basa en una amplia biblioteca de herramientas, así como una librería totalmente gratuita, que permite ampliar las posibilidades de este lenguaje.

    Además, la semántica de este lenguaje se basa en módulos que pueden ser importados y exportados para ser utilizados en otros proyectos. Tanto Python como sus herramientas están disponibles en las platoformas principales.

    Por todo ello, Python se ha convertido en uno de los lenguajes más versátiles y adecuados para programar grarantizando flexibilidad, legibilidad y compatibilidad en distintos proyectos.
    Primeros pasos en Python

    Curso Python. Sintaxis Básica I. Vídeo 3 del canal de Youtube Pildorasinformaticas



    También puedes empezar a utilizar Python partiendo de la programación gráfica con Edublocks, que transforma tu programa de bloques en un algoritmo en Python, de forma simultánea.


    Edublocks: la herramienta visual para aprender Python

    Edublocks: la herramienta visual para aprender Python del canal de Youtube INTEF

    3.3. Processing

    Processing es un lenguaje de programación y entorno de desarrollo integrado de código abierto. Basado en Java, se creó como una herramienta digital para artistas y diseñadores,  es decir, inicialmente fue creado para profesionales sin una formación extensa en programación. Esto lo convierte en un lenguaje de programación adecuado para la educación y para la familiarización de los estudiantes con lenguajes basados en texto.

    Además, es ideal para la producción de proyectos multimedia e interactivos de diseño digital, dando resultados muy vistosos, que estimulan mucho a los estudiantes


    Antes de comenzar a utilizar esta herramienta te recomendamos que leas  los Términos de uso y la Política de Privacidad.

    Introducción a Processing

    PROCESSING 1.5 ¿Qué es Processing? [En español] del canal de Youtube Air Room

    Primeros pasos

    PROCESSING 2.5 Introduciendo código en Processing [En español] del canal de Youtube Air Room

    Funciones Setup y Draw

    PROCESSING 5.1 void setup() y void draw() [En español] del canal de Youtube Air Room


    Movimiento

    PROCESSING 7.1 Movimiento [En español] del canal de Youtube Air Room

    4. Control programado y Robótica

    El control programado de un sistema automático se refiere al que, a partir de unas determinadas señales de entrada, se obtienen los valores en los elementos de salida,  a través de un programa (conjunto de instrucciones) que ha sido incorporado en una tarjeta controladora previamente, en vez de hacerlo a través de un circuito cableado.

    El control programado se utilizan en multitud de sistemas automáticos que utilizamos habitualmente (apertura de una puerta de garaje, climatización automática, por ejemplo) y, por supuesto, en el ámbito de la robótica.


    control programado


    Esquema de un sistema de control programado

    4.1. Ardublock y ArduinoBlocks

    Ardublock y ArduinoBlocks son dos herramientas gráficas para programar diferentes modelos de placa controladora Arduino

    Estos lenguaje de programación se basa en bloques (programación gráfica) como Scratch, App Inventor u otros programas mencionados en dicho apartado. Los bloque pueden se arrastrados y enlazados como hemos descrito anteriormente.

     Arduino es una plataforma de electrónica basada en hardware y software libres, diseñados de forma totalmente flexible y fácil de aprender, que lo convierten en una herramienta muy versátil para la educación. El hardware libre se refiere a dispositivos cuyas características, diseño, especificaciones y diagramas son de acceso público, de manera que cualquiera puede crear réplicas, mejorarlas, modificarlas, etc. Es decir, Arduino ofrece la base para que cualquier persona o entidad pueda generar placas idénticas.



    Acceso a la página de descarga de Ardublock>>

    Acceso a la creación de proyectos con ArduinoBlocks>> 

    Antes de empezar a utilizar estas herramientas te aconsejamos leer sus Términos de Uso y su Política de Privacidad


    Tutoriales:

    Acceso a los tutoriales del blog de Ardublock>>

    Acceso a la documentación de ArduinoBlocks>>


    Cómo comenzar con ArduinoBlocks

    Cómo empezar con ArduinoBlocks del canal de Youtube ArduinoBlocks


    4.2. Tinkercad Circuits

    Tinkercad es una colección de Autodesk que engloba diversas herramientas de diseño. Con Tinkercad puedes acceder a aplicaciones para diseñar en 3D, crear y simular circuitos eléctricos y electrónicos, programar, etc.

    Todo ello en un entorno muy sencillo de manejar y muy interesante para los alumnos. En este capítulo nos centraremos en Tinkercad Circuits, ya que esta herramienta dispone de los elementos necesarios para crear y simular sistemas de control basados en Arduino. Además. permite la programación online de las placas Arduino del simulador.

    Una herramienta muy interesante que ofrece Tinkercad Circuits es el debugger, con ella podemos parar la ejecución de un programa y ver los valores de las variables, algo que con arduino no podemos hacer. Nos permite “parar” el tiempo.

    Para comenzar a utilizar Tinkercad debes registrarte una cuenta de correo electrónico y podrás acceder a todas sus herramientas.

    Tinkercad Arduino_1

    Ejemplo de circuito con Tinkercad Circuits_1 Área de Formación en Línea y Competencia Digital



    Acceso a Tinkercad Circuits>>

    Antes de comenzar a utilizar esta herramienta te recomendamos que leas  los Términos de uso y la Política de Privacidad.




    Tutoriales:


    Primeros pasos con Arduino en Tinkercad Circuits

      

    Arduino en TinkerCad (I) - Hola mundo del canal de Youtube Jose Loureiro



    Encender un LED (No olvides seleccionar tu idioma en la configuración de los subtítulos)

    LEDs and Breadboards With Arduino in Tinkercad del canal de Youtube Autodesk Tinkercad



     Controlar la iluminación de un LED

      

    Fading LED With Arduino in Tinkercad del canal de Youtube Autodesk Tinkercad

    4.3. Simuladores de Robótica

    Beebot Online
    Esta página muestra un emulador del robot BeeBot. A través de sus propuestas de Robótica Educativa podrás simular su movimiento sobre un tablero, mediante una secuencia  de funciones muy básicas. Es muy intresante para los primeros niveles de educación, en la iniciación a la robótica y en el desarrollo del pensamiento computacional.

    Antes de comenzar a utilizar esta herramienta, te aconsejamos que leas sus Términos de Uso y su Política de Privacidad.


    MakeCode Microbit

    Microsoft MakeCode es una plataforma gratuita de código abierto para crear experiencias de aprendizaje relativas a la programación y a la robótica.

    Antes de comenzar a utilizar esta herramienta, te aconsejamos que leas sus Términos de Uso y su Política de Privacidad.


    MakeCode Mindstorms

    Microsoft MakeCode es una plataforma gratuita de código abierto para crear experiencias de aprendizaje relativas a la programación y a la robótica.

    Antes de comenzar a utilizar esta herramienta, te aconsejamos que leas sus Términos de Uso y su Política de Privacidad.


    Coppelia Robotics
    CoppeliaSim es un entorno de desarrollo integrado, de simulación de robots. Se basa en una arquitectura de control distribuido en la que cada objeto o cada uno de los modelos pueden controlarse de forma individual mediante un  algoritmo individual (script integrado, un plugin, un nodo ROS o BlueZero, un cliente API remoto o una solución personalizada). De esta forma se puede desarrollar robótica cooperativa, mediante aplicaciones en la que intervienen  múltiples robots. Los controladores se pueden escribir en C / C ++, Python, Java, Lua, Matlab u Octave.


    Antes de comenzar a utilizar esta herramienta, te aconsejamos que leas sus Términos de Uso y su Política de Privacidad.


    Open Roberta Lab
    Open Roberta es un entorno que permite programar distintos modelos de robots, (EV3, NXT y WeDo de Lego, mBot, NAO)  El lenguaje empleado se llama NEPO y se basa en programación gráfica como Scratch. Además  podrás convertir tus algoritmos a lenguaje de programación textual.

    El modelo virtual de Open Roberta es 2D y bastante básico, pero podrás visualizar tu robot desplazándose por el lienzo, según el algoritmo desarrollado.

    Antes de comenzar a utilizar esta herramienta, te aconsejamos que leas sus Términos de Uso y su Política de Privacidad.

    5. Introducción a la Inteligencia Artificial

    La Inteligencia Artificial (IA) es una rama dentro de la computación orientada a la aplicación de la misma con el objetivo de simular acciones propiamente humanas, basadas en razonamiento y conducta. Es decir la IA se aplica en sistemas, por ejemplo, para capacitarlos de ciertas habilidades atribuidas normalmente a humanos, por ejemplo, tomar descisiones, sopesar errores cometidos para mejorar la respuesta, adaptar la conducta en función de la situación, etc.
    Desde los años 50 se comienza a trabajar en algoritmos vinculados a la inteligencia artificial, aunque en los últimos años, esta disciplina ha evolucionado a mayor velocidad, gracias al desarrollo de la tecnología y de los lenguajes específicos. Después de una época en la que la IA pasó por unos años de parálisis en su evolución e incluso olvido, recuperó interés cuando, en el año 1997 el campeón mundial de ajedrez perdió contra una inteligencia artificial autónoma llamada Deep Blue.
    El avance del hardware ha propiciado que a partir de ese momento comenzaran a aparecer distintos algoritmos basados en estrategias diversas que superarían a los humanos en algunas tareas. 
    En la actualidad, podemos ver IA aplicada en multitud de situaciones:

    • En  apps y videojuegos, recreando el movimiento de los personajes.
    • En  industria, aplicada a la optimización de métodos de fabricación y logística.
    • En medicina, donde se hacen modelos que pueden preveer la evolución de una enfermedad o los posibles  efectos secundarios.
    • En la minería de datos, generando patrones en base a una gran cantidad de datos, que un humano no podría gestionar.
    • Machine Learning, el aprendizaje automático de las máquinas, proceso en el que los algoritmos pueden mejorar continuamente su desempeño al observar datos relevantes, identificar patrones, crear modelos de datos que pueden hacer predicciones y luego iterar su aprendizaje.

    Podemos clasificar el aprendizaje automático (machine learning) en tres tipos:ay tres tipos:

    • Aprendizaje automático supervisado: en este caso, el sistema es entrenado medieante un conjunto de datos etiquetados o estructurados. Los datos actúan como un maestro, entrenando a la máuina para mejorar  su capacidad a la hora de hacer predu¡iciiones o tomar decisiones. En este caso un supervisor humano debe gestionr el entrenamiento del sistema.

    • Aprendizaje automático no supervisado: en este caso, los datos son proporcionados al sistema sin etiquetas y el sistema debe generar los patrones de forma autónoma.

    • Aprendizaje automático por refuerzo: el aprendizaje se basa en la retoralimentación recibida. De tal manera que la proximidad al objetivo es premiada y el alejamiento se traduce en una penalización. Con base en la retroalimentación, el sistema modifica su estrategia y decisiones para para minimizar los errores.


    En educación, al igual que en otro ámbitos, podemos encontrar aplicaciones de la IA en distintas situaciones.
    En resumen, agrupamos la presencia de la IA en la educación según su línea de actuación:

    • Educar con IA: se trata de integrar en la educación tecnologías de IA que puedan ayudar  mejorar el proceso de aprendizaje de los alumnos y mejorar la enseñanza. Por ejemplo, la aplicación de herramientas y algoritmos en el análisis de los datos obtenidos para crear un itinerario de aprendizaje específico para un alumno y adaptar el proceso de aprendizaje a cada situación personal.
    • Educar para la IA: busca capacitar a los alumnos en la adquisión de nuevas habilidades necesarias para situaciones cotidianas o profesionales  en un mundo con IA. Es decir, se trata de familizarizar a los estudiantes con la presencia de sistemas basados en Inteligencia Artificial y los cambios que estos sistemas y máquinas pueden incorporar en nuestras visas.
    • Enseñar a crear IA: el objetivo es que los estudiantes comiencen a analizar el aspecto técnico de los sistemas basados en algoritmos de IA. La iniciación en la programación informática y en la creación de herramientas tecnológicas es imprescindible desde edades tempranas para la btención de profesionales en esta disciplina, capaces de afrontar los problemas y situaciones del futuro.

    En este capítulo, ubicado dentro del bloque de Programación, nos centraremos en las herramientas que se están desarrollando en la línea de actuación (Aprender a crear IA). Estas aplicaciones permiten a los estudiantes la generación de módulos basados en aprendizaje automático que pueden exportarse e incorporarse en algoritmos de distintos lenguajes de programación creados por los alumnos. Estas aplicaciones servirán para iniciar a los alumnos en el mundo de la creación de herramientas basadas en IA.
    Aprender los fundamentos de la Inteligencia Artificial ya está a nuestro alcance.

    ¿Te animas a construir una IA capaz de saber quien está sentado delante de la webcam de tu ordenador? ¿O programar un asistente virtual como Alexa? ¿O crear un personaje virtual que imite los gestos de tu cara?

    5.1. Machine Learning for Kids

    Machine Learning for Kids es una herramienta muy interesante para introducir a los estudiantes en la disciplina  de la Inteligencia Artifical. Realmente es una aplicación útil para acceder al mendo del entrenamiento de sistemas de aprendizaje automático.

    Con esta herramienta el alumno podrá entrenar a su PC. Le enseñará a reconocer imágenes, a contestar preguntas sobre un tema concreto,  a reconocer números en trazado natural o sonidos sencillos.

    El proceso se basa en seleccionar el tema sobre el que vamos a enseñar a la máquina. Tendremos que introducir las etiquetas de referencia y los ejemplos relativos a cada etiqueta. Después de un proceso de entrenamiento, la máquina habrá aprendido las relaciones entre patrones y etiquetas.

    El procedimiento da como resultado un módulo de código que podrás exportar e incorporar en tu algoritmo de Scratch 3 o de Python. De esta forma, podrás desarrollar juegos capaces de interpretar imágenes, sonidos o texto, es decir, sistemas "semi-inteligentes".




    Algunos proyectos de Aprendizaje Automático


    Scratch y Machine Learning for Kids

    Inteligencia artificial en el aula con Scratch 3.0 del canal de Youtube INTEF



    Scratch y Machine Learning for Kids II

    Inteligencia artificial en el aula con Scratch 3.0 del canal de Youtube INTEF



    Cómo enseñar a tu computadora con Machine Learning for Kids
    (Recuerda seleccionar tu idioma en la configuración de los subtítulos)

    Machine Learning for Kids del canal de Youtube Dale Lane

    5.2. Teachable Machine

    Teachable Machine 2.0 es una herramienta de IA desarrolla por Google y basada en la web que hace que la creación de modelos de aprendizaje automático sea rápida, fácil y accesible para todos.

    Con esta herramienta podrás preparar a un ordenador para que reconozca imágenes, sonidos y posturas. Es una forma rápida y sencilla de crear modelos de aprendizaje automático para incorporarlas en sitios web o aplicaciones.


    Teachable Machine



    Acceso a Teachable Machine>>

    Antes de comenzar a usar esta herramienta, te aconsejamos que leas su Política de Privacidad y los Términos de uso.




    Tutoriales: ¿Qué es Teachable Machine? (Recuerda seleccionar tu idioma en la configuración de subtítulos)

    Teachable Machine Tutorial 1: Gather del canal de Youtube Experiments with Google Primeros pasos con


    Teachable Machine

    Teachable Machine del canal de Youtube INTEF


    Cómo detectar expresiones de la cara

    Teachable Machine: Cómo detectar expresiones de la cara usando IA del canal de Youtube Programamos


    5.3. Learning ML

    Learning ML es otra herramienta para el aprendizaje atuomático o machine learning, que permite entrenar a la máquina para el reconocimiento de distintos elementos.

    LearningML facilita enormemente la construcción de modelos de ML. La herramienta se centra en los fundamentos de la programación en un entorno muy sencillo de  manejar. En tres pasos, se puede obtener un modelo de ML a partir de conjuntos de textos o imágenes recopilados. Como en las otras herramientas mostradas, el modelo puede incorporarse en un algoritmo de Scratch.

    Aunque para usar LearningML no es necesario registrarse, si lo haces podrás acceder a los proyectos que otras personas hayan compartido y, por supuesto, tú mismo puedes compartir los proyectos que desees. Ahora mismo sólo hay algunos ejemplos para que puedas probar la aplicación más rápidamente, pero esperamos contar con vuestra participación para ampliar y enriquecer la herramienta con vuestros proyectos.


    Acceso a LearningML>>


    Antes de comenzar a utiliza esta herramienta, te aconsejamos leer los Términos de uso y Política de Privacidad.





    Reconocimiento de textos con Learning ML

    Reconocimiento de textos con LearningML del canal de Youtube learningml


    Reconocimiento de imágenes con Learning ML

    Reconocimiento de textos con LearningML del canal de Youtube learningml

    5.4. IA con App Inventor



    Acceso al editor App Inventor>>

    Acceso a MIT AI2 Companion>>

    Antes de comenzar a utilizar App Inventor te aconsejamos que leas sus Términos de Uso y su Política de Privacidad


    Tutoriales:





    Inteligenica Artificial con App Inventor

    Crea una Inteligencia Artificial con App Inventor del canal de Yotube nventor de aplicaciones