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.
Criterios de evaluación
3.1. Conocer y aplicar las estructuras más básicas de la programación orientada a objetos.
3.2. Conocer y usar distintos entornos de desarrollo, lenguajes de programación y lenguajes de modelado.
3.3. Desarrollar sencillas páginas web, con interactividad mediante lenguajes de scripting.
3.4 Implementar sencillas aplicaciones para dispositivos móviles, diseñando las interfaces adecuadas según la aplicación.
3.5. Montar y programar sistemas físicos que reaccionen a estados de su entorno.
Concreción saberes básicos
C. Programación
1. Introducción a la programación orientada a objetos. Principios básicos: abstracción, encapsulación, herencia, polimorfismo. Lenguajes de modelización: UML. Diagrama de actividades y diagrama de clases.
2. Entornos y lenguajes de desarrollo orientado a objetos. Análisis, diseño e implementación de programas sencillos. Prueba de programas. Herramientas de depuración.
3. Programación para dispositivos móviles y entornos físicos. Interfaces de usuario. E/S. Sensores y actuadores.
Orientaciones
1.- Con los conocimientos adquiridos en el bloque de C de Informática, el alumnado conoce los elementos básicos de la programación estructurada.
En este bloque, se introduce al alumnado en un nuevo paradigma de programación, la orientación a objetos (OO), y sus fundamentos de abstracción, encapsulación, herencia y polimorfismo.
En este primer bloque, se propone que se introduzcan los conceptos fundamentales de manera intuitiva. El paradigma OO trata de modelar sistemas que representen el comportamiento del mundo real, compuestos por objetos que se interrelacionan.
Mediante ejemplos se abstraen los tipos de objetos (clases), sus características y comportamientos, encapsulando todo ello bajo el concepto de clase. De los ejemplos se extraen también distintas relaciones, tanto de herencia como de dependencia entre clases, que pueden llevar a comportamientos diversos de los objetos.
Partiendo de las intuiciones anteriores, se introducen lenguajes visuales que permiten modelizar los sistemas que luego se implementarán. Se propone UML y, en particular, los diagramas de actividades y de clases.
Los diagramas de actividades se pueden interpretar como los equivalentes en OO a los diagramas de flujo que el alumnado ya conoce del bloque de saberes correspondiente de Informática I.
Los diagramas de clases permiten abstraer aquello del mundo real que quiere trasladarse al sistema computacional. Muestran, de manera visual, las propiedades de encapsulación y herencia, permiten independizarse de las dificultades de la implementación, y modelizan tanto los elementos que quieren implementarse como las relaciones entre los mismos.
2.- En este bloque se pueden elegir entre diversos lenguajes OO y diferentes entornos de desarrollo. Se debe tener en cuenta el alumnado, sus capacidades y su experiencia previa, para elegir uno u otro entorno y lenguaje.
Se pueden plantear ejemplos sencillos del entorno del alumnado, que permitan ir introduciendo de manera gradual los conceptos fundamentales de la orientación a objetos, empezando por el concepto de clase/objeto y las nociones de atributos, constructores y métodos para, posteriormente, experimentar con la herencia y los mecanismos de comunicación entre objetos.
A medida que los sistemas implementados son más complejos, se hacen necesarios procedimientos de prueba y depuración más rigurosos. Pueden introducirse, entonces, las herramientas de depuración de los distintos entornos de desarrollo. Es importante, sin embargo, trabajar la fase de prueba desligada de las herramientas de depuración, mostrando la importancia de buenos juegos de prueba (entradas y salidas previstas) y mostrar cómo las herramientas de depuración son una ayuda para, por ejemplo, la detección de errores, pero no constituyen por sí mismas una prueba del buen funcionamiento del sistema que se esté implementando.
3.- Con este bloque se completa el bloque de programación, introduciendo al alumnado en la programación de dispositivos móviles y de sistemas físicos.
Para la programación de aplicaciones para dispositivos móviles se recomienda usar entornos de desarrollo en la web que permitan la creación de la interfaz de aplicación de manera visual, así como aquellos que utilicen bien lenguajes textuales ya aprendidos por el alumnado, bien lenguajes basados en bloques. Con estos entornos se posibilita tratar conceptos de diseño y usabilidad en interfaces de usuario.
Dada la importancia que, actualmente, está cobrando el pensamiento computacional junto con la generalización del uso de teléfonos inteligentes, la programación de aplicaciones para móviles es motivante para el alumnado. Además, gracias también a lo anterior, existen multitud de tutoriales en sitios web de calidad que ofrecen la oportunidad para, de manera gradual, introducir a los alumnos y a las alumnas en el diseño e implementación de este tipo de aplicaciones.
Las actividades que se planteen en el presente apartado de este bloque sientan las bases para ser aplicadas en el bloque de saberes E, donde se propone el desarrollo de aplicaciones para móviles que hagan uso de la inteligencia artificial, siguiendo ejemplos como los que allí se detallan haciendo referencia a (Bellas, F. Duro, R. ,2022)
En lo que refiere a sistemas físicos, no es el propósito diseñar sistemas complejos que necesiten de conocimientos profundos de electrónica. Lo que se recomienda es introducir las nociones básicas de entradas/salidas en un sistema con sensores/actuadores, utilizando componentes electrónicos previamente montados e introducir al alumnado en la programación de sistemas reactivos a estados del sistema.