0% encontró este documento útil (0 votos)
99 vistas81 páginas

2021 Curso Problemas Intro Programacion SLIDES

El documento presenta una serie de sesiones sobre la enseñanza de la informática. La sesión 1 introduce conceptos clave como los paradigmas de programación, el pensamiento computacional y las recomendaciones curriculares de ACM e IEEE sobre definiciones esenciales de informática. También resume investigaciones sobre cómo enseñar de manera efectiva conceptos informáticos fundamentales.

Cargado por

Labtic Unipe
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
99 vistas81 páginas

2021 Curso Problemas Intro Programacion SLIDES

El documento presenta una serie de sesiones sobre la enseñanza de la informática. La sesión 1 introduce conceptos clave como los paradigmas de programación, el pensamiento computacional y las recomendaciones curriculares de ACM e IEEE sobre definiciones esenciales de informática. También resume investigaciones sobre cómo enseñar de manera efectiva conceptos informáticos fundamentales.

Cargado por

Labtic Unipe
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 81

1

Slides Angel Velázquez, Universidad Rey Juan Carlos

 Sesión 1: enseñanza de la Informática e investigación en enseñanza de la


Informática

 Sesión 2: Contenidos y herramientas para la enseñanza de la programación

 Sesión 3: Métodos didácticos de programación

 Sesión 4: Investigación sobre los alumnos

 Sesión 5: enseñanza de los algoritmos


2

Sesión 1: enseñanza de la Informática e investigación en enseñanza de la


Informática
https://slideplayer.es/slide/9316687/

Objetivos de la sesión 1

Dar una visión panorámica de la informática y la programación:

–Ampliar horizontes:

Nuevas ideas o formas de pensar

Un contexto para la enseñanza de la programación

–Dar puntos de referencia:

“Dadme un punto de apoyo y moveré el mundo” (Pitágoras)

Dar una visión panorámica de investigación en enseñanza de la Informática:

–Énfasis en programación

Índice

Recomendaciones curriculares

Reflexiones sobre la Informática

Campos de investigación en enseñanza de la Informática

Recomendaciones curriculares

Recomendaciones curriculares:

–Reflejan una concepción de una disciplina

–No nos interesan ahora por la elaboración de planes de estudios sino por sus “grandes ideas”

Recomendaciones internacionales:

–Association for Computing Machinery (ACM) –Computer Society of the Institute of Electrical and
Electronic Engineers (IEEE-CS)

–IFIP- UNESCO

–Carnegie-Mellon University

ACM: –ACM’68 –ACM’78: Modelo basado en un núcleo básico de asignaturas, que ha tenido una
gran influencia posterior Terminología de asignaturas, principalmente CS1 y CS2 Revisión de CS1 y
CS2

IEEE-CS: –IEEE’77, IEEE’83: Dan importancia a los laboratorios

Informe Denning

Grupo de trabajo conjunto de ACM e IEEE- CS, formado por 7 miembros y coordinado por Peter J. Denning
3

3 objetivos:

–Definir la Informática (computing)

–Proponer un paradigma de enseñanza acorde a estándares científicos tradicionales

–Ofrecer un ejemplo de una asignatura de introducción a la Informática

Definición de Informática:

El estudio sistemático de los procesos que describen y transforman información

¿Qué puede automatizarse (eficientemente)?

La informática consta de 9 áreas:

–Algoritmos y estructuras de datos

–Lenguajes de programación

–Arquitectura

–Computación numérica y simbólica

–Sistemas operativos

–Metodología e ingeniería del software

–Bases de datos y recuperación de la información

–Inteligencia artificial y robótica

–Comunicación persona-computador

La Informática no es sólo programación:

–Propone que CS1 dé una visión panorámica de la Informática

– Reconoce su gran importancia y su gran potencial formativo

Gran importancia de los laboratorios

La Informática es una “disciplina” que se inspira en tres culturas:

–Matemáticas

–Ciencias naturales

–Ingeniería

Cultura teórica:

–Basado en la matemáticas

–Pasos de desarrollo de una teoría coherente y válida:

1.Definición: caracterizar los objetos de estudio

2.Teorema: conjeturar posibles relaciones entre los objetos

3.Demostración: determinar si las relaciones se cumplen

4.Interpretar los resultados

Cultura de modelado (o abstracción o experimentación):


4

–Basado en el método científico experimental

–Pasos de investigación de un fenómeno:

1.Formular una hipótesis

2.Construir un modelo y hacer una predicción

3.Planificar un experimento y recoger datos

4.Analizar los resultados

Cultura de diseño:

–Basado en la ingeniería

–Pasos de construcción de un sistema que resuelva un problema:

1.Formular requisitos

2.Formular especificaciones

3.Diseñar e implementar el sistema

4.Probar el sistema

Computing Curricula 1991

Elementos básicos para formar un plan de estudios:

–La definición de Informática del Informe Denning, incluyendo las 9 áreas:

Se describen “unidades de conocimiento”, no asignaturas

–Un área optativa de introducción a la programación

–Un área de cuestiones sociales, éticas y profesionales

–Un conjunto de 12 conceptos recurrentes en la Informática

Computing Curricula 1991 Organización de un plan de estudios:

–Materias de Informática (básicas, avanzadas y suplementarias)

–Materias matemáticas y científicas

–Trabajo de laboratorio, sobre todo de programación

–Otras materias y experiencias educativas

Computing Curricula 2001

Diversificación:

–Computer Science (CS 2001)

–Computer Engineering (CE)

–Information Systems (IS) –

Software Engineering (SE)

CS 2001 contempla:

–Cuerpo de conocimiento y su organización en asignaturas: 14 áreas


5

–Proyecto de fin de carrera

–Prácticas profesionales

–Habilidades personales

–Cuestiones institucionales

–La Informática para no informáticos –

Computing Curricula 2001 Las 14 áreas:

–Estructuras discretas

–Fundamentos de programación

–Algoritmos y complejidad

–Lenguajes de programación

–Arquitectura y organización

–Sistemas operativos

–Computación en la red

–Interacción persona-computador

–Gráficos y computación visual

–Sistemas inteligentes

–Gestión de la información

–Ingeniería del software

–Cuestiones sociales y profesionales

–Ciencia computacional

Computing Curricula 2001 Propone formas destacadas de organizar las asignaturas básicas e intermedias

Otros CC Computing Curricula 2005

–Diversificación y actualización:

Computer Science (CS 2001)

Computer Engineering (CE 2004)

Information Systems (IS 2002)

Information Technologies (IT 2006)

Software Engineering (SE 2004)


6

Revisión en el CS 2008

IS 2010

CC 2013 18 áreas:

–Las 14 anteriores más…

–Aseguramiento y seguridad de la información

–Desarrollo basado en plataforma

–Computación paralela y distribuida

–Fundamentos de sistemas

Reflexiones sobre la Informática

Paradigmas de programación

Significado de paradigma:

–Ejemplo representativo

–Un modelo Paradigma de programación:

–Evolución en el tiempo: R. Floyd daba este nombre en 1979 a técnicas de programación de bajo
nivel, métodos de diseño de algoritmos y enfoques de alto nivel en la programación

–Actualmente se utiliza para referirse al modelo de cómputo

Paradigmas de programación Paradigmas más frecuentemente aceptados:

–Imperativo

–Orientado a objetos

–Funcional

–Lógico

–Paralelo o concurrente

Programación funcional:

–Elemento básico de información: Expresión

–Elemento básico de cómputo: Función

–Estructuración de cálculos:

Distintas clases de expresión:

–Composición de funciones

–Expresión condicional

Programación imperativa:

–Elemento básico de información: Valor almacenado

–Elemento básico de cómputo: Asignación

–Estructuración de cálculos:
7

Distintas clases de instrucción:

–Secuencia

–Instrucción condicional

–Instrucción repetitiva

–Llamada a subprograma

Paradigmas más frecuentemente aceptados:

–Imperativo

–Orientado a objetos

–Funcional

–Lógico

–Paralelo o concurrente

Pensamiento computacional

 El mundo y nuestra actitud ha cambiado


 Forma de pensar específica de la Informática, que no específica de los informáticos:
–Debería ser una de las habilidades básicas, igual que leer, escribir u operar
 El pensamiento computacional ya ha influido en muchas otras disciplinas:
–Estadística
–Biología –…

No hay una definición clara del pensamiento computacional, pero éste contempla:

–Formas de resolver problemas

–Formas (o paradigmas) de modelar

–Abstracción y descomposición

–Manejo de errores y de la seguridad

–Manejo de la incertidumbre, grandes volúmenes de datos y compromisos entre objetivos diferentes

Pensamiento computacional Propuesta con éxito mediático, pero:

–Falta de rigor

–Ya había propuestas parecidas en Informática (pensamiento algorítmico, etc.)

–Se han hecho estudios posteriores para una mejor definición, p.ej. en el contexto de bachillerato

Conceptos recurrentes Ideas, preocupaciones, principios y procesos que ayudan a unificar una disciplina Propuesta
de CC1991:

–Ligadura: El proceso de que una abstracción se haga concreta al asociarle propiedades adicionales

–Complejidad de los problemas grandes: El incremento no lineal de la complejidad en función del tamaño
del problema

–Modelos conceptuales y formales: Diversas formas de formalizar, caracterizar, visualizar y pensar sobre una
idea o problema

Conceptos recurrentes Propuesta de CC1991:


8

–Coherencia y completitud: Manifestaciones concretas en la informática de los conceptos de coherencia y


completitud

–Eficiencia: Medida del coste en recursos

–Evolución: El cambio y sus implicaciones

–Niveles de abstracción: El uso de la abstracción para manejar la complejidad y estructurar sistemas

–Ordenación en el espacio: Concepto de localidad y proximidad

Conceptos recurrentes

Propuesta de CC1991:

–Ordenación en el tiempo: Concepto de tiempo en la ordenación de sucesos

–Reutilización: La capacidad de reutilizar en un nuevo contexto o situación una técnica, concepto o


componente de sistema concreto

–Seguridad: La capacidad de los sistemas de responder adecuadamente y defenderse de peticiones


inadecuadas o imprevistas

–Compromisos y consecuencias: Los compromisos y sus consecuencias, así como los efectos de elegir una
alternativa en lugar de otras

Introducción a la investigación en enseñanza de la Informática

Investigación en enseñanza de la Informática Disciplinas “añejas”:

–Philosophical Transactions, Royal Society, Inglaterra, 1665

–Didáctica de otras disciplinas: matemáticas, química, idiomas, etc.

Enseñanza de la informática, más reciente:

–ACM Special Interest Group in Computer Science Education (SIGCSE), 1970

–Revista Computer Science Education, 1988

Investigación en enseñanza de la Informática

Investigación en enseñanza de la Informática (computer science education research, CSER)

Confluencia de diversos investigadores:

–Pedagogos

–Psicólogos

–Informáticos y otros ingenieros

Diferentes:

–Tradiciones intelectuales

–Marcos conceptuales

–Métodos de investigación

Recursos:

–ACM Special Interest Group in Computer Science Education (SIGCSE):


9

ACM Transactions on Computing Education (TOCE)

ACM Inroads

Technical Symposium on Computer Science Education (SIGCSE)

Annual Conference on Innovation and Technology in Computer Science Education (ITiCSE)

International Workshop on Computer Science Education Research (ICER)

Recursos:

–IEEE Computer Society y Education Society:

IEEE Transactions on Education

IEEE Transactions on Learning Technologies

IEEE International Conference on Advanced Learning Technologies (ICALT)

IEEE Frontiers in Education Conference (FIE)

–Otros:

Computer Science Education

Computers & Education …

Áreas de investigación

Áreas destacadas:

–Contenidos innovadores

–Métodos de enseñanza

–Evaluación de los alumnos

–Comprensión de los alumnos

–Tecnología (informática) educativa –


10

Atracción y retención de alumnos

–Otras

Contenidos innovadores:

–Investigación en cómo mejorar los contenidos a transmitir a los alumnos:

¿Cómo puede organizarse una asignatura?

¿Pueden diseñarse nuevos ejemplos, ejercicios, prácticas…?

¿Qué teoría puede desarrollarse, mejorarse o integrarse en una asignatura?

Métodos de enseñanza:

–Investigación en métodos didácticos que aumenten el aprendizaje:

¿Qué ayudas pueden concebirse para ayudar a los alumnos a comprender una materia?

¿Cómo puede organizarse la didáctica de una materia?

–Transferencia de otras disciplinas (pedagogía, psicología) a CSER:

Aprendizaje activo

Estilos de aprendizaje

Evaluación de los alumnos:

–Investigación en formas de medir el aprendizaje

¿Qué formas de evaluación son más adecuadas con ciertos objetivos y en ciertos contextos?

¿Son válidas ciertas formas de evaluación?

–Evaluación automática:

Cuestiones técnicas: sistemas, etc.

Cuestiones didácticas: políticas de reenvío, plagios, etc.

–Estudios multi-institucionales

Comprensión de los alumnos:

–Investigación de las percepciones y construcciones mentales de los alumnos:

¿Qué dificultades tienen los alumnos y por qué?

¿Qué diferencias de aprendizaje hay entre unos y otros alumnos?

