Skip to content

Creación de Funciones y ProcedimientosActividades y estrategias docentes

En programación, la creación de funciones y procedimientos exige un cambio de mentalidad: pasar de resolver problemas lineales a diseñar soluciones modulares. Los alumnos aprenden mejor cuando experimentan la frustración de repetir código y descubren por sí mismos cómo las funciones lo simplifican, haciendo este tema ideal para el aprendizaje activo.

2° ESOCreadores Digitales: De la Idea al Prototipo4 actividades25 min50 min

Objetivos de aprendizaje

  1. 1Diseñar un programa sencillo utilizando funciones para ejecutar una tarea específica, como dibujar una forma geométrica repetida.
  2. 2Explicar con sus propias palabras cómo la creación de un procedimiento para una secuencia de acciones evita la repetición de bloques de código.
  3. 3Comparar dos programas que realizan la misma tarea, uno con y otro sin el uso de funciones, para identificar las diferencias en organización y legibilidad.
  4. 4Identificar al menos dos ventajas de la modularidad al analizar un proyecto de programación complejo presentado por el docente.

¿Quieres un plan de clase completo con estos objetivos? Generar una misión

30 min·Parejas

Parejas: Refactorización Inicial

Los alumnos reciben un programa con código duplicado, como dibujar múltiples formas. Identifican repeticiones, crean una función para la tarea común y la aplican en todo el código. Prueban el programa refactorizado y comparan con la versión original.

Preparación y detalles

Explica cómo el uso de funciones reduce la duplicidad de código y mejora la legibilidad.

Consejo de facilitación: Durante la actividad de Parejas, proporciona un código inicial con repeticiones evidentes y pide a los alumnos que identifiquen primero qué acciones son idénticas antes de refactorizarlo en funciones.

Setup: Aula estándar, flexible para actividades grupales durante la sesión

Materials: Contenido previo a la clase (vídeo/lectura con preguntas guía), Cuestionario de comprobación o ticket de entrada, Actividad de aplicación para el aula, Diario de reflexión

ComprenderAplicarAnalizarAutogestiónAutoconciencia
45 min·Grupos pequeños

Grupos Pequeños: Biblioteca Compartida

Cada grupo diseña tres funciones útiles, como rotar objetos o detectar colisiones. Comparten la biblioteca en un proyecto común y la reutilizan para crear un juego simple. Discuten mejoras colectivas.

Preparación y detalles

Diseña un programa que utilice funciones para realizar tareas repetitivas o complejas.

Consejo de facilitación: En la Biblioteca Compartida, asigna roles claros: un alumno escribe la función y otro la documenta con comentarios breves, rotando en la siguiente ronda.

Setup: Aula estándar, flexible para actividades grupales durante la sesión

Materials: Contenido previo a la clase (vídeo/lectura con preguntas guía), Cuestionario de comprobación o ticket de entrada, Actividad de aplicación para el aula, Diario de reflexión

ComprenderAplicarAnalizarAutogestiónAutoconciencia
50 min·Toda la clase

Clase Completa: Desafío de Modularidad

Proyecta un programa complejo sin funciones. La clase propone y vota funciones para modularlo paso a paso. Todos implementan en sus ordenadores y evalúan el resultado en plenaria.

Preparación y detalles

Analiza las ventajas de la modularidad en el desarrollo de proyectos de programación grandes.

Consejo de facilitación: En el Desafío de Modularidad, prohíbe el uso de variables globales y observa cómo los grupos organizan sus funciones para cumplir el objetivo sin violar esta regla.

Setup: Aula estándar, flexible para actividades grupales durante la sesión

Materials: Contenido previo a la clase (vídeo/lectura con preguntas guía), Cuestionario de comprobación o ticket de entrada, Actividad de aplicación para el aula, Diario de reflexión

ComprenderAplicarAnalizarAutogestiónAutoconciencia
25 min·Individual

Individual: Procedimiento Personalizado

Cada alumno crea un procedimiento para una animación personal, como un baile de personajes. Lo integra en un programa mayor y documenta sus ventajas en un informe breve.

Preparación y detalles

Explica cómo el uso de funciones reduce la duplicidad de código y mejora la legibilidad.

Consejo de facilitación: Para la actividad individual, pide a cada alumno que explique su procedimiento personalizado usando un diagrama de flujo sencillo antes de codificarlo.

Setup: Aula estándar, flexible para actividades grupales durante la sesión

Materials: Contenido previo a la clase (vídeo/lectura con preguntas guía), Cuestionario de comprobación o ticket de entrada, Actividad de aplicación para el aula, Diario de reflexión

ComprenderAplicarAnalizarAutogestiónAutoconciencia

Enseñando este tema

Este tema funciona mejor cuando se enseña desde la necesidad concreta: mostrar códigos largos y repetitivos para que los alumnos sientan la incomodidad de mantenerlos. Evita definir primero las funciones como concepto abstracto. En su lugar, usa ejemplos cotidianos como recetas de cocina o instrucciones de montaje para explicar procedimientos, y luego traslada esa lógica a código. La investigación en didáctica de la programación recomienda combinar la práctica inmediata con reflexiones guiadas sobre cómo cada fragmento modular contribuye a la solución global.

