Resolución de Problemas y Descomposición
Los alumnos aplican la descomposición para dividir problemas complejos en subproblemas más pequeños y manejables.
Sobre este tema
El pensamiento computacional no es pensar como una maquina: es usar estrategias sistematicas para resolver problemas complejos de forma eficiente. Este tema introduce a los alumnos de 3º de ESO en las cuatro pilares del pensamiento computacional: descomposicion, reconocimiento de patrones, abstraccion y algoritmia. El pseudocodigo actua como puente entre el lenguaje natural y la programacion formal.
Bajo el marco de la LOMLOE, el pensamiento computacional se integra en la competencia matematica y en la competencia digital como una forma de razonamiento transversal. No se trata de aprender a programar en un lenguaje especifico, sino de desarrollar la capacidad de plantear problemas de forma que una maquina pueda resolverlos. Esta habilidad tiene aplicacion en cualquier disciplina y es cada vez mas demandada en el mercado laboral.
Ensenyar pseudocodigo de forma activa implica que los alumnos disenan algoritmos para resolver situaciones de su vida cotidiana antes de acercarse al codigo. Cuando el punto de partida es un problema real que les importa, la motivacion para desarrollar una solucion sistematica es mucho mayor.
Preguntas clave
- ¿Cómo dividiríais un problema complejo en tareas lo suficientemente pequeñas para una máquina?
- ¿Qué ventajas ofrece la descomposición para la eficiencia en la resolución de problemas?
- ¿Cómo identificaríais los componentes clave de un problema antes de intentar resolverlo?
Objetivos de Aprendizaje
- Analizar un problema complejo y descomponerlo en subproblemas más pequeños y manejables.
- Identificar los componentes clave de un problema antes de proponer una solución algorítmica.
- Explicar las ventajas de la descomposición para la eficiencia en la resolución de problemas computacionales.
- Diseñar un algoritmo simple utilizando la descomposición para abordar una tarea cotidiana.
Antes de Empezar
Por qué: Los alumnos necesitan una comprensión básica de la secuencia de pasos para poder aplicar la descomposición de manera efectiva.
Por qué: Es fundamental que los alumnos puedan reconocer y definir tareas individuales antes de agruparlas o dividirlas en un contexto de resolución de problemas.
Vocabulario Clave
| Descomposición | Proceso de dividir un problema complejo en partes más pequeñas y manejables para facilitar su comprensión y solución. |
| Subproblema | Una parte más pequeña y específica de un problema mayor, que se aborda de forma independiente como paso hacia la solución general. |
| Algoritmo | Un conjunto de instrucciones paso a paso, ordenadas y finitas, diseñadas para resolver un problema específico o realizar una tarea. |
| Pensamiento Computacional | Conjunto de estrategias y técnicas sistemáticas para resolver problemas, inspiradas en la informática, que incluye la descomposición, el reconocimiento de patrones, la abstracción y la algoritmia. |
Atención a estas ideas erróneas
Idea errónea comúnCreer que el pseudocodigo tiene que seguir una sintaxis exacta.
Qué enseñar en su lugar
El pseudocodigo es una herramienta de diseno, no un lenguaje de programacion. Su unico criterio es la claridad y la ausencia de ambiguedad. Mostrar ejemplos de pseudocodigo con distintos estilos que describen el mismo algoritmo ayuda a los alumnos a centrarse en la logica, no en la forma.
Idea errónea comúnPensar que un algoritmo mas complejo es siempre mejor.
Qué enseñar en su lugar
La elegancia en programacion es encontrar la solucion mas simple que funcione correctamente. Comparar dos algoritmos que resuelven el mismo problema, uno simple y uno innecesariamente complicado, y medir su eficiencia, desarrolla el criterio de los alumnos sobre la calidad del diseno.
Idea errónea comúnConfundir la abstraccion con ignorar los detalles.
Qué enseñar en su lugar
La abstraccion consiste en ocultar los detalles irrelevantes para un nivel de analisis concreto, no en eliminarlos. Un mapa de metro no muestra las curvas reales de los tuneles, pero es perfecto para planificar un viaje. Los ejemplos analogicos ayudan a entender el valor de este mecanismo cognitivo.
Ideas de aprendizaje activo
Ver todas las actividadesDescomposicion colaborativa: Planificar un evento
Los grupos reciben el encargo de organizar una actividad escolar real. Deben descomponer la tarea en subtareas, identificar las dependencias entre ellas y representar el proceso como un diagrama de flujo. La comparacion entre los diagramas de distintos grupos revela la variedad de soluciones validas.
Algoritmos sin ordenador: El juego del robot
Un alumno hace de robot y sigue instrucciones al pie de la letra, sin interpretarlas. Los companeros deben escribir un algoritmo tan preciso que el robot complete un laberinto fisico en el aula sin errores. Los fallos del robot revelan las ambiguedades del pseudocodigo.
Piensa-pareja-comparte: Patrones en la naturaleza y en los datos
Se muestran secuencias numericas, imagenes y conjuntos de datos. Los alumnos identifican individualmente los patrones subyacentes, los contrastan con un companero y proponen reglas generales que podrian automatizarse en un programa.
Estudio de caso: ¿Como lo resolveria un ordenador?
Se presentan tres problemas de complejidad creciente: ordenar una lista, buscar el camino mas corto en un mapa y recomendar una pelicula. Los grupos disenan en pseudocodigo el enfoque algoritmico y debaten la diferencia entre lo que resulta facil para humanos y lo que resulta facil para maquinas.
Conexiones con el Mundo Real
- Los chefs descomponen la preparación de una comida compleja, como una paella, en pasos más pequeños: preparar el sofrito, cocer el arroz, añadir los mariscos y el caldo, asegurando que cada parte se ejecute correctamente para el resultado final.
- Los ingenieros de software utilizan la descomposición para dividir el desarrollo de una aplicación móvil en módulos funcionales más pequeños, como la interfaz de usuario, la gestión de bases de datos y la lógica de negocio, asignando cada módulo a un equipo específico.
Ideas de Evaluación
Entrega a cada alumno una tarjeta con una tarea cotidiana compleja (ej. organizar una fiesta de cumpleaños). Pídeles que escriban dos subproblemas en los que se podría dividir la tarea y una razón por la que esta división ayuda.
Presenta un problema simple en la pizarra (ej. 'Preparar una taza de té'). Pregunta a los alumnos: '¿Cuáles son los pasos principales? ¿Podemos dividir alguno de estos pasos en acciones aún más pequeñas?'. Anota las respuestas y discute brevemente la aplicabilidad.
Plantea la pregunta: 'Imaginad que tenéis que construir una casa. ¿Cómo aplicaríais la descomposición para que el proceso sea más manejable para un equipo de construcción?' Guía la discusión hacia la identificación de fases (cimientos, estructura, tejado, instalaciones, acabados).
Preguntas frecuentes
¿Que diferencia hay entre un algoritmo y un programa informatico?
¿Por que es importante documentar un algoritmo antes de programar?
¿Que es la complejidad algorítmica y se estudia en ESO?
¿Como ayuda el pensamiento computacional fuera de la informatica?
Más en Algoritmia y Programación Estructurada
Abstracción y Reconocimiento de Patrones
Los alumnos utilizan la abstracción para simplificar problemas y el reconocimiento de patrones para identificar soluciones recurrentes.
2 methodologies
Diseño de Algoritmos y Pseudocódigo
Los alumnos diseñan algoritmos utilizando pseudocódigo para representar la lógica de un programa de forma estructurada.
2 methodologies
Variables, Constantes y Tipos de Datos
Los alumnos identifican y utilizan variables, constantes y diferentes tipos de datos para almacenar información en un programa.
2 methodologies
Estructuras Condicionales (if/else)
Los alumnos aplican estructuras condicionales (if/else) para controlar el flujo de ejecución de un programa basándose en decisiones lógicas.
2 methodologies
Estructuras Repetitivas (bucles for/while)
Los alumnos utilizan bucles (for/while) para ejecutar bloques de código repetidamente, optimizando la escritura de programas.
2 methodologies
Funciones y Modularización
Los alumnos aprenden a crear y utilizar funciones para modularizar el código, mejorando su organización y reutilización.
2 methodologies