¿Qué diferencias de comprensión hay entre alumnos y expertos?

–El campo de estudio puede oscilar entre muy amplio o muy específico:

¿Qué dificultades tienen los alumnos para comprender la herencia en POO?

Tecnología (informática) educativa:

–Investigación en la aplicación de la informática a la educación:

Tecnología de propósito general:

plataformas de e- learning,
11

sistemas colaborativos, etc.

Tecnología específica de la programación:

entornos, tutores, etc.

–Visualización, animación y simulación:

Uso de representaciones gráficas, quizá dinámicas

¿Resulta un aprendizaje más eficaz?

¿Exigen un esfuerzo añadido al profesor o al alumno?

Atracción y retención de alumnos:

–Atracción a los estudios universitarios de Informática

–En la educación secundaria e incluso primaria:

Nuevas formas de enseñar la informática

–Mayor representación de mujeres y minorías étnicas o culturales

Otras áreas:

–Transferencia de prácticas profesionales a la universidad: Programación extrema y en pareja

–Transferencia técnica

–Proyectos útiles a la sociedad

–Proyectos de grado –…

Mi experiencia e interés

Contenidos innovadores:

–Enseñanza de la recursividad

–Metodología para programación concurrente

–Un primer curso de lenguajes de programación

Aprendizaje de la optimalidad en algoritmia

¿Estructuración y didáctica de conceptos de algoritmos?

Métodos de enseñanza:

Algoritmos voraces por descubrimiento

Aprendizaje de la optimalidad en algoritmia

Informática educativa:

–El entorno de programación funcional WinHIPE

El sistema de animación de la recursividad SRec

¿Visualización de técnicas de diseño de algoritmos?

Los sistemas de experimentación con algoritmos de optimización GreedEx y OptimEx

Comprensión de los alumnos:


12

Malentendidos de conceptos de optimización

Evaluación de los alumnos:

¿Portar OptimEx a un corrector automático en la web?

Atracción y retención de los alumnos:

¿Programación en secundaria: Scratch…?


13

Sesión 2: Contenidos y herramientas para la enseñanza de la programación


https://slideplayer.es/slide/9690247/

Objetivos de la sesión: Mostrar distintas formas de enseñar la programación:

–Contenidos

–Resultados de los alumnos

–Formas alternativas de enseñar

–Herramientas de programación

Índice

Algunos debates en enseñanza de la programación

Rendimiento de los alumnos

Enfoques alternativos de la enseñanza de la programación

Enseñanza de la informática en niveles preuniversitarios

Informática educativa

El primer lenguaje de programación

Evolución en el tiempo:

–Años 60: Algol y PL/1

–Años 70: predominio de Pascal

–Años 80: extensión de C, C++ y Ada

–Años 90: extensión de Java

–Siglo XXI: extensión de Python y quizá otros

Presencia continua pero minoritaria de algunos lenguajes: LISP, etc.

El primer lenguaje de programación

CC2001 reconoce distintos enfoques para CS1, a veces ligados a ciertos paradigmas:
14

 Cada paradigma tiene fortalezas y debilidades


 Los estudios han permitido conocer algunas limitaciones docentes de los paradigmas
 Actualmente, el debate se considera menos relevante que antes

Programación imperativa vs. programación funcional

Ventajas del paradigma funcional:

–Lenguajes más sencillos (menos construcciones lingüísticas)

–Mayor nivel de abstracción

–Mayor disciplina de programación (tipado fuerte)

–Mayor genericidad de los programas (orden superior, polimorfismo, evaluación perezosa)

Inconvenientes encontrados al paradigma funcional:

–Problemas conceptuales (definición vs. asignación, comprensión de errores de tipado)

–Problemas sintácticos (yuxtaposición)

–Problemas psicológicos (lenguajes difíciles o inútiles)

Programación procedimental vs. POO

Potenciales ventajas de POO:

–Naturalidad

–Facilidad de uso

–Potencia expresiva

Programación procedimental vs. POO

Experiencias y evaluaciones no respaldan estas ventajas:

–Sobrecarga a los alumnos con elementos de POO: Clase y objeto Método y mensaje. Sobrecarga.
Polimorfismo

El primer lenguaje de programación Debate abierto


15

Test-Driven Development

Fracaso en que los alumnos aprendan a programar en CS1:

–Conocimiento superficial del lenguaje

–Poca disciplina de programación

–Capacidad insuficiente de depuración

Especificación informal con un enunciado

Alternativa basada en métodos formales (especificación + verificación):

–Gran dificultad

–Poca motivación

Test-Driven Development: Desarrollo guiado por pruebas:

–El alumno debe proporcionar:

1.Un conjunto de casos de prueba

2.Un programa que los cumple

–Se escriben nuevos casos de prueba antes de realizar una ampliación: “Favorece el desarrollo
incremental porque siempre hay una versión ejecutable”

Adaptación de la metodología de programación extrema a la universidad

Test-Driven Development Ventajas:

–Aumenta la confianza del alumno en su programa

–Aumenta la comprensión del enunciado por el alumno

–Da una sensación de progreso

Test-Driven Development: Correctores automáticos:

–Envío del programa del alumno, ejecución e informe del resultado

–El profesor especifica pares entrada-resultado

–Los resultados del programa se comparan con lo especificado por el profesor Ventajas: –Realimentación
inmediata al alumno

–Objetividad
16

Test-Driven Development: Combinación de TDD y correctores automáticos:

–Los alumnos diseñan sus casos de prueba y los prueban antes de enviarlas

–La corrección de prácticas frecuentemente da una nota pero no va acompañada de comentarios que
ayudan al alumno a aprender

–Forma de transitar de trial-and-error a reflexion- in-action

Rendimiento de los alumnos: Estudios sobre los alumnos

Sea el problema de la media o “de la lluvia”:

–Escriba un programa que lea enteros positivos hasta leer el número 99999. Tras ver este número, debería
imprimir la media de los números leídos (sin incluir 99999)

En un estudio con alumnos de Yale, sólo 14% de los alumnos lo resolvió bien

El problema puede ser que enseñan mal en Yale…

Estudio multiinstitucional de 2001

Estudio multiinstitucional y multinacional dirigido por Michael McCracken

Prueba consistente en 3 preguntas:

–Evaluar una expresión en notación polaca inversa

–Evaluar una expresión en notación infija, sin prioridades ni paréntesis

–Evaluar una expresión en notación infija, sin prioridades

Estudio multiinstitucional de 2001 Participaron 215 alumnos de 4 universidades (y quizá 3 países):

–Sólo lo hizo bien el 21%

–Muchos no llegaron a escribir ningún código

Estudio multiinstitucional de 2004 Estudio multiinstitucional y multinacional dirigido por Raymond Lister:

–Quizá los problemas del estudio de MacCracken eran demasiado complicadas

Prueba consistente en 12 preguntas de múltiples respuestas sobre bucles y arrays

Participaron 556 alumnos de 6 universidades de 7 países:

–La nota media fue de 6 sobre 10

–El 23% sólo fue capaz de responder 4 preguntas o menos

Otro estudio en 2013, hicieron un estudio similar al de 2001


17

Prueba consistente en el segundo problema del estudio de 2001 Participaron 40 alumnos:

–Sólo 6 dieron una solución completa

–Aunque de forma incompleta, en general respondieron bien

Posibles factores para este éxito:

–Contexto de laboratorio conocido

–“Andamiaje” para la solución

–Se eliminó información superflua del enunciado

Enfoques alternativos de la enseñanza de la programación

Informática desenchufada

Se presentan conceptos de Informática sin recurrir a ordenadores ni a programar

Se presentan mediante actividades participativas y juegos basadas en tarjetas, pinturas y juego activo

Actividad a realizar individualmente o en pareja:

Ordenar un conjunto de números sin ordenador

Juegos

Los juegos permiten aprender nuevos conceptos en un ambiente distinto

Actividad a realizar individualmente o en pareja:

Realizar un juego tipo bingo para el concepto de instrucción condicional

Metáforas
18

Las metáforas se usan para explicar un concepto nuevo con ayuda de otro concepto ya conocido Conceptos
usados regularmente:

–Apuntador (puntero)

–Menú

–Ventana

–Ratón

–Árbol

–Memoria

–…

Metáforas Las metáforas presentan el riesgo de producir malentendidos:

–Variable como caja: Puede contener varios valores

–Muñecas rusas como recursividad: Sólo puede haber una llamada recursiva

–Salvar un documento como almacenar en disco: La versión anteriormente almacenada se pierde

Mapas de conceptos

Representación gráfica para organizar y representar el conocimiento:

–Conceptos: nodo, etiqueta

–Palabras de enlace: flechas

–Proposiciones

–Estructura jerárquica: de más a menos general de arriba abajo

–Contexto: preguntas de enfoque

–Ejemplos (no presentes en el mapa)

Ejemplo de mapa de conceptos (sobre los mapas de conceptos):


19

Mapas de conceptos: Construcción gradual:

1.Conceptos

2.Relaciones entre conceptos

3.Modificación o ampliación del mapa

Uso docente:

–Resumen de un tema o concepto

–Identificación de conceptos erróneos

–Evaluación de la comprensión de un tema

Puede pedirse crear un mapa vacío de la nada o de una lista de conceptos y relaciones

Aprendizaje en el estudio Dos características principales:

–Los alumnos construyen la representación verbal y visual de los conceptos que están aprendiendo

–Presentación de sus representaciones a compañeros y profesores para que las critiquen

Otras características:

–Adaptabilidad a la asignatura y profesor

–Independencia de la tecnología:

Materiales para manualidades

Sistemas de visualización
20

Entornos de programación …

Informática preuniversitaria: Razones para la enseñanza de la Informática en niveles preuniversitarios:

–Captación de alumnos:

Mejorar el conocimiento de la Informática y eliminar ideas preconcebidas y prejuicios

La Informática no es sólo para chicos, friquis y huraños

–Mejoras de habilidades:

Manejo de ordenadores

Conceptos de informática

Pensamiento computacional

Informática preuniversitaria Tres clases de Informática preuniversitaria:

–Informática educativa

–Tecnologías de la información (Informática de usuario)

–Ciencia informática Algunas aproximaciones didácticas:

–Informática desenchufada

–Entornos visuales: Scratch Alice …

Informática preuniversitaria Lenguaje y entorno de programación Scratch:

–http://scratch.mit.eduhttp://scratch.mit.edu

–Descarga Scratch 1.4: http://scratch.mit.edu/scratch_1.4/ http://scratch.mit.edu/scratch_1.4/ Instalar


Scratch y probar a programar

Informática educativa para la enseñanza de la programación

Entornos de programación Entorno, ambiente, integrated programming environment (IDE)

Entorno integrado de programación integra diversas herramientas:

–Editor

–Compilador y máquina virtual

–Depurador

–Interfaz de usuario integradora, frecuentemente visual

Entornos de programación Dos clases de alumnos:


21

–Principiantes: Necesitan más ayuda (p.ej. Greenfoot o BlueJ para POO)

–Avanzados: Pueden usar entornos profesionales (p.ej. Eclipse) Entornos para principiantes, dos objetivos
posibles:

–Aprender a programar

–Ayudan a programar como algo necesario para alcanzar otro objetivo

Entornos de programación Entornos para aprender a programar:

–Mecánica de la programación:

Expresar programas

Estructurar programas

Comprender la ejecución de programas

–Mejorar el contexto de la programación:

Aprendizaje social

Contexto motivador

Entornos de programación Entornos donde programar es para algún otro objetivo:

–Mecánica de la programación:

Facilitar la codificación

Mejorar el lenguaje de programación

–Mejorar actividades mediante programación:

Entretenimiento

Educación

Visualización y animación

 Visualizar no es igual a ver


 Visualizar (María Moliner):

–“hacer visible mediante aparatos lo que no lo es a simple vista”

–“representar mentalmente nociones abstractas”


 Ver (María Moliner):

–“percibir algo por el sentido de la vista”


22

–“entender una cosa”

 En resumen, visualizar: –“Hacer algo visible mediante cierta representación”

Visualización y animación

Elementos:

–Proceso mental

–Lenguaje gráfico

Visualización de lenguajes formales:

Sistema JFLAP:

Visualización de protocolos y redes:

–Sistema VisuSniff:
23

Visualización de programas:

–Ligado al programa fuente:

Control y estructuras de datos

Cualquier elemento estático o dinámico del lenguaje

–Dependiente del paradigma de programación

Visualización de algoritmos:

–Ligado al proceso abstracto subyacente (algoritmo)

Animación:

–Evolución (quizá controlada) de una visualización en el tiempo


24

Visualización y animación Usos docentes:

–Demostraciones y explicaciones del profesor en clase

–Prácticas:

Documentación de un algoritmo desarrollado

Refuerzo de comprensión de un algoritmo

Descubrimiento del algoritmo visualizado

Mejora del algoritmo visualizado

Comparación de varios algoritmos visualizados

–Autoestudio

Correctores de programas Clases de pruebas:

–Pruebas de caja negra: Comprueban si un programa tiene el comportamiento deseado según el enunciado,
en todas las situaciones

/–Pruebas de caja blanca: Comprueban si cada porción de código se ejecuta correctamente. Puede haber
diverso grado de cubrimiento

Correctores de programas

Correctores automáticos:

–Envío del programa del alumno, ejecución e informe del resultado


25

–El profesor especifica pares entrada-resultado

–Los resultados del programa se comparan con lo especificado por el profesor

Usos de los correctores automáticos:

–Corrección de prácticas

–Competiciones de programación (jueces)

Correctores de programas

Ventajas de los correctores:

–Rapidez en la respuesta

–Mayor objetividad y coherencia en la calificación que un profesor

–Menos carga de corrección para el profesor

–Realimentar al alumno sobre la corrección de su trabajo

Inconvenientes de los correctores:

–Alta carga de preparación de problemas para el profesor

–Criterios evaluados y su calidad

Correctores de programas

Dos roles del corrector:

–Formativo

–Sumativo

Propiedades a evaluar:

–Estáticas:

No hace falta analizar el programa, sino analizarlo

Estilo de programación

Plagios
26

–Dinámicas:

Corrección

Eficiencia

Correctores de programas Estructura de los problemas:

Correctores de programas

Mensajes que puede emitir el corrector:

–Aceptado

–Error de presentación

–Respuesta incorrecta

–Error de ejecución

–Excedido límite de salida

–Excedido límite de tiempo


27

–Excedido límite de memoria

–Error de compilación

–Programa demasiado grande

Propiedades de algoritmos:

–Corrección

–Eficiencia

–Optimalidad

Análisis de propiedades:

–Formalmente

–Experimentalmente

Experimentación con propiedades de algoritmos:

–Corrección

–Eficiencia

–Optimalidad

No sustituyen a las demostraciones formales, sino que son un complemento

Experimentación con la eficiencia

Medidas:

–Tiempo de ejecución

–Uso de memoria

–Medidas dependientes del problema o algoritmo:

Número de comparaciones en un algoritmo de ordenación

Número de llamadas en un algoritmo recursivo

Porcentaje de compresión en un algoritmo de compresión

Número de nodos en un algoritmo de vuelta atrás

Experimentación con la eficiencia

Requisitos:
28

–Generación de datos de tamaño y restricciones dados

–Ejecución de algoritmos

–Recogida de medidas

–Presentación y comparación de medidas

Experimentación con la eficiencia Sistemas:

–Librerías de lenguajes de programación (reloj)

–Sistemas de corrección automática

–Bancos de trabajo (workbench)

Experimentación con la corrección:

–Correctores automáticos

–Depuradores: Operaciones para controlar el avance de la ejecución

–Pruebas: Declaración y realización de las pruebas

–Visualización y animación: “Depurador visual”

Experimentación con la optimalidad:

–Pocos sistemas

–Características similares a las de los sistemas de experimentación con la eficiencia

Usos docentes:

–Demostraciones y explicaciones en clase de profesor

–Prácticas:

Comprobación de (sub)optimalidad de un algoritmo

Descubrimiento del comportam. de los algoritmos respecto a su optimalidad

–Autoestudio

Las colecciones de ejercicios permiten compartir material:

–Ahorro de tiempo

–Reutilización de material de calidad

Con frecuencia, están ligados a correctores automáticos


29

Cuestiones importantes:

–Contenido

–Quién contribuye

–Comunidad de uso

–Catalogación

–Mantenimiento de la colección

–Control de la colección

Cada elemento de la colección suele tener unos contenidos fijos:

–Título

–Descripción

–Etiquetas

–Comentarios –…

Sistemas para tutelar el aprendizaje de una materia

Variantes del concepto de sistema tutor:

–Libro electrónico: Sistema “pasivo” pero con gran riqueza de contenidos Pueden incluir elementos
dinámicos (simulaciones, tests, etc.)

–Sistema tutor inteligente: Da consejo (realimentación) a los alumnos para un mayor aprendizaje

Clase de realimentación en tutores inteligentes:

–Negativa: En respuesta a fallos del alumno

–Positiva: En respuesta a aciertos del alumno


30

Sesión 3: Métodos didácticos de programación


https://slideplayer.es/slide/3950641/

Objetivos de la sesión: Dar conceptos de didáctica y pedagogía:

 Terminología
 Marcos conceptuales
 Métodos activos
 Aprendizaje basado en problemas
 Aprendizaje colaborativo
 Otros métodos activos

3 Índice Taxonomías educativas:

Métodos instruccionales activos

 Aprendizaje basado en problemas


 Aprendizaje colaborativo
 Otros métodos activos

4 Taxonomías educativas

5 Taxonomía de Bloom

Grupo de pedagogos se propuso en 1948 clasificar los objetivos del aprendizaje

Propuso tres dominios:

 Cognitivo
 Afectivo
 Psicomotor

Dominio más relevante para Informática:

 Cognitivo
 Propuesta publicada en 1956

Ventajas de una clasificación de los objetivos de aprendizaje:

 Lenguaje para la comunicación de objetivos de aprendizaje


 Catálogo de posibilidades educativas
 Medio de determinar la congruencia de objetivos actividades y evaluación
 Posibilidad de creación de pruebas estandarizadas

Taxonomía de Bloom
31

Niveles de grado creciente de pericia del alumno

Cada nivel asume la competencia de alumno en los niveles inferiores

Seis niveles:

 Conocimiento
 Comprensión
 Aplicación
 Análisis
 Síntesis
 Evaluación

Taxonomía de Bloom. Nivel de conocimiento (o recuerdo):

 El alumno es capaz de reconocer o recordar información sin necesidad de ningún tipo de comprensión o
razonamiento sobre su contenido
 Tareas que pueden realizarse para alcanzar este nivel: Nombrar, enumerar, formular, reconocer, identificar,
ordenar, etiquetar

Ejemplos de tareas:

 Da el nombre de 3 algoritmos de ordenación


 Relaciona los siguientes algoritmos y órdenes de complejidad

Taxonomía de Bloom Nivel de comprensión: Ejemplos de tareas:

 El alumno es capaz de comprender y explicar el significado de la información recibida


 Tareas que pueden realizarse para alcanzar este nivel: Explicar, reformular, traducir, resumir, predecir

Ejemplos de tareas:

Explica cómo funciona el algoritmo de Boyer-Moore

Implementa el algoritmo de shellsort

Predí el valor de las variables de salida al final de cada iteración de un bucle, suponiendo que las variables de
entrada tienen los siguientes valores

Taxonomía de Bloom Nivel de aplicación:

 El alumno es capaz de seleccionar y usar datos y métodos para realizar una cierta tarea
 Tareas que pueden realizarse para alcanzar este nivel: Aplicar, usar, construir, hacer, desarrollar, construir,
implementar

Ejemplos de tareas:
32

Implementa un algoritmo que ordene una lista encadenada de cadenas de caracteres mediante inserción
directa

Aplica el algoritmo de búsqueda en profundidad para comprobar si un grafo es conexo

Calcula la complejidad del algoritmo mergesort

Taxonomía de Bloom Nivel de análisis:

 El alumno es capaz de diferenciar, clasificar y relacionar hipótesis y evidencias de la información dada, así
como descomponer un problema en partes
 Tareas que pueden realizarse para alcanzar este nivel: Analizar, comparar, clasificar, dividir, simplificar,
depurar

Ejemplos de tareas:

Depura el siguiente programa dada su especificación y un mensaje de error

Dados una especificación y programa, modifica éste para que satisfaga esta especificación ligeramente
modificada

Taxonomía de Bloom Nivel de síntesis:

 El alumno es capaz de generalizar ideas y aplicarla para resolver un problema nuevo


 Tareas que pueden realizarse para alcanzar este nivel: Construir, hacer, diseñar, planificar, resolver

Ejemplos de tareas:

Diseña e implementa un tipo abstracto de datos nuevo

Diseña las estructuras de datos y algoritmos necesarios para programar un ascensor

Taxonomía de Bloom Nivel de evaluación:

 El alumno es capaz de comparar, criticar y evaluar métodos o soluciones para resolver un problema o para
elegir el mejor
 Tareas que pueden realizarse para alcanzar este nivel: Comparar, juzgar, justificar, evaluar, medir

Ejemplos de tareas:

Compara los árboles equilibrados y tablas de dispersión como métodos para implementar un diccionario

Compara varios algoritmos de ordenación, identificando los pros y contras de cada uno

La taxonomía de Bloom se ha usado en diversas asignaturas, incluyendo programación. Usos más frecuentes:

 Diseño o evaluación de una asignatura


 Medir el nivel de aprendizaje alcanzado en una asignatura
33

 Criterio para el diseño de herramientas software

Ejemplos de dificultad de uso de la taxonomía de Bloom:

“Compara varios algoritmos de ordenación, identificando los pros y contras de cada uno”: Nivel de
¿comprensión, aplicación, análisis, evaluación?

Taxonomía de Bloom Razones para dicha dificultad:

 La misma terminología para ciertos niveles de Bloom y ciertas actividades de programación: “Analiza la
complejidad de este algoritmo” puede estar al nivel de aplicación o síntesis

La programación tiene varios niveles de discurso:

Materia de programación en estudio

Dominio del problema

Lenguaje de programación

Herramienta de programación

 Hay que fijar claramente el contexto:

Implementar un algoritmo en un lenguaje puede estar al nivel de comprensión o aplicación, según se


conozca o no el lenguaje

Taxonomía revisada de Bloom

Objetivos de aprendizaje suelen constar de:

Materia (nombre)

Descripción de qué hacer con la materia (verbo)

División en dos dimensiones

Jerarquía menos rígida

Dimensión de conocimiento:

4 categorías (y 11 subcategorías):

Conocimiento factual

Conocimiento conceptual

Conocimiento procedimental

Conocimiento metacognitivo
34

Taxonomía revisada de Bloom. Dimensión del proceso cognitivo:

6 categorías (19 subcategorías):

Recordar

Comprender

Aplicar

Analizar

Evaluar

Crear

Taxonomía revisada de Bloom. La tabla taxonómica:

21 Tareas didácticas

Pueden diseñarse a partir de las subcategorías de la dimensión del proceso cognitivo

Categoría recordar:

o Reconocer
o Recordar

Categoría comprender:

o Interpretar
o Ejemplificar
o Clasificar
o Resumir
o Inferir
o Comparar
35

o Explicar

Categoría aplicar:

o Ejecutar
o Implementar
o Categoría analizar:
o Diferenciar
o Organizar
o Atribuir

Categoría evaluar:

o Comprobar
o Juzgar

Categoría crear:

o Generar
o Planear
o Producir

Actividades que debe realizar un alumno para aprender algo

Tipos en orden creciente de dificultad:

o Tareas factuales
o Tareas de comprensión
o Tarea de depuración
o Tarea de predicción
o Tarea de dar un ejemplo
o Tarea de dar un modelo
o Tarea de evaluar
o Tarea de satisfacer una especificación
o Tarea de resolver un problema
o Tarea de reflexionar

¿Puedes concebir una actividad de cada clase para tu asignatura?

Taxonomía SOLO Structure of Observed Learning Outcome (SOLO)

Cinco niveles:

Preestructural: El alumno muestra concepciones erróneas destacadas o usa conceptos irrelevantes


36

Uniestructural: El alumno comprende parte del problema, pero no todo

Multiestructural: El alumno comprende la mayor parte del problema, pero no su sentido

Relacional: El alumno integra las partes del problema en una estructura coherente, que usa para
resolver el problema

“Resumen ampliado”: La respuesta del alumno va más allá de problema planteado y lo sitúa en un
contexto más amplio

Métodos instruccionales activos

Oigo y olvido,

veo y recuerdo,

hago y entiendo

(Confucio)

Formas tradicionales de instrucción

Secuenciamiento: Dependencias entre conceptos. Niveles de la taxonomía de Bloom

Espaciado: Espaciar la presentación de algún concepto en un periodo de tiempo

Espiralado: Visitar temas estudiados previamente y desarrollarlos en un nivel intelectual más alto

Cualquier método instruccional que implica a los alumnos en el proceso de aprendizaje:

Les exige participar activamente y pensar sobre lo que están haciendo

Suele compararse con las clases presenciales en las que pasivamente reciben información del profesor

Aprendizaje basado en problemas Problem-Based Learning (PBL)

 Se presentan problemas al comienzo de la instrucción y se utilizan como causa y contexto del aprendizaje:
o Para asignaturas básicas conviene dar problemas estructurados
o Para asignaturas avanzadas pueden ser problemas ambiguos o incompletos
 Los alumnos suelen trabajar en pequeños grupo y el profesor es un orientador

Ventajas del PBL

o Se obliga a los alumnos a recopilar información, organizarla y evaluarla para formular una solución
o Los alumnos aprenden a ser flexibles
o Los alumnos desarrollan habilidades necesarias en la vida re (p.ej. formación continua)

Pasos del PBL:


37

 Proporcionar el problema
 Dar alguna guía a los alumnos
 Ayudar a los alumnos
 Publicar el trabajo de los alumnos
 Evaluar el trabajo e informar a los alumnos

Aprendizaje basado en problemas. Tipos de problemas:

El tipo de problema depende de:

 Las características de la materia


 El nivel del alumno
 La experiencia del profesor

Aprendizaje basado en problemas. Organización de la asignatura:

Aprendizaje con problemas:

 Los problemas se usan para motivar los conceptos


 Los alumnos deben investigar los detalles de los conceptos
 Los alumnos pueden realizar una práctica para evaluar su comprensión

Aprendizaje guiado basado en problemas:

 Se usan las clases para introducir conceptos en instantes adecuados

Aprendizaje puro basado en problemas:

 No hay ninguna presentación formal de conceptos

Instrucción entre pares

Se usan clickers para que los alumnos voten a preguntas de múltiples respuestas

En cada clase hay varias series votación-discusión-revotación, donde cada serie:


38

o Se plantea una pregunta sobre un concepto, que cada alumno reflexiona y vota
individualmente
o Los alumnos se reúnen en pequeños grupos, discuten y vuelven a votar
o El profesor utiliza los resultados de ambas votaciones para discutir en clase de conceptos
erróneos

Se puede acompañar de:

Minitests a rellenar antes de la clase

Miniexposiciones en el aula

Aprendizaje por descubrimiento

Método instruccional en el que los alumnos hacen sus propios descubrimientos sobre ciertos fenómenos

Forma de organización:

 Los alumnos dedican un tiempo sustancial a trabajo exploratorio y no guiado


 Pueden plantear dudas al profesor
 Se dan opciones concretas a los alumnos para trabajar
 En el aula se resumen los hallazgos realizados, que sirven para responder juntos a algunas preguntas
clave y el profesor formaliza los conceptos

Aprendizaje basado en proyectos

También llamado PBL (Project-…)

Ventajas:

 Oportunidad para los alumnos de reunir y aplicar el conocimiento de una asignatura (o grado)
 Reproduce la forma de trabajar en la empresa

Inconvenientes:

 Caro: exige supervisión y recursos


 Complejo: exige conocimientos de muchas clases
 Muy variable: en un entorno de continua evolución tecnológica

Aprendizaje basado en proyectos

Variante: Proyectos con utilidad social:


39

 Elecciones
 Contaminación
 Respuestas a accidentes
 etc.

¿Crees que podrías rediseñar tu asignatura total o parcialmente para incorporar algún método activo:

 Aprendizaje basado en problemas


 Instrucción entre pares
 Aprendizaje por descubrimiento
 Aprendizaje basado en proyectos

Aprendizaje colaborativo

Cualquier método instruccional en el que los alumnos trabajan juntos en pequeños grupos con un objetivo
común

Cooperación en lugar de competición

Aprendizaje cooperativo:

Caso especial de aprendizaje colaborativo en el que cada alumno es evaluado por separado

Características deseables:

 Objetivos individuales
 Evaluación individual
 Trabajo equilibrado de los miembros del grupo
 Grupos heterogéneos
 Reglas de dinámica de grupo y habilidades colaborativas
 Autoevaluación final del grupo

Aprendizaje cooperativo

Actividad “cruzada”:

Adecuada para recoger y compartir información

Proceso:

Los alumnos se dividen en pequeños grupos, de forma que cada grupo trabaja para hacerse
“expertos” en cierto tema
40

Los alumnos se reagrupan, de forma que hay un experto de cada tema en cada nuevo grupo

Dentro de cada grupo, el experto de cada tema va asumiendo sucesivamente el papel de profesor
del resto

Programación en pareja

Dos programadores trabajan juntos:

El “conductor” maneja el teclado y se encarga de los detalles de bajo nivel de la tarea, como sintaxis

El “navegador” está encargado de las cuestiones de alto nivel, como diseño

El navegador también observa y hace sugerencias

Se intercambian los papeles periódicamente

Metodología que proviene de la industria (programación extrema, XP)

Otros métodos activos

Estilos de aprendizaje

Cada persona tendría unas preferencias de aprendizaje

Modelo de aprendizaje de Felder, 4 dimensiones:

Ciclo de aprendizaje de Kolb

Corresponde a los estilos de aprendizaje activo-reflexivo y sensitivo-intuitivo


41

Si se empieza en ¿por qué? y acaba en ¿qué sí? podría atenderse a todos los alumnos
42

Sesión 4: Investigación sobre los alumnos


Presentar las dificultades de los alumnos:

–Comprender la dificultad del aprendizaje

–Comprender cómo se va construyendo el conocimiento al aprender: Sobre todo, al aprender programación

–Conocer otras cuestiones que afectan a los alumnos

Psicología del aprendizaje

Expertos vs. principiantes

Todos somos expertos en unas áreas y principiantes en otras

Hay diferencias cognitivas entre expertos y principiantes de cualquier área

Los principiantes:

–No tienen modelos mentales viables

–Tienen conocimiento frágil: Lo conocen pero no saben aplicarlo cuando lo necesitan

–Ante un problema, crean representaciones concretas basadas en el código

–Sobre el uso de estrategias de resolución de problemas:

Las desatienden

Usan estrategias generales, en lugar de específicas del área

Los expertos:

–Tienen muchos modelos mentales y los usan y mezclan como les conviene

–Tienen conocimiento profundo, jerarquizado y con muchas relaciones

–Reconocen problemas que tienen una solución similar

–Ante un problema, crean representaciones abstractas basadas en el propósito del código

–Trabajan de forma distinta ante problemas conocidos (más eficientemente) que desconocidos (utilizan
técnicas generales de resolución de problemas)

Son necesarios unos 10 años aprox. para convertir un principiante en un experto:

–Un alumno de grado sólo será un principiante avanzado, en disposición de ser experto

Hay varias etapas según Dreyfuss y Dreyfuss:

1.Principiante
43

2.Principiante avanzado

3.Competente consciente

4.Competente inconsciente

5.Experto

Proceso de adquisición de competencia:

1.Se parte de estrategias generales de resolución de problemas y de conocimiento básico del dominio

2.Se combinan estrategia generales y especificas del dominio en una sola regla

3.Aumenta la habilidad con la práctica

Los expertos pueden saber lo mismo que un principiante avanzado sobre el lenguaje de programación pero
saben mucho más sobre el dominio y resolución de problemas

Algunas consecuencias didácticas:

–Aprender un concepto cada vez

–Proporcionar esquemas o patrones de resolución de problemas

–Practicar mucho

Teorías de la educación

Una teoría de la educación consta de:

–Ontología: Describe la realidad

–Epistemología: Caracteriza el conocimiento

–Metodología: Explica cómo puede obtenerse el conocimiento

–Pedagogía: Presenta métodos de enseñanza basados en la metodología

Cognitivismo:

–Ontología: Hay una realidad

–Epistemología: Puede descubrirse la verdad mediante la experimentación y la lógica

–Metodología: La mente es una hoja en blanco que puede llenarse con conocimiento

–Pedagogía: La forma principal de transmisión del conocimiento son las clases y los libros

Constructivismo:

–Ontología: La realidad es en todo caso irrelevante porque no podemos conocer cómo es realmente
44

–Epistemología: La verdad es inalcanzable y falible

–Metodología: El conocimiento se adquiere construyendo nuevas estructuras cognitivas a partir de las


existentes. Cada alumno construirá su conocimiento de forma distinta

–Pedagogía: La tarea del profesor es guiar al alumno al construir su propio conocimiento. La comunicación
entre ambos mostrará si su conocimiento es viable

–En resumen: El aprendiz construye nuevo conocimiento a partir de su conocimiento anterior La


construcción es gradual, a partir de sus estructuras mentales previas y de la información y realimentación
que reciba

Modelos

 Modelo conceptual: –Representación del conocimiento, construida por el profesor para transmitirlo a los
alumnos –Un modelo conceptual debe ser preciso, completo y coherente
 Modelo mental: –La representación que un alumno construye de un modelo conceptual, es decir, cómo lo
entiende –Un modelo mental suele ser incompleto y ambiguo

Ejemplo de modelos conceptuales:

–En general, pocos tienen un modelo claro y eficaz de qué es una computadora

–Máquina imaginaria (notional machine): Es una computadora idealizada y conceptual cuyas propiedades se
deducen de las construcciones del lenguaje de programación utilizado Su objetivo es proporcionar una base
para comprender el comportamiento de los programas en ejecución No suele explicarse explícitamente, sino
que se deduce de las explicación de las construcciones del lenguaje de programación

Modelos Visualización y animación:

–Las representaciones gráficas se utilizan como modelos conceptuales

–Sirven como vocabulario

–Los novatos necesitan una notación gráfica mínima

Problemas con modelos conceptuales:

–Si no son lo suficientemente precisos, completos o coherentes

–Si son demasiado complejos

–Si no son lo suficientemente generales

Modelos mentales:
45

–Dos alumnos construirán dos modelos mentales distintos ante el mismo modelo conceptual y su instrucción

–No hablamos de modelos mentales correctos sino viables o inviables: Un modelo mental viable permite
comprender los fenómenos en observación

–Si el aprendizaje no se basa en la experiencia, hay pocas posibilidades de modificar lo que se sabe

–Al basarse en su experiencia, los alumnos creen que su conocimiento es correcto

–El conocimiento se construye en un entorno social

–Conviene que haya una interacción entre el conocimiento de la ciencia y la tecnología con la sociedad

Modelos Actitudes comunes en ausencia de modelos mentales viables:

–Uso de “prueba y error” como técnica de resolución de problemas: Opuesto a “reflexión en acción”

–Actitud antropomórfica frente al ordenador: “Me lo hizo de nuevo” “Eso no ha estado bien”

Errores o fallos:

–Una respuesta de un alumno puede ser o no correcta

–Una respuesta incorrecta indica en muchos casos una falta de comprensión del alumno, es decir, un modelo
mental inviable

–Una respuesta correcta no siempre obedece a comprensión

Modelos mentales a tener en cuenta:

–Preconcepción (idea previa): Conocimiento previo del alumno antes de la instrucción de un modelo
conceptual

–Malconcepción (idea errónea): Aspecto clave de un modelo mental que dificulta o imposibilita su viabilidad

Las preconcepciones:

–Deben realizarse actividades docentes para combatirlas explícitamente

Malconcepciones

Las malconcepciones:

–No son un síntoma de que los alumnos no tienen interés, sino de una comprensión deficiente

–Ante un concepto, suele haber un número finito de malconcepciones

–Son legítimas, pero deben eliminarse

Actuación:
46

1.Detectar la existencia de malconcepciones e identificarlas

2.Actuar para ayudar a los alumnos a mejorar su comprensión o a eliminar las malconcepciones

Dificultades de los profesores para detectar malconcepciones:

–Comprender las dificultades de comprensión de los alumnos (cuando el profesor los percibe como
conceptos claros)

–Bajar el nivel de comprensión al nivel del alumno (cuando su nivel es más avanzado)

–“Meterse en la cabeza” del alumno

Algunas formas de identificar malconcepciones:

–Dudas repetidas de los alumnos: Repetir su pregunta y que la contesten ellos, para fomentar la reflexión
Reflexionar sobre las dudas, teniendo en cuenta el contexto o cualquier otro indicio disponible

–Ejercicios de diagnóstico

–Análisis cualitativo de resultados de los alumnos (exámenes, prácticas, etc.)

Malconcepciones Algunos consejos:

–Rebuscar en nuestro conocimiento de expertos para encontrar el conocimiento previo necesario para
construir un modelo conceptual viable

–Construir y refinar modelos conceptuales para cada tema o artefacto

–Diseñar o utilizar herramientas de software para presentar modelos conceptuales: Herramientas de


visualización

–Tener en cuenta el tiempo necesario en una asignatura para: Aprender a usar herramientas, explicar los
modelos conceptuales

Malconcepciones relacionadas con conocimientos previos

El idioma Los alumnos transfieren conocimiento del idioma al lenguaje de programación:

–while sugiere una comprobación que se está realizando continuamente, cuando en programación sólo se
hace una vez por iteración: Pueden suponer que el bucle acaba en cuanto no se cumple la condición

–if también puede sugerir que se está esperando a que se cumpla una condición: La parte then se ejecuta en
cuanto se cumple la condición

Los alumnos transfieren conocimiento del idioma al lenguaje de programación

–En Prolog se ha detectado que los alumnos utilizan un razonamiento similar a nuestro lenguaje en
situaciones familiares:
47

Dado padre(abraham,isaac).

esperan que haya respuesta a la pregunta

?- padre(abraham).

Conocimientos previos Notación matemática:

–Confusión con el operador ‘=‘: a = a+1; Otros lenguajes de programación:

–Esperan comportamientos similares entre lenguajes: Comparar estructuras de datos mediante equal? en
Scheme y mediante == en C

Falta de conocimientos previos

Nunca hay una correspondencia exacta entre el modelo a explicar y su analogía, lo cual permite sacar conclusiones
erróneas:

–Si “una variable es como una caja”, una variable puede contener varios valores

Conceptos de optimización en algoritmos:

–El concepto de “más óptimo”

–Puede haber varios algoritmos óptimos para un mismo problema

–Puede haber varias soluciones óptimas para unos mismos datos

–Un algoritmo óptimo debe dar el mejor valor para cualquier dato de entrada

Actitudes nocivas

Tendencia a probar una hipótesis con datos que la confirman en lugar de refutarla:

–Problema en pruebas de programas

–Problema para el diseño de algoritmos de optimización

Tendencia de los aprendices a evitar la complejidad, frente a la tendencia de los expertos a afrontarla

Sobre-generalización a partir de ejemplos

Los ejemplos tienen gran influencia en cómo entienden los alumnos:

–Los argumentos de una función siempre deben ir entre paréntesis

–Dos clases no pueden tener métodos con el mismo identificador

–El operador punto sólo puede aplicarse a métodos, no a variables de instancia o de clase

–Caso experimentado por mí


48

Malconcepciones relacionadas con el modelo computacional

Modelo computacional erróneo

Los lenguajes de alto nivel ocultan muchos detalles de su ejecución:

–Las abstracciones que proporcionan resultan misteriosas a los alumnos

Ejemplos:

–Instrucciones de entrada

–Reserva de memoria en Java

–Inicialización de variables en Java

–Modelo de ejecución de Prolog

Modificación de reglas correctas

Modificación por ampliación o restricción de una regla correcta:

–En Pascal,

a partir de: “si quieres que un procedimiento cambie el valor de una variable, utiliza un
parámetro var ”

el alumno puede deducir: “aunque se modifique el valor de una variable global dentro de un
procedimiento, el nuevo valor no está disponible para el programa principal porque el valor
no se ha propagado con un parámetro var ”

Malconcepciones de la recursividad

Modelos mentales identificados en un estudio (Götschi et al., 2003):

–De copias

–De bucle

–Activo

–De paso

–De valor devuelto

–Mágico o sintáctico

–Algebraico

–Raro
49

Cada modelo mental reunía un conjunto de características sobre:

–“Flujo activo”

–Caso base –“Flujo pasivo”

–Si “trazan” la ejecución o hacen una evaluación directa

Realizaron intervenciones docentes en cursos siguientes, mejorando los resultados

Motivación y actitudes

Motivación Hipótesis: alumnos más motivados, rendirán más en sus estudios:

–Especialmente en materias que requieren práctica continua, como programación

Conocimiento de la motivación de los alumnos permite organizar mejor la docencia

Posibles tipos de motivación:

–Interés en la materia

–Valores y creencias del alumno

–Agradar a la familia

–Utilidad de la materia

–Pretensiones económicas o académicas

–Recompensas que espera obtener

Tipos más generales de motivación:

–Intrínseca: Interés en la materia en sí –Extrínseca: La carrera y las recompensas que obtendrá si la acaba

–Social: Deseo de agradar a otras personas cuya opinión valora

–Logro personal: Tener buen rendimiento para satisfacción personal

–Sin motivación

Encuesta en alumnos de 1º curso de informática en dos universidades inglesas:

–Dos preguntas abiertas y una cerrada

–Recogidas 365 respuestas

Una palabra que describa la razón de que estudies este grado:

1.Pretensión futura: 39’95%


50

2.Aprender: 36’14% 3

.Grado: 8’15%

4.Disfrutar: 6’25%

5.Otros (ir a la universidad, son los siguientes estudios, etc.)

Una palabra que describa la razón de que estudies programación:

1.Materia obligatoria: 48’08%

2.Aprender: 20’05%

3.Contenidos: 14’29%

4.Utilidad: 8’79%

5.Disfrute: 4’67%

6.No sabe: 4’12%

Elige una frase que resuma tu actitud para completar tus estudios:

1.Propia satisfacción: 49’59%

2.Obtener buen trabajo: 47’12%

3.No sabe: 2’47%

4.Otras: 0’82%

Faltaba la opción de “por la propia materia”

Motivación, algunas consecuencias docentes:

–Los alumnos no parecen darse cuenta de la utilidad de la programación para trabajo

–Poco interés en la programación en sí

–Poca motivación de la mitad de los alumnos si no perciben utilidad laboral

–La motivación puede variar, según conocen más de informática y de las posibles salidas laborales

Actitudes

En cualquier profesión, no son importantes sólo los conocimientos y habilidades, sino las actitudes y valores:

–Relacionado con un código ético, aunque no es lo mismo

El dominio afectivo proclamado por Bloom distingue 5 niveles:


51

–El alumno es consciente de la materia y está deseando aprenderla

–Desde resignación hasta satisfacción por hacer lo que le piden

–El alumno da valor y asume un compromiso con la materia

–El alumno crea un conjunto de valores para responder a las situaciones

–El alumno ha interiorizado completamente los valores

Actitudes Es difícil medir las actitudes por varias razones:

–No puede preguntarse directamente sin exponerse a que los alumnos den la respuesta que se espera

–Pueden ser positivas o negativas, mientras que los conocimientos siempre son positivos

–Cambian a un ritmo impredecible y variable con cada persona

Actitudes

Muchas actitudes son generales:

–Compromiso con el organismo para el que trabaja

Algunas actitudes más específicas de la Informática:

–Compromiso con la calidad

–Compromiso ético, profesional y social

–Asumir el cambio y por tanto la formación continua

–Adaptabilidad de las soluciones a las restricciones tecnológicas

Actitudes

Primero asumir las actitudes, luego desarrollarlas e interiorizarlas

Asignaturas:

–Abuso de otros miembros de equipo, plagio

–Calidad de lo entregado: pruebas, documentación, etc.

–Entrega en plazo

–Informe personal

Proyectos:

–Informe de supervisor
52

–Informe de cliente

Captación y retención de alumnas

Captación de alumnas. Razones para captar más alumnas en los estudios de Informática:

–Es justo

–Proporciona más riqueza

Formas de fomentar la captación:

–Mayor relación con los colegios e institutos

–Mayor proyección y visibilidad de las mujeres informáticas

Retención de alumnas. Razones del abandono de los estudios de Informática por alumnas:

–Aislamiento

–Experiencias negativas en los laboratorios

–Ambiente en la clase

–Incapacidad de apreciar la relevancia de cursos básicos muy teóricos


53

Sesión 5: enseñanza de los algoritmos


https://slideplayer.es/slide/5930826/

Objetivos de la sesión 5 Ilustrar muchos de los temas de investigación mediante asignaturas de algoritmos:

–Taxonomías educativas y alineamiento

–Informática educativa

–Modelos conceptuales

–Modelos mentales (malentendidos)

Índice

Planteamiento de la asignatura

Objetivos de aprendizaje

Visualización de la recursividad

Instrucción de los algoritmos voraces

Asignatura de algoritmos avanzados

Asignatura de programación avanzada

Planteamiento de la asignatura

Tres planteamientos de una asignatura de algoritmos:

–Basado en estructuras de datos: Algoritmos de manipulación

–Basado en problemas: Ordenación Grafos …

–Basado en técnicas de diseño: Divide y vencerás Vuelta atrás …

Contenidos comunes:

–Análisis de complejidad: En profundidad variable

–Algunos algoritmos de ordenación: Por mezcla Rápida

–Algunos algoritmos de grafos: Kruskal y Prim Dijsktra Floyd

Objetivos de aprendizaje

Ejemplo de una asignatura “Diseño y Análisis de Algoritmos”,

3º curso Temario:
54

1.Introducción

2.Análisis de eficiencia

3.Optimización de algoritmos

4.Introducción a la técnicas de diseño de algoritmos

5.Divide y vencerás

6.Algoritmos voraces

7.Vuelta atrás

Objetivos generales de la asignatura:

Objetivos del tema 1 (introducción):

Objetivos del tema 2 (eficiencia):


55

Objetivos del tema 3 (optimización):

Objetivos del tema 4 (introducción a las técnicas de diseño):


56

Objetivos del tema 5 (divide y vencerás):

Objetivos del tema 6 (algoritmos voraces):

Objetivos del tema 7 (vuelta atrás):

Algunas notas:

–No se espera alcanzar el nivel de creación en ningún tema, sino el de aplicación:

Soluciones generales para ecuaciones recurrentes (varias, divide y vencerás)

Esquemas de código (eliminación de recursividad lineal, memorización, divide y vencerás, vuelta


atrás para una solución, todas y óptima)

Esquemas de árbol de búsqueda (permutaciones, subconjunto)

Metodologías de desarrollo (eliminación de la recursividad múltiple redundante)

Explicitar otras decisiones de diseño (estructuras de datos auxiliares y comprobaciones en vuelta


atrás)
57

–No son obligatorias todas las prácticas

–Repensar el tema de algoritmos voraces: Aburrido

–Uso de software educativo: Sistema de visualización de la recursividad Srec y Sistema de


experimentación con algoritmos voraces GreedEx

Evaluación

Cinco prácticas:

1.Introducción

2.Eliminación de recursividad redundante

3.Divide y vencerás

4.Experimentación con algoritmos voraces

5.Vuelta atrás

Examen final
58

Slides: Didattica della programmazione

Michael Lodi, Renzo Davoli

Aprender a programar es difícil

Los cursos de Introducción a la Informática (CS1) en todo el mundo tienen muchos suspensos, muchos
abandonos y resultados más bajos que otros cursos.

- Algunos sostienen que existe el llamado gen geek, lo que demuestra que las distribuciones de las notas son
bimodales. No está probado y es muy discutido por los expertos.

- Los objetivos típicos de un curso de programación ("escribir un programa que...") se encuentran en lo alto
de las taxonomías, por lo que requieren objetivos cognitivos elevados (aplicación, análisis, síntesis,
evaluación)

Tres tipos de conocimiento [McGill y Volet, 1997]

- Conocimiento sintáctico: conocimiento de las estructuras lingüísticas de un lenguaje de programación

- Conocimiento conceptual: conocimiento de la "dinámica" del programa en ejecución, es decir,


conocimiento de cómo funcionan las construcciones y determinan la ejecución del código (a menudo
denominado "máquina nocional")

- Conocimiento estratégico: capacidad de aplicar los conocimientos sintácticos y conceptuales para resolver
nuevos problemas o alcanzar los objetivos propios.

Problemas

- La sintaxis es sólo un problema inicial y, sin embargo, la mayoría de los libros de texto se centran sólo (o
casi sólo) en el conocimiento sintáctico

- No siempre se enseña a los alumnos "lo que ocurre en el momento de la ejecución".

- Casi nunca se enseña a los estudiantes "cómo" abordar un problema de programación

Almacenes de memoria

desarrollado originalmente por [Atkinson y Shiffrin, 1968].

Este modelo tiene tres "almacenes" por los que pasan los estímulos sensoriales.
59

Almacenes de memoria

- Registro sensorial: vinculado al órgano sensorial correspondiente (la información permanece en fracciones
de segundo)

- Memoria a corto plazo o memoria de trabajo: limitada en el espacio (4±1? 7±2?) y en el tiempo (≈ 10s,
puede aumentar por repetición). Tránsito bidireccional entre el entorno y la memoria a largo plazo. Aquí es
donde tiene lugar la manipulación activa (y consciente) de la información.

- Memoria a largo plazo: capacidad potencialmente ilimitada, almacena grandes cantidades de información
durante periodos de tiempo muy largos. No somos conscientes de estos recuerdos: para utilizarlos tenemos
que recuperarlos trayéndolos a la memoria de trabajo.

Almacenes de memoria

¿Cómo es posible que el hombre sea capaz de realizar actividades mentales complejas con una memoria de
trabajo tan limitada? Utilizando el chunking y la automatización.

Por tanto, aprender algo significa almacenarlo en la memoria a largo plazo. Sin embargo, para acceder a ella,
debemos pasar por el "cuello de botella" de la memoria de trabajo: para ello, debemos ser buenos
procesando la información en grandes grupos y de forma automática.

Esquemas

- Estructura mental que contiene conocimientos conceptuales genéricos.

- Por ejemplo, qué es una casa; acciones necesarias para comer en un restaurante / tomar un avión;
encontrar a en una ecuación del tipo a/b = c, con a, b no= 0,c cualquiera

- No dejarse abrumar por los detalles

- De hecho, un patrón ocupa un solo trozo

- Experto: no tanto (no sólo) la inteligencia o el talento o la memoria de trabajo, sino una amplísima batería
de esquemas jerárquicos, vinculados, abstractos
60

- Los expertos dedican más tiempo a analizar el problema en profundidad, para utilizar los esquemas
adecuados

Carga cognitiva

- Se aprende mejor cuando la memoria de trabajo no está ni demasiado llena ni demasiado vacía, y la mayor
parte se utiliza para la formación de esquemas.

- La carga cognitiva está relacionada con la cantidad de memoria de trabajo utilizada.

- Diferentes tipos:

- Intrínseca: la impuesta por la tarea específica

- Relevante: no es indispensable para la solución de la tarea, pero se utiliza para crear o modificar
esquemas, reflexionando sobre lo que se está aprendiendo.

- Extrínseco: no es esencial para la tarea y no es necesario para el aprendizaje (por ejemplo, datos
innecesarios, charla de fondo, etc.).

- Para el aprendizaje: alta carga cognitiva relevante

- Si la carga cognitiva intrínseca es demasiado alta, no habrá espacio para el aprendizaje.

- Si la carga cognitiva intrínseca es demasiado baja, puede producirse aburrimiento o falta de motivación.

- Reducir la carga cognitiva de las tareas muy difíciles (por ejemplo, escribir un programa): veremos algunas
técnicas relacionadas con la didáctica de la programación

Hoy está lloviendo...

Escriba un programa (en el lenguaje que le resulte más espontáneo) que pida como entrada al
usuario números enteros no negativos, que representen medidas de la cantidad diaria de lluvia.
Cuando el usuario introduce el valor 99999, el programa imprime la media de los números recibidos
antes de ese valor. Si el usuario introduce números negativos, éstos se ignoran. Hay que tener en
cuenta los casos extremos. No utilice estructuras de datos complejas (por ejemplo, listas, matrices,
etc.).

Hoy está lloviendo...

Escribe un programa (en el lenguaje que te resulte más natural) que pida al usuario la entrada de
enteros no negativos, que representen medidas de la cantidad de lluvia diaria. Cuando el usuario
introduce el valor 99999, el programa imprime la media de los números recibidos antes de ese valor.
Si el usuario introduce números negativos, éstos se ignoran. Hay que tener en cuenta los casos
extremos. No utilice estructuras de datos complejas (por ejemplo, listas, matrices, etc.).
61

Problema de la lluvia -Desarrollado en 1986 por Elliot Soloway

Patrones y carga cognitiva

- Un novato necesita un montón de patrones (inicializar un acumulador para sumar, inicializar un


contador, calcular la media (comprobando que el denominador no es negativo), actualizar el valor de
entrada (en Python: 2 veces, cast to integer), en C: importar la librería para i/o, escribir variables,
cast to float, etc etc).

- Un experto podría tener un trozo como "calcular la media de los valores tomados como entrada".
62

- Punto ciego del experto: ya no podemos "descomponer" en patrones más simples, por lo que no
nos damos cuenta de la alta carga cognitiva.

Modelos mentales

- Estructuras mentales que representan ciertos aspectos del entorno de una persona

- Cosas" concretas: yo mismo, mi novia, el entorno de edición con el que estoy componiendo las
diapositivas, además de objetos genéricos

- Explicar cómo funciona un "objeto" en diferentes situaciones, hacer predicciones

- Son "falibles

- Son ejecutables: puedo realizar una simulación mental, en diferentes contextos y con diferentes
variables - La simulación utiliza la memoria de trabajo (no puedo involucrar demasiados estados o
variables)

- Más adelante veremos el "modelo mental" de la máquina que ejecuta un determinado programa.

Conceptos erróneos

Diapositivas abajo traducidas y resumidas de [Sorva, 2018], tratamos principalmente la programación


procedimental imperativa (alusiones a objetos).

- Creer que se sabe (cómo funciona algo), pero en realidad se ha "malinterpretado", es decir, se tiene
una interpretación perjudicial o indeseable de ello

- El ordenador no "negocia" la sintaxis y la semántica

- Los estudiantes producirán código que no funciona

- Los profesores deben identificar los conceptos erróneos

- Los conceptos erróneos también están presentes en las lenguas de bloque.

- Veamos algunas de ellas, ordenadas por categorías. Para ver los "menús" más completos, consulte

[Qian y Lehman, 2017, Sorva, 2013, Sorva, 2018, Lodi, 2014].

Analogías y metáforas

La metáfora de la variable como una caja puede provocar algunos malentendidos, por ejemplo:

- Una variable puede contener más de un valor, en particular el "historial" de los valores que se le
han asignado

- Las asignaciones del tipo a = b mueven el valor de una variable a otra. La variable de origen se vacía
63

- Las variables son contenedores inicialmente vacíos y no necesitan ser inicializados.

Matemáticas i

El uso del símbolo = para la asignación provoca muchos conceptos erróneos

- Una variable es simplemente el acoplamiento de un símbolo con un valor. No se almacena en


ningún sitio

- a = b + 1 almacena una ecuación en la memoria, o almacena la expresión no valorada b + 1 en la


variable a

- Un programa, especialmente si es una secuencia de asignaciones, se ve como un conjunto (no


ordenado) de ecuaciones.

- Muchas líneas de código (no concurrente) pueden estar activas simultáneamente durante la
ejecución - Asignaciones como a = b funcionan en ambas direcciones, e intercambian valores

- La asignación a = a + 1 es incorrecta, porque es una ecuación imposible.

- Una variable debe ser una sola letra, los nombres más largos son comandos

Matemáticas ii

Los ejemplos documentados son la dificultad para entender el intercambio de variables con la variable
temporal, o que los estudiantes pidan los datos de entrada después de haberlos utilizado para calcular un
resultado, o que intenten resolver las tareas por sustitución.

Terminología

El uso de palabras en inglés puede provocar malentendidos

- La condición de un bucle while se evalúa constantemente, y el bucle se abandona en el momento


exacto en que se convierte en falso.

- El comando if se ejecuta en cuanto su condición se convierte en verdadera

- La palabra clave sugiere entonces algo que se ejecuta después de otro

Propósito vs. estructura

- El aumento de una variable se considera una operación indivisible

Decir que a = a + 1 incrementa el valor de a describe el propósito de la declaración, no cómo


funciona. Debe especificar

- Evalúo el lado derecho

- Asigno el valor que encuentro a la derecha al nombre de la izquierda


64

Presencia de inteligencia interpretativa

La analogía "programar con el ordenador es como hablar con él" puede llevar a atribuir intencionalidad al
ordenador [Pea, 1986]:

- Programar es como hablar en lenguaje natural. El ordenador o el entorno de desarrollo tiene una
inteligencia oculta que entiende las intenciones del programador y le ayuda a alcanzar su objetivo
("superbug"), por ejemplo completando con información "obvia" que falta.

- El ordenador evita las operaciones innecesarias, irrazonables o erróneas.

- El ordenador tiene una visión general, sabe qué pasará con las líneas de código que no está
ejecutando en ese momento.

- Los nombres asignados a las variables influyen en su comportamiento y funcionamiento (por


ejemplo, "máximo" siempre contendrá valores "mayores")

Diferencia entre código estático y código en ejecución

- No se pueden utilizar los mismos nombres para los parámetros formales y reales

- El paso de parámetros siempre crea un vínculo directo entre los parámetros formales y los reales

- La asignación copia las propiedades de una estructura de datos a otra

- Dos objetos con idéntico estado son el mismo objeto

Visión limitada de los ejemplos

Los alumnos deducen las reglas a partir de los ejemplos que ven.

- Los atributos de los objetos sólo pueden ser números o, al menos, tipos primitivos

- Los argumentos de las llamadas a funciones sólo pueden ser valores, no variables

- Los operadores de comparación sólo pueden aparecer en las guías if o en los bucles y no, por
ejemplo, en las expresiones dentro de un retorno

- Los procedimientos se ejecutan en el orden en que se definen.

Máquina conceptual: Máquina nocional [Sorva, 2013].

- Representa las propiedades generales de la máquina que se está aprendiendo a controlar.

- Ordenador idealizado, cuyas propiedades están implícitas en las construcciones del lenguaje de
programación utilizado, pero que pueden explicitarse durante la enseñanza.

- Creado con el objetivo de explicar la ejecución de los programas.


65

- Es una noción más específica, porque con fines didácticos, que la noción clásica y general de máquina
abstracta.

- Una caracterización del ordenador en su papel de ejecutor de programas (en un lenguaje concreto), abarca
capacidades y comportamientos de hardware y software suficientemente abstractos, pero precisos, para
explicar cómo se ejecutan los programas.

- Vinculado a un lenguaje de programación preciso

- No tiene que ser (necesariamente) un modelo del ordenador físico

- Pueden existir varias máquinas, a diferentes niveles de abstracción, para el mismo lenguaje (por ejemplo,
una máquina para Java que defina el ordenador como capaz de manejar objetos que intercambian mensajes,
otra de nivel inferior que vea las diversas construcciones que manejan áreas de memoria, pilas de llamadas y
heap, otra de nivel aún más bajo que describa Java en términos de bytecode)

Máquina conceptual y conceptos erróneos

- Modelo mental del ejecutor

- Simulación de este modelo: trazado

- Los lenguajes de alto nivel ocultan muchos detalles

- El modelo se forma en cualquier caso, se haga explícito o no

- Los novatos pueden formarse modelos que no son adecuados → conceptos erróneos

- Según algunos, forma una "realidad objetiva"... jaque mate a los constructivistas extremos ;)

Visualización de la máquina conceptual

- Hacer dibujos y anotar en la pizarra el estado interno durante la ejecución

- NB. Los alumnos creen que es sólo una forma de explicar por parte de los profesores, deberían animarse a
hacerlo ellos mismos

- Con herramientas de visualización, por ejemplo, http://pythontutor.com/visualize.html#mode=edit -


Ejemplo aquí.

- Thonny (https://thonny.org/) (descárgalo y juega con él ;))

- Funciones similares en BlueJ for Java/Stride

- Algunas funciones similares en lenguajes de bloques, por ejemplo

- Sctatch (y sus hijos): mostrar el valor de las variables

- ¡Chasquido! (y Scratch 1.4): ejecución paso a paso con bloques "iluminados


66

Lectura y comprensión del código

Leer para aprender a escribir

Este libro no enseña a escribir. No se puede aprender a escribir leyendo un libro sobre la escritura, al igual
que no se puede aprender a esquiar leyendo un libro sobre el esquí. Hay que practicar: es decir, leer mucho
(novelas, ensayos, periódicos decentes), hablar con gente más culta e inteligente que nosotros y, por
supuesto, escribir, a ser posible con la ayuda de quienes ya saben escribir mejor que nosotros.

Claudio Giunta. Cómo no escribir: Consejos y ejemplos a seguir, trampas y trucos a evitar cuando se escribe
en italiano. UTET. Prólogo.

Ejemplos resueltos

Reducir la carga cognitiva y favorecer el desarrollo del conocimiento estratégico

- Ejemplos resueltos (o parcialmente resueltos) comentados por expertos

- Etiquetado de los subobjetivos (comentarios en el código que identifican los subesquemas que estamos
aplicando)

Problemas de los párrocos (Parson problems)

-Parson Problema:https://js-arsons.github.io/

-Generador de problemas:http://acos.cs.hut.fi/jsparsons-enerator

-Intenta reordenar este programa (enlace en la página de inicio del wiki-acortador https://lodi.ml/csed) para
que calcule el número de ifres pares en x. Luego piensa en nombres más significativos para las variables a
partir de una idea de Violetta Lonati)
67

Problemas de los párrocos

- Problema de Parson: https://js-parsons.github.io/

- Generador de problemas: http://acos.cs.hut.fi/jsparsons-generator

- Intenta reordenar este programa (enlace en el acceso directo de la wiki https://lodi.ml/csed) para que
calcule el número de dígitos pares en x. Luego piensa en nombres más significativos para las variables.
Entonces, piensa en nombres más significativos para las variables (a partir de una idea de Violetta Lonati)

Altri esempi

• Cosa fa questo programma? (Esercizio 7) http://aptiva.v2.cs.unibo.it/wiki/index.php?title=


Esercizi_di_lettura#Esercizio_7

• Esempi di uso di Python nella didattica: http://aptiva.v2.cs.unibo.it/wiki/index.php?title=


Esempi_in_Python_per_la_didattica o -un po’ pi`u complicati http://aptiva.v2.cs.unibo.it/wiki/index.php?
title= Codice_visto_a_lezione

Diferentes actividades de comprensión del programa

- Las actividades de comprensión del programa pueden crearse para los tres niveles (conocimientos
sintácticos, conceptuales y estratégicos) (eje x en el siguiente diagrama).

- Y pasando de las instrucciones específicas al código en su conjunto (eje y en el siguiente diagrama) -


http://lonati.di.unimi.it/didainfo_2019-20/progComp/ 3-BM-tasks.pdf

- Para más información:

- El modelo de bloques: http://lonati.di.unimi.it/didainfo_2019-20/ progComp/2-BM-table.pdf

- Ejercicios de ejemplo para cada una de las "cajas" del diagrama anterior:
http://lonati.di.unimi.it/didainfo_2019-20/ progComp/4-progCompTasks.pdf (Sección 5).

- El documento completo: https://dl.acm.org/doi/abs/10.1145/3344429.3372501


68

Patrones elementales

Estimular el conocimiento estratégico.

NO son "contenidos" que deban enseñarse por separado, son herramientas que deben reconocerse, nombrarse y
utilizarse durante la enseñanza/aprendizaje.

- Roles de las variables https: //csed-unibo.github.io/#!pages/role_variables.md

- Patrones vinculados a secuencias de exploración https://csed-unibo.github.io/#!pages/pattern_cycles.md


69

Atkinson, R. and Shiffrin, R. (1968). Human memory: A proposed system and its control processes. volume 2 of
Psychology of Learning and Motivation, pages 89 –195. Academic Press.

Lodi, M. (2014). Imparare il pensiero computazionale, imparare a programmare. Master’s thesis, Alma Mater
Studiorum -Universit`a di Bologna. http://amslaurea.unibo.it/6730/.

McGill, T. J. and Volet, S. E. (1997). A conceptual framework for analyzing students’ knowledge of programming.
Journal of Research on Computing in Education, 29(3):276–297.

Pea, R. (1986). Language-independent conceptual “bugs” in novice programming. Journal of Educational Computing
Research, 2:25–36.

Qian, Y. and Lehman, J. (2017). Students’ misconceptions and other difficulties in introductory programming: A
literature review. ACM Transactions on Computing Education, 18(1):1:1–1:24.

Sorva, J. (2013). Notional machines and introductory programming education. Trans. Comput. Educ., 13(2):8:1–8:31.
http://doi.acm.org/10.1145/2483710.2483713.
70

Notas nuevas

Sobre la enseñanza y el aprendizaje (Todo redactado por mi)

La enseñanza es el elemento central del oficio del docente, una actividad que plantea el objetivo de transformar a
otros.  En palabras de Jackson la enseñanza “busca llevar a cabo una transformación en la persona qué la recibe, un
cambio cualitativo, con frecuencia de grandes proporciones” (Jackson, 2015:126). Para Meireu (20071, cuando
educamos no estamos frente a un objeto en construcción sino acompañamos a un sujeto que se construye.   En este
sentido el oficio docente obra sobre otros sujetos para que ellos a su vez obren sobre sí mismos, con otros, y se
construyen a partir de su formación.

Por otro lado,  desde el estudiante,  aprender,  más allá de poder Añadir información habilidades y valores,  Conlleva
una base de experimentación y descubrimiento  qué les permite construir saberes que hasta ese momento no no
tenían. En este sentido aprender puede considerarse cómo la autoenseñanza. 
71

Carga cognitiva

La teoría de la carga cognitiva, descrita originalmente por Sweller (1988), se sustenta en la integración de tres
componentes de orden cognitivo: la memoria de trabajo, las tareas de aprendizaje y los tipos de cargas cognitivas
que se le imponen a la mencionada memoria. La cual tiene serias limitaciones, ya que es de muy corta duración (en
el orden de varias decenas de milisegundos) y solo puede almacenar muy pocos elementos (alrededor de cinco)
(Cowan, 2010). Toda la información no sensorial que recibimos transita obligatoriamente por la memoria de corto
plazo, y cuando el flujo entrante sobrepasa su capacidad provoca una “carga cognitiva” que dificulta el aprendizaje.
Así, la construcción de conocimientos depende de la adquisición de “esquemas” (Rist, 1989; Cooper y Sweller,
1987), los cuales son construcciones que se dan en nuestra mente y se almacenan en la memoria de largo plazo.

En nuestro cerebro, la memoria de trabajo, también llamada operativa o de corto plazo o memoria operativa,
procesa dos tipos de información, la visual y la auditiva, al mismo tiempo. Pero cuando se trata de realizar a la vez
dos o más tareas mentales con el mismo tipo de información (por ejemplo: leer y escuchar) se reduce rápidamente
su capacidad, en un proceso conocido como sobrecarga cognitiva (Ruiz Martín, 2019). Esto lo podemos ver a través
de un ejemplo sencillo muy común en la docencia, cuando en la enseñanza de un tema se usan transparencias que
contienen demasiado texto.

En esencia, la teoría de la carga cognitiva propone que para aprender no hay que saturar la memoria de trabajo,
tratando de equilibrar los tipos de carga cognitiva que pueden darse a la vez, siendo las mismas:

 Carga intrínseca. Se la relaciona con el propio objeto de aprendizaje. Cuanto más complejo sea y más
componentes tenga el aprendizaje, habrá una mayor carga cognitiva. Para solucionar este impase se
aconseja secuenciar el aprendizaje a los efectos de reducir la cantidad de elementos nuevos que se aportan.
 Carga ajena. Ocurre cuando existe una intrusión de elementos que son superfluos en función de lograr el
objetivo de aprendizaje. Por ejemplo, sucede cuando se diseñan mal las actividades (por ejemplo, con datos
innecesarios) o suceden cosas en el aula que pueden distraer al estudiante (por ejemplo, ruidos molestos).
 Carga relevante. Esta es la carga sucede cuando en nuestro cerebro se promueve la reflexión y se relaciona
información nueva con conocimientos propios previos al identificar relaciones entre los mismos.

Las actividades de enseñanza y de aprendizaje que imponen cargas importantes en la memoria de trabajo afectan
negativamente la comprensión de los estudiantes, quienes, ante tal situación, suelen abandonar las tareas que
realizan en tal momento de sobrecarga. Para el aprendizaje si es necesario tener una alta carga cognitiva relevante y
a la vez regular la carga cognitiva intrínseca. Ya que, si es demasiado alta, no habrá espacio para el aprendizaje y, por
otro lado, si es demasiado baja, puede producir aburrimiento en el estudiante.

En orden se superar tales problemas en relación a la carga cognitiva se suelen dar una serie de orientaciones (Ruiz
Martín, 2019):
72

Fuente: Ruiz Martín, 2019

En su libro sobre ciencias de la educación en la escuela obligatoria, Waite y Grover (2020) nos recuerdan que “…
aprender a programar no es algo trivial. Es una actividad cognitiva compleja que a menudo es difícil para los
principiantes, independientemente de la edad y el entorno de programación. Una de las razones por las que la
programación se considera difícil es debido a la alta carga cognitiva impuesta por los conceptos que los estudiantes
deben dominar a medida que aprenden a programar. Tienen que dar sentido a la tarea en cuestión, conceptualizar
un diseño, implementar y evaluar una solución que debe ser programada.” Así, en la enseñanza de la programación,
dado que esta es considerada una tarea difícil debido su complejidad (Insuasti, 2016), el docente debe contemplar y
regular la carga cognitiva de sus estudiantes en sus prácticas de enseñanza y actividades de aprendizaje.
73

Orientaciones docentes para resolver el problema de la carga cognitiva

Waite y Grover (2020) proponen una serie de recomendaciones a los estudiantes, basadas en andamios (Pea, 2004),
con la finalidad de la carga cognitiva durante el proceso de aprendizaje de la programación. Los andamios son
técnicas asociadas a la enseñanza que tratan de apoyar el aprendizaje de los estudiantes hasta que sean capaces de
abordar las actividades de aprendizaje por sí mismos. Algunas técnicas de andamiaje restringen fuertemente las
experiencias de aprendizaje; el maestro tiene mucho control. Otras técnicas son flexibles, lo que les da a los alumnos
más autonomía sobre lo que están aprendiendo y cómo. En este sentido, a medida que los estudiantes progresan, el
andamiaje provisto debe desaparecer, dando más responsabilidad al estudiante, propiciando su independencia en
función de una mayor apropiación de su proceso de aprendizaje.

Waite y Grover (2020) recomiendan una serie de enfoques para las actividades de programación que involucran
recursos de andamiaje. A su vez, los autores advierten acerca de que algunos de los enfoques que se presentan a
continuación son marcos generales de trabajo y otros son solo técnicas que deben desaparecer con el tiempo
asociado al desarrollo de los estudiantes.

1. Lectura de programas. Se plantea que leer y escribir programas son tareas que deben realizarse en conjunto,
ya que están estrechamente relacionadas. Los estudiantes que pueden leer programas de manera precisa
obtienen mejores resultados en la escritura que sus pares que no pueden Waite y Grover (2020). Esto, puede
parecer algo obvio, pero recordemos que, al aprender un nuevo idioma, esperaríamos aprender a leer una
palabra antes de escribirla. La comprensión de un programa es la capacidad de predecir lo que hará cuando
se ejecuta, indicando que sucede internamente línea por línea, a medida que se ejecuta. Esta lectura
comprensiva incluye los valores que toman las variables en las distintas etapas de ejecución del programa.
Por otro lado, este tipo de explicación va más allá de comprender cada instrucción en particular, sino el
desarrollar la capacidad de entender que lograrán todas las instrucciones al combinarse.
2. Programación en vivo. La programación en vivo (live coding en inglés) es una forma de andamiaje donde el
docente (también en casos más avanzados suelen hacerlo los propios estudiantes) muestra a la clase un
diseño de una solución a un problema y su implementación en forma de programa. Esta manera de mostrar
tiene la particularidad que se realiza “en vivo” para una audiencia de estudiantes. Durante la sesión de
explicación, la persona que expone comenta sus decisiones de diseño y de programación que está tomando,
en tiempo real, pensando en voz alta y compartiendo sus reflexiones. Por otro lado, durante ciertos pasajes
se invita a la “audiencia” a participar en la problematización del tema y en el aporte de posibles soluciones.
En este tipo de sesiones se recomienda que el profesor aproveche la oportunidad resaltar conceptos, pero
más que nada para demostrar prácticas de resolución de problemas, tales como descomposición,
depuración, pruebas y como es el método de programar a través de un proceso de refinamiento iterativo.
3. Ejemplos resueltos. Los ejemplos resueltos, se presentan a los estudiantes como soluciones de tipo “paso a
paso” que apuntan a reducir la carga cognitiva y “permiten la adquisición de esquemas de solución de
74

problemas al plantear problemas equivalentes al estudiante” (Arévalo-Mercado y otros, 2019). Se propone a


los estudiantes que trabajen con ejemplos especialmente construidos que les ayuden a descubrir ideas
conceptuales aplicadas al código. Según Waite y Grover (2020) en un ejemplo resuelto se presenta a los
estudiantes un problema, distintas soluciones y una explicación en relación a cómo se desarrollaron. El
docente, al presentar diversas soluciones expone la variedad y riqueza de abordajes que se dan a la hora de
resolver un mismo problema. Junto con los ejemplos resueltos se aconseja una buena descripción del código
ofrecido a los estudiantes, incluyendo explicaciones y etiquetas de secciones, a partir de la incorporación de
comentarios a los programas. También, en una etapa posterior del aprendizaje se puede sugerir a los
estudiantes que ellos mismos realicen los comentarios a los programas ejemplo.

Existe una estrategia didáctica alternativa que se denomina "codificación en vivo compartida con ejemplos",
en la cual se combinan los ejemplos resueltos y la programación en vivo, a partir de proporcionar a los
estudiantes una actividad de programación, y luego, al finalizar, se propone hacer una revisión grupal
conjunta. Donde esta última actividad se puede realizar a partir de proyectar en una pantalla los programas
creados y analizarlos, probarlos y discutirlos públicamente en el aula.

4. Usar-Modificar-Crear. Es una estrategia para involucrar y comprometer a los estudiantes en el desarrollo de


actividades relacionadas con las ciencias de la computación. El método se compone de una serie de fases, tal
como se observa en la figura X.
Figura X. Estrategia Usar-Modificar-Crear

En la primera fase, se entiende que los estudiantes son consumidores, debido a que el docente propone
utilizar objetos (por ejemplo, aplicaciones diversas, juegos, simuladores, entre otros) que han sido pensados
y desarrollados por otras personas. En esta etapa los estudiantes exploran (con algunas orientaciones del
docente) de que se trata el objeto en función de averiguar qué hace y cómo funciona. Se trata
esencialmente de una actividad donde los estudiantes estudian y analizan un objeto digital y tratan de
producir alguna información relativa al mismo. En la segunda etapa, el “sentido de propiedad” del objeto
75

estudiado comienza a transferirse a los estudiantes, cuando se les propone comenzar a modificarlo. Se
recomienda que el docente planifique, de manera gradual, una sucesión de orientaciones en relación a
posibles cambios a realizar sobre el objeto. Así, los estudiantes, con el tiempo y partir de sucesivos
refinamientos, desarrollarán una mejor comprensión y nuevas habilidades. Tales sugerencias de cambios
deben aumentar en dificultad con la finalidad de apoyar a los estudiantes en el aprendizaje de conceptos
particulares que el profesor desea que desarrollen. En la etapa final, los estudiantes crean un nuevo objeto a
partir de aplicar los conceptos y técnicas que estudiaron y practicaron en las fases anteriores. En este nivel
de desarrollo de la estrategia el nuevo objeto es "completamente de los estudiantes".
5. PRIMM. Es una variación de la estrategia Usar-Modificar-Crear cuyas siglas significan predecir, ejecutar,
investigar, modificar y hacer (Predict-Run-Investigate-Modify-Make). PRIMM fue introducido por Sentance
en 2017 (Sentance y Waite, 2017) con la finalidad de agrupar prácticas de enseñanza relevantes en un marco
de trabajo estructurado. Se evaluó la estrategia PRIMM a partir de una prueba que incluyó 13 escuelas y 493
estudiantes, donde los alumnos que seguían el enfoque PRIMM tenían un mejor rendimiento que el grupo
de control (Sentance, Waite y Kallia, 2019).

La primera fase de PRIMM se denomina predecir y consiste en presentar a los estudiantes un programa con
la finalidad que lo lean e intenten predecir lo que hará cuando se ejecute en una computadora. Los deben
explicitar y discutir sus predicciones y luego documentarlas. Esta etapa funciona como una actividad a
realizar por parejas o en pequeños grupos. A través del diálogo se construye una idea colectiva que trata de
identificar lo que ocurrirá cuando se ejecute el código. Se recomienda que el ejemplo posee una buena parta
de instrucciones conocidas y a lo sumo uno o dos conceptos nuevos. La siguiente fase es ejecución, se
propone que los estudiantes pongan a prueba sus predicciones. El docente juega un rol clave en esta etapa,
ya que es el encargado de organizar las actividades que promuevan un debate para ayudar a los estudiantes
a verbalizar sus supuestos y comprobar si la realidad coincide con sus predicciones. A continuación, en la
76

etapa investigar, se utilizan para que los estudiantes rastreen, anoten, expliquen y discutan sobre el código
línea por línea, el objetivo es ayudarles a entender lo que hace en detalle. En la etapa modificar, la cual es
semejante a la de la técnica Usar-Modificar-Crear, los estudiantes proponen y realizan una serie de
modificaciones al programa estudiado, tratando de generar nivel de desafío creciente. En esta etapa el
andamiaje se retira cuando se observa que los estudiantes se sienten más familiarizados con los nuevos
conceptos que han aprendido. En la última etapa, hacer los estudiantes tienen que resolver un nuevo
problema que utiliza la misma estructura y los mismos conceptos que han aprendido. Así, aplican los nuevos
conocimientos construidos en un entorno familiar.

Arévalo-Mercado, C. A., Estrada-Rentería, B. G., & Muñoz-Andrade, E. L. (2019). El efecto de la teoría de carga
cognitiva en el aprendizaje de la programación básica. Entorno, (67), 169–176.
https://doi.org/10.5377/entorno.v0i67.7500

Pea, R. (2004). The social and technological dimensions of scaffolding and related theoretical concepts for learning,
Education, and human activity. The journal of the learning sciences, 13(3), 423-451.

Waite, J. y Grover, S. (2020) Worked Examples and Other Scaffolding Strategies. En S., Grover (ed.), Computer
Science in K-12. An A to Z handbook on teaching programming. Ed. Shuchi Grover

Sweller, J. (1988). “Cognitive Load During Problem Solving: Effects on Learning”. Cognitive Science. 12, 257-285.

Insuasti, J. (2016). Problemas de enseñanza y aprendizaje de los fundamentos de programación. Revista de


Educación y Desarrollo Social, 234.

Ruiz Martín, H. (2019) ¿Cómo aprendemos? una aproximación científica al aprendizaje y la enseñanza. Grao

Cooper, G. y Sweller, J. (1987). “The effects of schema acquisition and rule automation on mathematical
problem-solving transfer”. Educational Psychology Review. 79, 347-36

Rist, R.S. (1989). “Schema Creation in Programming”. Cognitive Science. 13, 389-414.

Sentance, S. y Waite, J. (2017) PRIMM: Exploring pedagogical approaches for teaching text-based programming in
school, In: Barendsen, E. and Hubwieser, P. (eds.) Proceedings of the 12th Workshop on Primary and Secondary
Computing Education, 8–10 November 2017, Nijmegen, The Netherlands. New York, ACM. pp. 113–114.

Sentance, S., Waite, J. & Kallia, M. (2019) Teaching computer programming with PRIMM: a sociocultural perspective.
Computer Science Education. 29 (2–3), 136–176. Available from: doi.org/10.1080/08993408.2019.1608781
77

No reconocimiento de diversos estilos de aprendizaje

El concepto “estilos de aprendizaje” es por Alonso como “los rasgos cognitivos, afectivos y fisiológicos que sirven
como indicadores relativamente estables, de cómo los discentes perciben, interrelacionan y responden a sus
ambientes de aprendizaje” (Alonso y otros, 1994:48). Al ser varios los estilos, en principio, se los puede comprender
como los distintos modos que caracterizan a los estudiantes en su manera de procesar información ante una
situación de aprendizaje, comprendiendo que los mismos están sobre el contenido que se procesa (Hederich,
2004:10). Riding y Rayner (1999) indican que los estilos de aprendizaje tienden a estar compuestos tres
componentes básicos: organización cognitiva, representación mental y la integración de ambas. Por otro lado, el
estilo de aprendizaje de un estudiante puede cambiar en el tiempo ya que los sujetos a medida que avanzan en sus
aprendizajes suelen descubrir formas de aprender más cercanas a sus gustos, en particular se indica que “(l)os
alumnos conforme avanzan en su proceso de aprendizaje descubren mejores formas o modos de aprender, por lo
tanto, van a variar su estilo, además dependerá de las circunstancias, contextos y tiempos de aprendizaje que tengan
que enfrentar. Los estilos de aprendizaje se centran en las fortalezas y no en las debilidades. En tal sentido, no existe
correcto” (Aguirre, Cancino y Loaiza, 2005).

“Los estilos cognitivos son constructos teóricos que explican lo que ocurre en la mente del sujeto cuando
éste elabora una respuesta frente a los estímulos ambientales, los procesa y se enfrenta a la realidad. “

“cada persona tiende a utilizar ciertas preferencias que definen un estilo de aprendizaje.”

“ Cada estilo de aprendizaje comporta sus propias fortalezas y debilidades, son flexibles y factibles de
modificarse (Contijoch 2006). “

“Al hacer referencia al término ‘estilos de aprendizaje’ es aludir a que cada persona puede utilizar un método
particular o alguna estrategia específica que le facilite la comprensión de cualquier tema”

– Dunn y Dunn (1978) definen Estilos de Aprendizaje como “un conjunto de características personales, biológicas o
del desarrollo, que hacen que un método, o estrategia de enseñar sea efectivo en unos estudiantes e inefectivo en
otros”.

– Guild y Garger (1998) consideran que los Estilos de Aprendizaje son “las características estables de un individuo,
expresadas a través de la interacción de la conducta de alguien y la personalidad cuando realiza una tarea de
aprendizaje”.

Formas de clasificar los estilos de aprendizaje


78

Hay numerosas aproximaciones en las formas de clasificar a los estilos de aprendizaje. En principio se pueden citar
las siguientes (Pantoja Ospina, Duque Salazar, y Correa Meneses, 2013):

a) Basadas en la construcción del conocimiento. Son las que tienen en cuenta los procesos mentales que se llevan a
cabo para convertir la información percibida en conocimiento. Por ejemplo, el modelo de Owen (1998).

b) Basadas en la experiencia. A partir de tener en cuenta la práctica, la experimentación y el descubrimiento que


nace desde sentidos. Esta categoría se inicia con el trabajo de Jung (1923) y su propuesta de estilos basada en el
modo que un sujeto percibe la información y la procesa:

• Aprendices Sensoriales-Racionales, se caracterizan por seguir instrucciones y realizar actividades de


manera secuencial.

• Aprendices Intuitivos-Racionales, tienen preferencia por la intuición y la reflexión, esto conduce a que
tiendan a ser comprensivos en su estilo.

• Aprendices Sensoriales-Emocionales, también llamados aprendices interpersonales, se caracterizan por


basarse en sus sentidos y en los sentimientos para captar y procesar la información. En general son
aprendices que se orientan, en preferencia, hacia las actividades grupales.

• Aprendices Intuitivos-Emocionales, prefieren captar y usar la información a través de la intuición y el


sentimiento respectivamente.

También, basado en la experiencia, Kolb (1984) propone sus dimensiones de aprendizaje, siendo construidas a partir
de la percepción (sensitivo/intuitivo) y el interés hacia las cosas (extrovertido/introvertido). Así se tienen los
siguientes tipos: divergentes, los aprendices se basan en experiencias concretas y en una observación reflexiva;
convergentes, se basan en la conceptualización abstracta y una experimentación activa; asimiladores, son aquellos
estudiantes que usan la conceptualización abstracta y la observación reflexiva, a partir de planificar y establecerse
metas y acomodadores, que son aquellos sujetos que se basan en la experiencia concreta y una experimentación
activa, son intuitivos y aprenden por prueba y error.

c) Basados en los canales de percepción de la información. En este grupo se identifican aquellos modelos donde
existe preferencia por percibir la información a través de algún sentido en particular.