Qué esperar

Al finalizar las actividades, los estudiantes serán capaces de definir funciones con parámetros, crear procedimientos para secuencias complejas y explicar por qué la modularidad mejora la legibilidad y el mantenimiento del código. La evidencia de aprendizaje incluye no solo la corrección sintáctica, sino también la justificación oral o escrita de sus decisiones.

Estas actividades son un punto de partida. La misión completa es la experiencia.

  • Guion completo de facilitación con diálogos del docente
  • Materiales imprimibles para el alumno, listos para el aula
  • Estrategias de diferenciación para cada tipo de estudiante
Generar una misión

Atención a estas ideas erróneas

Idea errónea comúnDurante la actividad de Parejas: Refactorización Inicial, observa si los alumnos creen que las funciones solo sirven para copiar y pegar código idéntico.

Qué enseñar en su lugar

Pide a cada pareja que modifique los parámetros de sus funciones (ej: cambiar el color o la velocidad del sprite) y que registren cómo un mismo fragmento de código puede adaptarse a tareas similares pero no idénticas.

Idea errónea comúnDurante la actividad Grupos Pequeños: Biblioteca Compartida, algunos alumnos pueden insistir en que en programas cortos no necesitan modularizar.

Qué enseñar en su lugar

En la fase de debate, muestra dos versiones de un mismo programa: una monolítica y otra modularizada. Cronometra el tiempo que tardan los grupos en corregir un error en ambas versiones y pide que comparen los resultados.

Idea errónea comúnDurante el Desafío de Modularidad en Clase Completa, algunos confunden funciones con procedimientos.

Qué enseñar en su lugar

Antes de empezar, pide a cada grupo que escriba en una pizarra qué esperan que devuelva cada fragmento de código: un valor, una acción o ambos. Luego, comparad las predicciones con los resultados reales al ejecutar los programas.

Ideas de Evaluación

Boleto de Salida

Después de la actividad individual: Procedimiento Personalizado, entrega a cada alumno una tarjeta con el siguiente enunciado: 'Escribe una función llamada 'dibujar_cuadrado' que reciba como parámetro la longitud del lado. Luego, escribe las líneas de código necesarias para dibujar tres cuadrados de lados 50, 100 y 150.' Evalúa si la sintaxis es correcta, si la función se define con parámetro y si se usa correctamente en las llamadas.

Verificación Rápida

Durante la actividad de Parejas: Refactorización Inicial, muestra en pantalla dos fragmentos de código que calculen el área de un círculo: uno con una constante fija y otro con una función que reciba el radio como parámetro. Pregunta: '¿Cuál de estos códigos es más fácil de adaptar si queremos calcular el área de cinco círculos distintos? Observa si los alumnos identifican la ventaja de los parámetros en la segunda opción.

Pregunta para Discusión

Después del Desafío de Modularidad en Clase Completa, plantea la siguiente pregunta para debate: 'Si tuvierais que construir un programa para un videojuego sencillo, ¿cómo os ayudaría la creación de funciones y procedimientos a organizar vuestro trabajo y a evitar errores al añadir nuevas características?' Pide a cada grupo que comparta una ventaja clave que hayan identificado, como la reutilización de código o la facilidad para depurar.

Extensiones y apoyo

  • Challenge: Propón a los alumnos que creen una función que dibuje un polígono regular de N lados, donde N sea un parámetro. Luego, pide que la usen para dibujar un hexágono y un pentágono en la misma pantalla.
  • Scaffolding: Para quienes aún confunden funciones y procedimientos, proporciona una plantilla con dos secciones: una para funciones que devuelvan valores (ej: calcular área) y otra para procedimientos que realicen acciones (ej: mover sprite). Pídeles que clasifiquen ejemplos dados en cada categoría.
  • Deeper: Invita a los alumnos a investigar cómo las funciones recursivas permiten resolver problemas complejos (ej: calcular el factorial de un número) y diseña una actividad opcional para explorar este concepto con ejemplos visuales.

Vocabulario Clave

FunciónUn bloque de código con nombre que realiza una tarea específica y puede ser llamado (ejecutado) varias veces desde diferentes partes del programa. Puede devolver un valor.
ProcedimientoSimilar a una función, es un bloque de código con nombre que agrupa una secuencia de instrucciones para realizar una tarea. Generalmente no devuelve un valor.
ModularidadLa práctica de dividir un programa grande en partes más pequeñas, manejables e independientes (módulos), como funciones o procedimientos.
Reutilización de códigoLa capacidad de usar el mismo código (a menudo dentro de funciones o procedimientos) en múltiples ocasiones dentro de un programa o en diferentes programas, ahorrando tiempo y esfuerzo.
ParámetroUn valor o variable que se pasa a una función o procedimiento cuando se le llama, permitiendo que la función actúe sobre datos específicos.

¿Preparado para enseñar Creación de Funciones y Procedimientos?

Genera una misión completa con todo lo que necesitas

Generar una misión