Competencias específicas y criterios de evaluación asociados
Competencia específica de la materia Informática 3:
CE.I.3. Aplicar el pensamiento computacional para analizar, diseñar e implementar sistemas de computación en entornos diversos: computadores, entorno web, dispositivos móviles y sistemas físicos y aplicar procedimientos rigurosos de prueba y depuración de programas, así como de resolución de problemas en todas las fases de desarrollo de software.
3.1. Conocer y aplicar las estructuras más básicas de los lenguajes de
3.2. Comprender las diferentes fases del desarrollo de software, aplicándolas a pequeños problemas.
3.3. Desarrollar el pensamiento computacional y aplicar metodologías de análisis top-down para el diseño modular.
Competencia específica de la materia Informática 5:
CE.I.5. Comprender los principios básicos de funcionamiento de la inteligencia artificial y su impacto en nuestra sociedad, conocer los diferentes elementos de la inteligencia artificial y los bloques básicos para ser capaces de construir sistemas sencillos: uno de aprendizaje automático y otro que interactúe con el mundo real a través de un dispositivo móvil que abarque como mínimo los bloques de percepción y actuación.
5.1. Definir el concepto de inteligencia artificial y conocer su evolución histórica.
5.2. Identificar los diferentes campos de aplicación de la inteligencia artificial y conocer las consecuencias sociales de su uso en niveles como: la igualdad de raza y género, el desempleo, la toma de decisiones morales y la influencia en la privacidad de los usuarios.
5.4. Conocer las implicaciones legales del uso de sistemas autónomos e inteligentes.
5.5. Distinguir los distintos elementos de inteligencia artificial: visión artificial y procesamiento de imágenes, procesamiento del lenguaje natural, reconocimiento de voz, robótica inteligente y aprendizaje automático.
5.6. Conocer el funcionamiento de los sistemas de aprendizaje automático, identificar los tipos de sistemas de aprendizaje automático.
5.7. Diseñar un sistema sencillo e inteligente de aprendizaje automático que reconozca voz, imágenes o texto.
Saberes Básicos
Saber básico C. Programación
En este bloque de saberes se introduce al alumnado en el pensamiento computacional, con el análisis de problemas sencillos cuya solución puede ser llevada a un computador. Se sientan las bases de las fases del desarrollo de software y se introducen lenguajes de modelización, así como las estructuras básicas que componen un programa para computador: secuencia, selección e iteración. El conjunto de saberes se completa con el diseño modular, basado en estrategias de análisis y diseño de tipo top-down, de lo general a lo particular. En este bloque de contenidos se continúa con las nociones de pensamiento computacional, centrándose en el paradigma de programación orientado a objetos. Tras mostrar los principios básicos de la programación Orientada a Objetos, se introducen lenguajes de modelización como UML y, en particular, los diagramas de actividad y de clases, que serán la base para el análisis y diseño de soluciones a ser implementadas en lenguajes textuales utilizando entornos de desarrollo libres. El bloque de saberes se completa con la programación para dispositivos móviles y entornos físicos, que permiten introducir al alumnado en el diseño de interfaces y en la implementación de soluciones a problemas que necesitan del análisis del estado del entorno y que responden a cambios en dichos estados.
Conocimientos destrezas y actitudes asociados al saber básico C
Lenguajes de programación: historia, tipos y funcionamiento. Introducción a la programación estructurada. Elementos de un programa: datos, variables, constantes, funciones básicas, condicionales, bucles, operaciones aritméticas y lógicas. Algoritmos y estructuras de resolución de problemas sencillos.
Fases del proceso de desarrollo de software. Técnicas de análisis para resolver problemas. Diseño de aplicaciones. Diagramas de flujo.
Pensamiento computacional. Diseño modular de programas: subprogramas.
Orientaciones para la enseñanza asociadas al saber básico C:
Al hacer una explicación de los lenguajes de programación, se puede aprovechar para mostrar código en soportes físicos, como una tarjeta perforada. También es interesante explicar cómo los diferentes lenguajes necesitan de compiladores que a su vez han sido escritos y compilados en el mismo lenguaje o en otro. Es recomendable utilizar lenguajes de sintaxis sencilla, adaptados al nivel del alumnado, que permitan concentrarse en las estructuras básicas de los lenguajes de programación: variable, sentencias elementales, condicionales e iteraciones. Si se utilizan lenguajes programación visuales, sería muy interesante explicar el código que se genera a partir de los elementos gráficos.
A pesar de la importancia del contacto con los entornos de desarrollo, es interesante que los alumnos y las alumnas reflexionen, modelicen y escriban pseudocódigo usando tan solo lápiz y papel. La aplicación parcial de algunas técnicas de programación ágil, puede ser de gran utilidad a la hora de diseñar y programar en el aula. Por ejemplo, el desarrollo incremental o la estimación del esfuerzo necesario en cada tarea, pueden ser de gran ayuda tanto en el trabajo individual, como en el grupal.
La realización de un proyecto por grupos, si ha de combinarse el resultado de todos los grupos para alcanzar el resultado deseado, puede ser una forma de que los subprogramas surjan de forma casi natural. Un ejemplo típico a tratar, sería un programa, que se divida en 3 funciones, módulos o subprogramas, uno que recoja los datos del usuario (capa de vista), otro que transforme los datos recibidos (capa de negocio) y otro que almacene los datos (capa de datos). Algo tan sencillo, como leer los números escritos por el teclado, sumarlos y escribirlos en un fichero de texto, ya da pie a ver las distintas formas de comunicación entre funciones, resultando especialmente interesante el paso de parámetros.
Saber básico E. Inteligencia artificial
El impacto de la inteligencia artificial a todos los niveles de la sociedad es cada vez más patente. Tanto el tejido industrial, como las administraciones están haciendo grandes inversiones en este campo para no quedar al margen de una etapa que conformará gran parte de los trabajos del futuro y también la forma en que los humanos nos relacionaremos con las actividades cotidianas, ya que muchas de ellas serán realizadas por sistemas inteligentes y automatismos (López de Mántaras y Meseguer, 2017). Este bloque incluye una introducción conceptual e histórica al campo de la inteligencia artificial, junto con la definición de los elementos básicos de un sistema de este tipo. También es necesario conocer su impacto en la sociedad, a nivel ético, legal y sostenible. En una parte más práctica se pretende diseñar un sistema inteligente sencillo como ejemplo de aprendizaje automático (Lane, 2021). También engloba la descripción de los bloques básicos de un sistema de inteligencia artificial: percepción, actuación, representación, razonamiento, aprendizaje, motivación, inteligencia colectiva y sostenibilidad/ética/aspectos legales; identificándolos en un caso de uso concreto. Los conocimientos anteriores se verán reflejados en el diseño de un sistema inteligente sencillo en el que se apliquen como mínimo los bloques de percepción y actuación (Bellas, F. Duro, R. ,2022).
Conocimientos destrezas y actitudes asociadas al saber básico E:
Inteligencia artificial: definición, contexto histórico y aplicaciones.
La inteligencia artificial en la sociedad: impacto, ética, responsabilidad social, beneficios y posibles riesgos.
Elementos de inteligencia artificial: visión artificial y procesamiento de imágenes, procesamiento del lenguaje natural, reconocimiento de voz, robótica inteligente y aprendizaje automático.
Aprendizaje automático: cómo funciona, tipos, aprendizaje profundo.
Diseño de un sistema de aprendizaje automático.
Orientaciones para la enseñanza asociadas al saber básico C:
Entre las distintas definiciones de inteligencia artificial, se puede tomar como referencia la que utiliza la Unión Europea: “El término inteligencia artificial se aplica a los sistemas que manifiestan un comportamiento inteligente, pues son capaces de analizar su entorno y pasar a la acción –con cierto grado de autonomía– con el fin de alcanzar objetivos específicos”. Alan Turing con la publicación del artículo “Computing Machinery and Intelligence” en 1950 sienta las bases de la inteligencia artificial cuyo término apareció en 1956. Con posterioridad se desarrolló el lenguaje de programación LISP para el diseño de sistemas expertos. Esta evolución ha continuado hasta nuestros días con los sistemas que ganan a humanos en juegos de mesa, androides capaces de hablar con lenguaje de signos, asistentes virtuales, recomendaciones de contenidos, coches autónomos, tratamiento de imágenes y videos, etc.
La inteligencia artificial contribuye actualmente y lo hará aún en mayor medida en el futuro a mejorar la vida de las personas y el entorno. Durante los últimos años, fruto de los avances en este campo y de la detección de posibles retos a tener en cuenta en su aplicación, han surgido varias iniciativas a nivel mundial para promover el bien común en ámbitos como la economía circular, los objetivos de desarrollo sostenible, la innovación impulsada por ciudadanía, el desarrollo de la infancia o las ciudades saludables. Frente a las ventajas y beneficios que nos aporta y aportará en el futuro debemos tener en cuenta que también hay desafíos a tener en cuenta: aparición de sesgos algorítmicos, impacto negativo en el empleo, dependencia de factores externos, generación de desinformación, reducción de la privacidad, etc.
Identificación de las distintas formas de inteligencia artificial mediante una serie de preguntas por niveles, cuyo primer nivel es: ¿puede ver?, ¿puede escuchar? ¿puede leer?, ¿puede moverse? y ¿puede razonar?. En niveles siguientes para cada una de estas preguntas se realizan nuevas preguntas con más detalle hasta llegar a los distintos elementos que se consideran propios de una inteligencia artificial.
El aprendizaje automático (machine learning en inglés) suele confundirse con la inteligencia artificial, pero es solo una parte de ella. Implica procesos en los que son las propias máquinas las que crean sus reglas (algoritmos) y predicciones basándose en los datos que les suministran los humanos, buscando patrones en grandes volúmenes de datos. Esta técnica es una de las grandes responsables de buena parte de las mejoras y avances que hemos visto en los últimos años. Se distinguen los tipos de aprendizaje supervisado, no supervisado y por refuerzo. El aprendizaje profundo se refiere a determinadas técnicas de aprendizaje automático en las que hay varias «capas» de unidades de procesamiento sencillas que están conectadas en red (redes neuronales profundas).
Tras valorar las diferentes opciones de trabajo se y debido a que en el centro existe GSuite se propone trabajar a través de Sites, tanto como cuaderno de trabajo para el profesorado como para el alumnado.
De esta manera quien imparta la clase se deberá crear un Sites en el que presente la asignatura, y dé a conocer lo que se lleva a cabo en ella (normas de trabajo, programación de la asignatura, actividades con fechas de entrega...) ordenada preferiblemente por trimestres.
Además este Sites deberá contar con una página en la que estén enlazados todos los Sites del alumnado.
El alumnado por su parte se deberá crear una carpeta compartida con quien imparta la clase en el Drive y un Sites.
El sites del alumnado será su cuaderno de clase. En él deberán aparecer todas las tareas que se vayan realizando en clase, bien incrustadas si la aplicación lo permite, bien enlazadas o si no es posible a través de imágenes y comentarios.
Todos los documentos de clase deberán estar guardados en la carpeta de Drive compartida con el profesorado de la asignatura.
Ejemplo:
Del mismo modo se les dará una serie de instrucciones al alumnado para la creación de sus sites
El alumnado que llega a bachillerato estos años no tienen una base en programación siendo lo habitual que sea la primera vez que la vean. Por eso se suele introducir de la misma manera que en tercero de ESO, a través de code, scratch, microbit... al tener más grado de madurez permite que el avance sea más rápido y podamos llegar hasta niveles superiores como creación de sus propios programas, actuadores etc. Creación de programas de inteligencia artificial, diseño en 3D con programación. A continuación se recopilan algunas de las propuestas llevadas a cabo en clase.
A través de la siguiente presentación se pretende dar una visión general de la evolución de la Inteligenica Artificial a través de la Historia y los problemas asociados a ella. Se pretende poner de relieve el impacto de la tecnología en nuestras vidas tanto de manera social, política, educativa...
Se proponen un aserie de artículos aparecidos en prensa sobre Inteligencia Artificial. Cada miembro de la clase elige uno y hace un pequeño resumen, elige, al menos, cuatro palabras que desconozca y da su definición y realiza una pequeña opinión personal sobre lo que dice el artículo.
Adjuntamos ejemplos de artículos propuestos pero pueden buscar los que más le interesen (inteligencia artificial en agricultura. como ayuda a la medicina...)
Ser mujer en tiempos de IA: cuando tu jefe es el algoritmo
DATOS PARA CHATGPT
NOVEDADES DE ESTAS HERRAMIENTAS- VIDEO
Una emprendedora que quiere descolonizar la inteligencia artificial en África
CHATGPT CONTESTA SOBRE PROFESIONES DEL FUTURO
¿Es posible acabar con los sesgos de los algoritmos?
Herramientas detectar escrito humano
ChatGPT: qué es, cómo usarlo y qué puedes hacer con este chat de inteligencia artificial GPT
Para llegar a este punto al alumnado se le supone cierto grado de conocimiento en programación clásica por bloques. El ejercicio consiste en crear a través de scratch un programa en el que mediante una listas haga una serie de órdenes. Para que ejecute estas órdenes las instrucciones que le demos deben estar de manera exactamente igual escritas que como le enseñamos. Es decir, si quiero decir "salta" y escribo "slta" el programa no me va a entender.
Posteriormente a trabes de Machine Learning se crearan unas listas de ordenes con IA. De esta manera la IA aproxima lo qeu has escrito a lo que tiene almacenado y realiza la acción con cierto grado de incertidumbre.
Para realizarlo seguiremos estos pasos que tiene el INTEF como recurso:
Como ejemplo, vamos a desarrollar paso a paso un asistente virtual con el que controlaremos la iluminación y la temperatura de nuestro hogar usando órdenes en lenguaje natural. En esta web tienes el los tutoriales completos, y el enlace de descarga de archivos que necesitarás. Te enlazo aquí los tutoriales:
1. Comenzamos a programar un asistente virtual con Scratch 3.0
2. Nos encontramos con los límites de la programación clásica.
3. La herramienta Machine Learning for Kids.
4. Entrenamos y generamos el modelo de aprendizaje automático.
5. Probamos nuestro modelo de aprendizaje automático.
6. Exportamos el modelo a un proyecto Scratch 3.0.
Si no lo tenéis hecho os lo dejo aquí para descargar
Micro:bit a través de su págian nos permite usar la IA para entrenarla. Nuestro objetivo es acabar comprando la cámara y poder sacar más partido de una manera más vistosa a la IA pero de momento lo que vamos a hacer es entrenar los gestos.
Se propone a la clase crear una historia (antirracista, feminista, por los derechos humanos...) y utilizar el microbit, a modo de marioneta interactiva, para contarla.
A través de su página nos dan las instrucciones para crear nuestras marionetas interactivas: https://microbit.org/es-es/projects/make-it-code-it/ai-storytelling-friend/
Aquí el resultado que ha tenido lugar en clase.
En la pagina CreateAI de micro: bit hemos entrenado con una serie de muestras unas acciones determinadas, como agitar, saltar, dormir y rodar.
Para ello hay que establecer un micro: bit como transmisor de los datos de movimiento que queramos y otro como receptor de radio del que transmite para así mandarlo traducido al ordenador y usarlo como muestras para entrenar al programa con IA.
A continuación se muestran dos imágenes sobre las acciones entrenadas con el programa de aprendizaje con inteligencia artificial:
La grafica de movimiento del micro:bit utilizado. Detectado por el programa de aprendizaje:
El algoritmo aprendido por el programa de Inteligencia Artificial se pasa al micro:bit para poder descargarse en un solo micro:bit sin necesidad del programa de aprendizaje:
Historia:
Era una mañana fresca y tranquila cuando Lala, salió solo a caminar por el campo. Nadie lo había llamado, pero algo en el aire le decía que era un buen día para explorar.
Con paso firme y la nariz pegada al suelo, siguió un sendero de olores hasta encontrar un tronco viejo. Sin detenerse, saltó sobre él con agilidad, sacudiendo las hojas que crujieron bajo sus patas.
Después de un buen rato explorando, el sol empezó a calentar su lomo y el cansancio lo alcanzó. Buscó un rincón bajo un árbol, se dio unas vueltas y se acurrucó en la hierba suave, cerrando los ojos con calma.
Allí, solo pero contento, Lala dejó que el silencio y el viento lo arrullaran mientras dormía al aire libre.
En esta asignatura el aprendizaje de la impresión 3D no es un objetivo en sí mismo sino una herramienta para poder llegar a desarrollar nuestros proyectos.
Tras el bloque de aprendizaje de programación por bloques con microbit se les propone realizar un proyecto, para ello pueden imprimir las piezas que necesiten en 3D. Aquí un ejemplo.
Realización de un proyecto original: un juego de golf con impresión 3D y microbit.
La pareja de trabajo ha decidido crear un juego a partir de unas piezas impresas en 3D y dos servos gobernados por un microbit. El servo 360º que gira la plataforma se hace girar en función de lo que inclinemos la placa microbit, mientras que el servo 90º se acciona mediante el botón A de la micro:bit.
Las piezas las han diseñado en tinkercad y exportado a STL.
Se adjuntan imágenes y vídeo del resultado final.
Aprender a programar en ocasiones es algo demasiado abstracto para las personas de 16-17 años. Por eso se proponen una serie de ejercicios de programación para el diseño en 3D. Una vez conozcan este tipo de programación se les propone realizar la pieza que deseen, exportarl aa STL e imprimirla.