PDF de programación - Uso de la Visualización Jeliot para Apoyar el Aprendizaje Acelerado de la Programación

Imágen de pdf Uso de la Visualización Jeliot para Apoyar el Aprendizaje Acelerado de la Programación

Uso de la Visualización Jeliot para Apoyar el Aprendizaje Acelerado de la Programacióngráfica de visualizaciones

Actualizado el 18 de Mayo del 2018 (Publicado el 28 de Abril del 2017)
1.662 visualizaciones desde el 28 de Abril del 2017
409,9 KB
7 paginas
Creado hace 11a (18/01/2013)
USO DE LA VISUALIZACIÓN JELIOT PARA APOYAR EL
APRENDIZAJE ACELERADO DE LA PROGRAMACIÓN

USE OF JELIOT VISUALIZATION TO SUPPORT ACCELERATED PROGRAMMING

LEARNING

Adolfo Di Mare

Escuela de Ciencias de la Computación e Informática, Universidad de Costa Rica

[email protected]



RESUMEN: Se argumenta que es muy buena idea usar Java como primer lenguaje de programación debido a
que el ambiente integrado de programación Jelio junto con JUnitt apoyan el aprendizaje acelerado.


Palabras Clave: Aprendizaje Acelerado, Java, Programación, Jeliot, JUnit.


ABSTRACT: It is argued that it is a good idea to use Java as a first programming language because the Jeliot
integrated development environment with JUnit support accelerated learning.



KeyWords: Accelerated Learning, Java, Programming, Jeliot, JUnit.



1. INTRODUCCIÓN

Dice un viejo adagio que “con desconocidos, no se
discute ni de política, ni de deportes ni de religión”.
En el contexto informático habría que agregar que
tampoco se debe hablar de cuál es el primer len-
guaje de programación que conviene usar en la
carrera de computación. Sin embargo, aunque este
sea un tema tabú, en la literatura se pueden encon-
trar personajes importantes que defienden el uso
de Java como primer lenguaje [1], C++ como pri-
mer lenguaje [2], y otros lenguajes [3],[4]. La esco-
gencia del lenguaje no es el único dilema que enca-
ra el docente que enseña el primer curso de pro-
gramación, pues un grupo piensa que es mejor
enseñar primero objetos y luego algoritmos [5], y
otro piensa que los algoritmos son más importantes
que los objetos.

La opinión de cada docente depende de su expe-
riencia. El autor de este escrito ha trabajado pro-
gramando, primero con Fortran y Pascal, para lue-
go usar Modula y C++, lo que explica su sesgo a
favor de C++ y también su tendencia a enseñar
primero algoritmos y después POO [Programación
Orientada a Objetos] en el primer curso de progra-
mación. Una buena justificación para este proceder
son estas palabras de Alexander Stepanov, diseña-
dor y constructor de la biblioteca estándar para C++
(traducción editada) [6]:

Me parece que la POO es técnicamente poco
sólida. Trata de descomponer el mundo en
términos de interfaces que varían desde un so-
lo tipo. Para hacer frente a problemas reales se
necesitan álgebras multivaluadas - familias de
interfaces que abarcan múltiples tipos. Me pa-
rece POO filosóficamente poco sólida ya que
afirma que todo es un objeto. Aunque esto fue-
ra cierto, no es muy interesante puesto que de-
cir que todo es un objeto es demasiado ambi-
guo. Me parece POO metodológicamente equi-
vocada. Comienza con clases. Es como si los
matemáticos comenzaran con axiomas cuando
lo normal es comenzar con pruebas. Sólo
cuando se han encontrado muchas pruebas re-
lacionadas entre sí se puede llegar a, y termi-
nar con, los axiomas. Lo mismo es cierto en la
programación: cualquier profesional tiene
que comenzar con algoritmos interesantes y
solamente cuando se entienden bien se puede
llegar a definir una interfaz eficaz y eficiente.



Si hay que comenzar por los algoritmos también es
prioritario para el programador aprender construc-
ción de algoritmos primero, aunque eso no le quita
su importancia a todos los demás temas de pro-
gramación.

Es necesario definir qué significa “programar” para



“XV Congreso Internacional de Informática en la Educación”

Di Mare | “USO DE LA VISUALIZACIÓN JELIOT PARA APOYAR EL APRENDIZAJE ACELERADO DE LA PROGRAMACIÓN”

luego determinar que es lo que hay que enseñar en
el primer curso de programación. Por eso, es nece-
sario que todo estudiante conozca las construccio-
nes fundamentales que se requieren para imple-
mentar algoritmos.



Fundamentos de programación

Secuenciación
Asignación y expresiones
Decisiones if()
Ciclos for(;;) y while()
Uso de vectores y matrices
Subrutinas y parámetros

Figura 1

Además, un experto programador conocerá recur-
sividad, herencia, polimorfismo, programación
genérica, programación concurrente y uso de ex-
cepciones pero, si se ha escogido enseñar primero
algoritmos y luego objetos, la lista de tópicos a
cubrir es la que aparece en la Figura 1. El objetivo
primordial de este artículo es mostrar que la ense-
ñanza de estos conceptos se puede acelerar si se
usa el lenguaje Java junto con el entorno de pro-
gramación Jeliot/JUnit.