Dunn et ál. (1979), como lo menciona Salas Silva (2008), tratan de entregar una visión completa de los estilos de
aprendizaje que abarque elementos cognitivos, afectivos y ambientales, los cuales, según Hernández y Hervás
(2003), influyen en la percepción, interacción y respuesta en diferentes contextos de aprendizaje. Dunn et ál.
plantean en su modelo 21 influencias que afectan las habilidades de absorción y retención de la información (Salas
Silva, 2008).
79

Referencias

Pantoja Ospina, M., Duque Salazar, L., y Correa Meneses, J. (2013). Modelos de estilos de aprendizaje: una
actualización para su revisión y análisis. Revista Colombiana de Educación, (64), pp. 79.105.

Jung, C. (1923). Psychological Types. Londres: Routledge & Kegan Paul.

Hederich, C. (2004). Estilo cognitivo en la dimensión independencia-dependencia de campo – influencias culturales e


implicaciones para la educación. Tesis doctoral. Universidad autónoma de Barcelona. Recuperado el 20 de abril de
2014 desde http://hdl.handle.net/10803/4754

Riding, R. y Rayner, S. (1999). Cognitive styles and learning strategies: Understanding style differences in learning and
behavior. London: David Fulton Publishers.

Alonso, C.; Gallego, D. y Honey, P. (1994). Los Estilos de Aprendizaje: Procedimientos de diagnóstico y mejora.
Bilbao: Ediciones Mensajero.

Aguirre, M., Cancino M. O. y Loaiza N. (2009). Estilos de aprendizaje: una propuesta didáctica para la enseñanza de
lenguas extranjeras. Cali: Universidad del Valle,

"No reconocimiento de diversos estilos de aprendizaje" Price, K., Smith, S., “Improving student performance in
CS1”. J. Comput. Sci. Coll. Vol 30, No. 2 (December 2014), pp 157-163, 2014

Paredes anchas

. En la didáctica específica de la programación se habla de que los proyectos diseñados para enseñar a programar
deberían tener “piso bajo y techo alto” (Resnick y Silverman, 2005).

" Los proyectos diseñados con el criterio “piso bajotecho alto” son los que se pueden completar con programaciones
sencillas que requieren pocas líneas de código para obtener rápidamente resultados –piso bajo– y al mismo tiempo
ofrecen posibilidades de construir proyectos cada vez más complejos y sofisticados a medida que se explora el
entorno y se conocen y combinan sus herramientas –techo alto. Además, permiten la alternancia en una amplia
gama de exploraciones y habilitan una gran variedad de proyectos diferentes –paredes anchas. En este sentido, son
accesibles y atractivas para niños con diferentes estilos de aprendizaje y modos de conocimiento (Resnick, 2008). El
trabajo por proyectos de programación permite integrar diferentes disciplinas –paredes anchas, y favorece que cada
grupo de alumnos pueda avanzar según sus motivaciones –techo alto. En la programación, muchas veces es la misma
práctica la que marca los errores y los aciertos a la hora de hacer funcionar un programa sin necesidad de una
80

supervisión constante, en este caso del docente. El feedback inmediato que nos posibilita la computadora favorece
no solo la exploración y descubrimiento de los contenidos, sino que les permite avanzar y otorgar autonomía y
confianza a sus alumnos en la aprehensión de los conocimientos (Echeveste, 2017)."

Resnick, M. (2008) Fallen in Love with Seymour’s ideas. Presented at a Special Session of the 2008 American
Educational Research Association Annual Meeting.

---

Desde diferentes puntos de vista y experiencias, se deduce que para el logro de los objetivos y propósitos
de formación de profesionales en el área de programación utilizando SL, ésta ha de orientarse hacia la
implementación de estrategias pedagógicas consecuente con las teorías del aprendizaje, las cuales señalan
que el aprendizaje humano es siempre una construcción que se realiza basado en el procesamiento de la
información, por lo que, la enseñanza debe “facilitar y potenciar al máximo ese procesamiento interior del
alumno con miras a su desarrollo” (Flórez, R., 1994, p. 35).

En el contexto sobre los estilos y estrategias de aprendizaje se reconoce la importancia de las variables
individuales ligadas al aprendizaje. En este sentido, los estilos de aprendizaje son definidos por Felder y
Henríquez, (Citado por Martín, Gavilanes, A., 2004, p.108) como “los modos en que el individuo
característicamente adquiere, retiene y recupera información”. También, las estrategias de aprendizaje se
refieren según de la Fuente, J., y Justicia, F., (2003), al conocimiento que la persona tiene sobre: sus
posibilidades y limitaciones para realizar una tarea; los requerimientos de esta última en cuanto a los pasos
que se precisan para su desarrollo y los repertorios que lleva consigo; así como también la evaluación que el
aprendiz realiza de su propio aprendizaje. El actual interés por el tema de las Estrategias de Aprendizaje, es
en parte promovido por las nuevas orientaciones psicopedagógicas, en investigaciones realizadas sobre el
tema se ha comprobado que los estudiantes con éxito difieren de los estudiantes con menos éxito en que
conocen y usan estrategias de aprendizaje más sofisticadas que la pura repetición mecánica. Es opinión
común que la inversión en la mejora de las estrategias de los estudiantes es más rentable académicamente,
que la mejora de las técnicas instruccionales o los materiales de enseñanza.

En otros escritos, los docentes Ferreira y Rojo (2005), de la Universidad Nacional de Río Cuarto, en Argentina,
confirman que los estudiantes de primer año que cursan Lógica de Programación (Algoritmia), presentan
insuficiencias, dentro de las que citan: escasa destreza para desarrollar algoritmos de mediana o alta
complejidad, falta de apropiación de una metodología de resolución de problemas e insuficiente experiencia
en el manejo del lenguaje de programación utilizado en la asignatura.
81

También podría gustarte