2. JELIOT Y JAVA

Cada lenguaje tiene sus herramientas de progra-
mación que influyen en la decisión de usarlo. Por
eso C++ tiene su biblioteca estándar, sin la que no
tendría tanta popularidad. Algunos ambientes de
programación se pueden utilizar con varios lengua-
jes, pero generalmente están especializados en
alguno. Por eso, para algunos lenguajes existen
herramientas que no están disponibles para otros,
como ocurre con la la herramienta Jeliot [7] cons-
truida por Ben-Ari [8]:

http://cs.joensuu.fi/jeliot/

Ben-Ari construyó Jeliot para lograr que los estu-
diantes que todavía no saben programar puedan
visualizar la ejecución de algoritmos, lo que les
permite crear el modelo intelectual que necesitan
para aprender [8].



Figura 2



Como se ve en la Figura 2, el ambiente Jeliot es un
depurador simbólico para Java que también mues-
tra los registros de activación (en rosado) y los
valores de las variables locales al método que se
está visualizando. El significado de cada una de las
construcciones sintácticas del lenguaje se puede
apreciar muy bien al examinar cómo cambian los
valores de las variables. También Jeliot muestra
los valores de los campos de los objetos cuyo valor
siempre está almacenado en la memoria dinámica.

Aunque existe la promesa implícita de construir una
versión de Jeliot para otros lenguajes, es especial
para C++, la realidad de los hechos es que Jeliot
solo está disponible para Java: para usar Jeliot no
queda más que programa en Java.

A primera vista parece que existen muchas herra-
mientas similares a Jeliot para otros lenguajes,
pero una concienzuda búsqueda permite constatar
que, por lo menos al principio de la segunda déca-
da del siglo XXI, no existen herramientas similares
a Jeliot para otros lenguajes. Pese a que existen
muchas formas de visualizar algoritmos (en [9] hay
bastantes ejemplos), no existen herramientas que
permitan ver cómo varían las variables dinámica-
mente. Los depuradores simbólicos se pueden usar
en sustitución de Jeliot, pero tienen la desventaja
de que no muestran la traza de ejecución y los
registros de activación. Por eso, en el momento de
escritura de este artículo, la dupla JavaJeliot
es única.



“XV Congreso Internacional de Informática en la Educación”

Di Mare | “USO DE LA VISUALIZACIÓN JELIOT PARA APOYAR EL APRENDIZAJE ACELERADO DE LA PROGRAMACIÓN”

de ver en cualquier pantalla o ventana. El progra-
ma completo se encuentra aquí:

http://di-mare.com/adolfo/cursos/2009-2/Lab01.java.txt

Vale la pena examinar este código para destacar su
utilidad pedagógica. No solo usa asignaciones sim-
ples sino que tiene expresiones un poco más com-
plejas. También usa tanto el ciclo for(;;) como el
while() y el if() incluye la alternativa else{}.
Además, se usa el vector VAL[] para obtener valo-
res con los que se calcula el resultado booleano
res[]. Realmente es sorprendente que, en tan
poco código, estén representadas todas las cons-
trucciones sintácticas que se usan para construir
algoritmos (ver Figura 1).

La gran ventaja de utilizar Java como primer len-
guaje de programación es que, desde la primera
lección en programación, se puede montar el pro-
grama de Armstrong en Jeliot para mostrarle a los
estudiantes cómo cambian las variables: después
de todo, un programa siempre es una secuencia de
instrucciones que cambian valores almacenados en
la memoria de la máquina. Es sorprendente lo rápi-
do que el programa de Armstrong permite exponer
los conceptos
fundamentales de programación
desde la primera lección. Jeliot es necesario por-
que sirve para explicar visualmente cómo funciona
la computadora y cómo se ejecutan los algoritmos.

Una de las desventajas más importantes de Java
como primer lenguaje es que tiene una sintaxis
muy compleja. Pese a eso, la visualización Jeliot le
permite a cada docente explicar cómo funcionan
los algoritmos dejando de lado las complejidades
de Java. Lo importantes es utilizar el programa de
Armstrong para establecer en la mente de cada
estudiante qué es lo que debe hacer para progra-
mar, de manera que luego, paulatinamente, ad-
quiera el entrenamiento necesario para escribir sus
propios programas de computación.



4. DRJAVA Y JUNIT

Una técnica simple que permite lograr pronto el
aprendizaje de la compleja sintaxis de Java es
aislar pequeños bloques de código, para que los
estudiantes no tengan que lidiar en el resto del
programa. Esto quiere decir que quien enseña pue-
de entregar programas en los que solo falta una
pequeña sección de código para que queden com-
pletos, de manera que los estudiantes solo deban
trabajar en un reducido bloque de código: así inter-
actúan con algoritmos relativamente pequeños. En
[9] se describe una técnica que incorpora la biblio-
teca JUnit [10] para entrenar rápidament
  • Links de descarga
http://lwp-l.com/pdf3258

Comentarios de: Uso de la Visualización Jeliot para Apoyar el Aprendizaje Acelerado de la Programación (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad