Vous êtes sur la page 1sur 11

Una Metodologa para el aprendizaje de la Programacin Orientada a Objetos basada en Programacin Extrema (XP) A Methodology for learning Object

Oriented Programming based on Extreme Programming (XP)


Diva Sanjur Araz
Universidad Tecnolgica de Panam Facultad de Ingeniera de Sistemas Computacionales

diva.sanjur@gmail.com

RESUMEN
En este documento se presenta nuestra propuesta de investigacin que consiste en la enseanza de Java como Lenguaje de Programacin Orientado a Objetos, a travs del diseo e implementacin de una metodologa de aprendizaje basada en la integracin de herramientas de Tecnologas de la Informacin y Comunicaciones como lo son Cmap Tools para el modelado del conocimiento y BlueJ como un ambiente de desarrollo integrado e interactivo para aprender a programar en Java. Este estudio se aplicar a estudiantes de 11, en un curso de programacin regular, en el periodo comprendido a dos bimestres de clases y se dar a travs de la comparacin de dos segmentos de la poblacin estudiantil, los cuales paralelamente se dedicarn al aprendizaje de este lenguaje de programacin.

Palabras Claves
BlueJ, concepto, Cmap Tools, colaboracin, GUI, Java, Karel++, mapas conceptuales, palabras de enlace, programacin extrema, ObjectKarel, OO, POO, programacin en pares, proposicin, software de exploracin, software de marcado, WebCT, WEBL.

1. INTRODUCCIN
La programacin orientada a objetos (POO) modela el mundo real, cualquier cosa del mundo puede ser modelada como un objeto. Por ejemplo: una circunferencia es un objeto, un automvil es un objeto, una ventana es un objeto, un libro es un objeto e incluso un prstamo o una tarjeta de crdito son objetos[1]. De all que con la POO podemos crear estructurar de programas sobre la base de los objetos, los cuales tienen propiedades (un estado) y un comportamiento que son especificados en su clase. Un programa en Java se denomina orientado a objetos (OO) debido a que la programacin en Java se centra en la creacin, manipulacin y construccin de objetos[1]. Los lenguajes que utilizan este tipo de programacin son muchos y entre los ms importante se pueden mencionar los siguientes: JAVA, C++, Delphi, Smalltalk, la mayora de los lenguajes de la plataforma de Microsoft.NET, como Visual Basic.NET, C# y ASP.NET. Tomando en consideracin lo antes expuesto, al tratar de introducir la enseanza de un lenguaje de POO, como lo es Java, debemos tomar en consideracin que existe una gran diversidad en las habilidades, velocidad en el aprendizaje y aptitudes de los estudiantes, es por ello que la atencin sobre las dificultades que enfrenta una persona no puede ser tratada fcilmente en una clase en la que hay muchos estudiantes, de tal forma que los docentes deben buscar diversas vas alternativas que ayuden a los estudiantes en su aprendizaje[2]. Partiendo de esto, podemos decir que el aprender a programar en un lenguaje de programacin es una tarea bastante ardua, para muchos estudiantes difcil y compleja, en la que deben concentrarse en el aprendizaje de los contenidos esenciales para

ABSTRACT
This paper presents our research proposal that consist in teaching Java as a Programming Language Object Oriented, through the design and implementation of a learning methodology based on integration of tools of Information Technology and Communications as are Cmap Tools for knowledge modeling and BlueJ as an integrated development environment for interactive learning to program in Java. This study will apply to students from 11 in a regular programming course, in the period of two bimonthly periods of classes and will be through the comparison of two segments of the student population, which will be devoted in a parallel form in the process of learning this programming language.

Categories and Subject Descriptors


D.1.5 [Software]: Object Oriented Programming.

General Terms
Documentation, Experimentation, Verification.

Keywords
BlueJ, concept, Cmap Tools, collaboration, extreme programming, GUI, Java, Karel++, concept maps, linking words, marking software, ObjectKarel, OO, OOP, pair programming, proposition, scanning software, WebCT, WEBL.

adquirir los conceptos principales del lenguaje y poder as aplicar los conocimientos en el desarrollo progresivo del programa. An cuando existan dificultades, el aprendizaje de algn lenguaje de programacin en particular resulta bastante interesante, debido a que permite que el desarrollador del software cree la aplicacin de acuerdo a los requerimientos que necesita en un momento determinado y de la misma forma le permite modificar la aplicacin de acuerdo a las posteriores necesidades que se presenten, tanto durante la realizacin como tambin despus de la implementacin del mismo. Muchos mtodos han sido utilizados por los docentes en la enseanza de la programacin, como lo son[2]: La eleccin de el primer lenguaje de programacin; La eleccin del libro de texto del curso; La eleccin del ambiente de programacin; Variaciones en los mtodos de enseanza; Variaciones en las asignaciones. En este estudio proponemos una nueva metodologa a seguir en la enseanza de Java como lenguaje de POO y la integracin de las TICs como herramientas de gran ayuda e importancia en el proceso de E-A. El resto del documento est organizado como sigue. La seccin 2 presenta una visin general sobre la problemtica encontrada. La seccin 3 hace referencia a los trabajos relacionados a la investigacin y que nos han servido de referencia para la misma. La seccin 4 presenta la propuesta de tesis, tecnologas y herramientas y la arquitectura del ambiente. En la seccin 5 se presentan breves conclusiones del documento.

En la Tabla 1 se muestran las materias del rea de Informtica que se imparten en el centro educativo de acuerdo a los niveles escolares. Tabla 1. Materias de Informtica por nivel escolar. Nivel escolar 10 10 11 11 12 12 Materia Introduccin a la Computadora Utilidad I Programacin I Utilidad II Programacin II Tendencia

Como se muestra en la Tabla 1, en el Nivel 11, se encuentra dentro del plan de estudio del bachillerato, el lenguaje de programacin C; de la misma forma en el Nivel 12 se encuentra dentro del plan de estudio del bachillerato, el lenguaje de programacin Visual Basic. Aclaramos que los planes de estudio no se siguen de una manera rgida, sino de acuerdo al criterio de cada uno de los docentes involucrados en la enseanza. Si bien es cierto Visual Basic es un lenguaje de POO, se requiere de una licencia para su uso, lo que resulta costoso para el centro educativo al momento de adquirir el software para un grupo de aproximadamente 25 computadoras por laboratorio que requiera utilizar este lenguaje. Visual Basic es un software que slo se ejecuta en plataformas Windows. Java es un software de utilizacin libre de Sun Microsystems, lo cual permite que el centro educativo no incurra en gastos extras e innecesarios. Java es multiplataforma y tiene la gran ventaja que los programas realizados en este lenguaje pueden ejecutarse en una diversidad de plataformas sin tener la necesidad de modificarlos, por lo que proponemos la utilizacin de este lenguaje de POO en la realizacin de este estudio. En las aulas de clases, de manera regular, los estudiantes aprenden las tcnicas necesarias para programar de manera tradicional, utilizando el muy conocido tablero, en el que el docente explica ampliamente los conceptos que considere convenientes para que los estudiantes comprendan el tema y se inicien en la programacin de un software utilizando la tcnica de programacin secuencial. Lo que se trata de buscar en nuestra propuesta, es la enseanza de Java como lenguaje de POO utilizando una nueva metodologa de enseanza, en la que los estudiantes se sientan cmodos y satisfechos con los conocimientos adquiridos a travs del curso de programacin, enfocando el mismo en la enseanza de los procesos bsicos de un lenguaje de POO y buscando que la enseanza del mismo lenguaje no sea tan montona, sino ms bien que resulte de la interaccin del estudiante con nuevas herramientas tecnolgicas que le permitan asimilar el conocimiento con mayor facilidad y obtener un aprendizaje significativo y til, y de la misma forma que contribuya a que los estudiantes se adentren en la utilizacin de las Tics con el objetivo de brindarles una pedagoga diferente a la usual y de esta forma

2. PROBLEMTICA
En el mbito de la educacin en los colegios pblicos panameos, y muy especficamente en el Centro de Educacin Bsica General Stella Sierra, el cual es un centro educativo que consta de un Bachillerato en Ciencias con instrumentacin en Informtica, lo que significa que los egresados de este bachillerato deben tener conocimientos muchos ms amplios que el resto en cuanto al rea de Informtica en s y ms an sobre Programacin, la enseanza de algn lenguaje de programacin tiene muchas deficiencias, entre las que se mencionan las siguientes: Carencia de metodologas adecuadas de enseanza. Existen deficiencias marcadas en cuanto a la realizacin de contenidos programticos basados en competencias. No hay libros de texto definidos para la enseanza de la programacin. En los planes de este bachillerato, se contemplan materias de Programacin en los ltimos niveles escolares del bachillerato, y no desde niveles previos, de tal forma que los estudiantes puedan ir adquiriendo una base para las materias posteriores.

aprovechar todo ese potencial que las Tics representan y que no se est explotando en su totalidad. Justificamos nuestra propuesta en la necesidad creciente de contar con nuevos e innovadores mtodos de enseanza en los que se integren a los estudiantes en el uso de nuevas tecnologas que le permitan adquirir conocimiento y de la misma forma que los mantengan actualizados, ya que cada da que transcurre es un nuevo reto a seguir, por lo que se considera necesario hacer nuevas propuestas dentro del campo de la enseanza en nuestro pas.

las que se introduca el nuevo material de las sesiones de laboratorio en donde este nuevo material se pona en prctica. El libro de texto utilizado en este estudio fue Horstmann y todo el material del curso estaba disponible en la pgina de la Intranet del Departamento de Sistemas de Informacin y Comunicacin (DISC) de Brunel. El material del curso inclua detalles del mismo curso (ejemplos: guas de estudios, horarios, datos de contacto del grupo de trabajo, descargas de software, etc.), copias de las dispositivas de las clases, ejercicios de laboratorio asignados para cada semana, noticias, detalles del trabajo del curso, exmenes de convocatorias anteriores, etc. El ambiente de programacin utilizado fue JBuilder de Borland y una librera impresa y personalizada que contena los mtodos I-O por Tony Elliman. Los cursos que terminaban a tiempo eran enviados va electrnica y los que terminaban de manera tarda se entregaban en discos flexibles. Los exmenes eran de opcin mltiple y eran evaluados usando scanning software. Los resultados del estudio demostraron que existan muchas preocupaciones de que los estudiantes no fueran capaces de programar debido a que los estudiantes esperaban aprender cmo programar en el primer semestre y utilizar el segundos semestre para el aprendizaje de los algoritmos, debido a que el segundo semestre era corto. En el periodo 2002-2003, los estudiantes reciban 2 horas tericas ms 2 horas de laboratorio por semana. El equipo docente consista de 7 acadmicos y 5 asistentes. Las lecturas de nuevo materiales eran impartidas por 2 docentes y se daban en una sola sesin a todos los estudiantes que matriculaban el curso. Los laboratorios eran responsabilidad de dos tutores, los estudiantes eran divididos en 9 grupos los cuales reciban 2 horas de laboratorios por semana. Nuevamente el libro de texto fue Horstmann, todo el material del curso estaba disponible en la pgina de la Intranet del Departamento de Sistemas de Informacin y Comunicacin (DISC) de Brunel y el ambiente de programacin utilizado fue JBuilder de Borland y la misma librera impresa. La evaluacin del curso consisti en 2 tareas de programacin (50%) y un examen de opcin mltiple (50%) dividido en 3 secciones y era evaluado usando scanning software, nuevamente los cursos que terminaban a tiempo eran enviados va electrnica y los que terminaban de manera tarda se entregaban en discos flexibles. Una vez en [2] se evaluaron los aos anteriores, se presenta en este estudio en el periodo 2003-2004, un nuevo enfoque al que denominaron WEBL, en el que se utiliz WebCT para facilitar el progreso constante de los estudiantes en el aprendizaje de los principios de la OO con BlueJ. WebCT como sistema de aprendizaje proporciona muchas facilidades a los estudiantes, como son[2]:

3. TRABAJOS RELACIONADOS
A continuacin presentamos algunos de los trabajos relacionados con nuestro estudio, en los cuales hemos analizado los hallazgos encontrados y que nos han permitido guiarnos a lo largo de nuestra investigacin.

3.1 WEBL (Web Enhanced BlueJ learning)


En [2] describen las experiencias sobre la enseanza de OO en un curso de Programacin en el que utilizan Java como medio para ensear los principios de programacin, BlueJ como un ambiente de desarrollo para Java y WebCT como un recurso basado en web; y en la que se considera la experiencia previa de los estudiantes como muy enriquecedoras y positivas. Debido a esto, antes de iniciar cada ao con la materia de Construct of Programs, la cual se imparte en los siguientes bachilleratos Computer Science, Information System y Applied Computing, se haca una revisin de cmo se ha desarrollado el curso en el ao anterior y si es necesario se daban cambios para las prximas sesiones del curso, aunque normalmente casi todos los aos se realizaban cambios en la enseanza, en el libro de texto y en el ambiente de programacin que se utilizaba[2]. En este estudio se evaluaron docenas de textos, los cuales generalmente hablaban de cmo programar en Java ms no as de cmo construir programas usando Java como lenguaje de programacin e indicaban que la mayora de los libros utilizan un enfoque de procedimientos estndar[2]. En [2] analizaron el curso en los aos anteriores como se muestra a continuacin: En el periodo 2000-2001, los estudiantes solo reciban 3 horas de laboratorios, en donde se les enseaba todo los nuevos materiales dentro de las sesiones de laboratorio. En el periodo 2001-2002, los estudiantes reciban 2 horas tericas ms 2 horas de laboratorio, que eran impartidas por 9 docentes y 2 asistentes (estudiantes de doctorado) y cada grupo de estudiantes era asistido en la enseanza por un docente diferente quien era libre de escoger cmo presentar el material y en qu tpicos enfatizar, de tal forma que cada grupo de estudiantes tuvo una experiencia nica. Luego con el objetivo de proporcionar una experiencia comn a los estudiantes se separaron las sesiones en

Acceso a Internet desde cualquier lugar Autenticacin a travs del identificador de usuario y clave de acceso Permite subir archivos Presentacin del trabajo del estudiante Comunicacin en el curso a travs de noticias y foro WebCT tambin proporciona muchas facilidades a los docentes, como son[2]: Crear pginas web para el curso Subir diferentes archivos y organizarlos dentro de directorios Crear pruebas y ejercicios cortos Crear presentaciones Crear la lista de la clase Proveer un correcto acceso a los estudiantes y a los asistentes de los docentes Ver y descargas los trabajos presentados por los estudiantes, etc. Como resultado de las evaluaciones hechas a los cursos anteriores, se hicieron los siguientes cambios para el periodo 2003-2004[2]: Un nuevo libro de texto: Barnes and Kolling Un nuevo ambiente de programacin: Blue J Un soporte basado en web diferente: WebCT Diferente evaluacin Algunas de las razones por las cuales se hicieron los cambios en [2] son: Los estudiantes usaban Java como un lenguaje de procedimientos porque no entenda lo que era OO, de forma que no resolvan problemas diseando clases. Slo utilizaban la clase main para escribir problemas monolticos, debido a que no reconocan la diferencia entre cosas como una clase y la instancia de la clase o herencia y polimorfismo. La pgina web del curso era basada en la Intranet del DISC, lo cual dificultaba el acceso, especialmente cuando los estudiantes queran acceder a travs de medios externos y entre sus debilidades estaba que no contaba con facilidades de interaccin para consultas posteriores, subir el trabajo o la posibilidad de crear un foro de discusin, siendo el coreo electrnico su medio de comunicacin principal consuma mucho tiempo y esfuerzo del docente al responderle a 400 estudiantes. En cuanto a las asignaciones y a la evaluacin, se trabajaron 22 sesiones de laboratorio en el curso, las cuales incluan una prueba que se suba a WebCT por 2 semanas, los cuales fueron en total 16 y representaban un 25% de la nota global y una asignacin del

curso de programacin tambin representaba un 25% de la nota global, y se le dio la libertad a los estudiantes de crear su propio programa sobre un juego de texto en lugar de asignarle un problema especfico como en los aos anteriores. El examen era una combinacin de mltiples opciones de preguntas (mxima nota B), resolucin de preguntas de un problema en donde los estudiantes deban dar sus propias respuestas (esta seccin les permita obtener A)[2]. Con respecto al equipo docente, consista de 5 docentes, en donde uno de ellos era el lder del curso y 10 asistentes de docentes. El lder del curso era responsable de la organizacin del curso y su administracin que involucraba lo siguiente[2]: La planificacin del curso mucho antes de cada sesin acadmica Distribucin clara de las funciones y la asignacin de responsabilidades Sesin ordinaria semanal de todo el equipo docente de forma que se puede actuar ante cualquier problema y llegar a una solucin con todos los miembros del equipo Coordinacin de las actividades Se observa en este estudio que el DISC de Brunel, es un departamento formado por un grupo de docentes preocupados por buscar nuevos mtodos de enseanza, que permita que los estudiantes adquieran de una manera adecuada los conocimientos de la programacin. En este estudio los estudiantes experimentaron nuevos cambios que fueron favorables en su aprendizaje de POO, gracias a la introduccin del nuevo libro, al fcil y rpido acceso a WebCT, al ambiente de programacin BlueJ. Los estudiantes estaban ms animados, se mantenan al da en el curso, tenan menos problemas comprendiendo la diferencia entre clases y objetos y comparado con los aos anteriores estaban ms inclinados a resolver problemas diseando clases.

3.2 OOP with BlueJ


En [3] se presenta la POO como una muy buena herramienta para ensear a los principiantes las metodologas de programacin. De acuerdo a [3], en la Universidad de Macedonia se ense a los estudiantes los conceptos principales de programacin el segundo semestre con la utilizacin del lenguaje de programacin C y POO en el tercer semestre, que consista en 2 horas tericas por semana en donde el docente presentaba el material de la clase con la ayuda de diapositivas, y 2 horas de sesiones de laboratorio por semana en donde generalmente los estudiantes resolvan problemas con la ayuda del instructor o por ellos mismos. En toral 11 horas tericas y 11 horas de sesiones de laboratorio se impartieron a un aproximado de 45 estudiantes. Todo el curso fue basado en el libro de texto y las sugerencias didcticas que presentaba. Se encontraron en [3] las siguientes dificultades:

1.

2.

Dificultades atribuidas a las caractersticas especiales de la POO. a) Algunos estudiantes confundan clases con objetos, clases con mtodos. b) Los estudiantes encontraron dificultad con las colecciones de tamao flexibes como ArrayList. c) Un significativo nmero de estudiantes encontr dificultad para comprender como la herencia mltiple se aplica en Java. d) Algunos estudiantes crean que las clases abstractas, y no interfaces, slo podan contener mtodos abstractos. Un mayor nmero de estudiantes crea que tanto la clase abstracta y las interfaces slo pueden contener mtodos abstractos. e) Muchos estudiantes malinterpretan la informacin suministrada a partir de los diagramas de clases. f) Debilidad en la descripcin de una funcin, rol de las clases, mtodos y campos. g) Uno inadecuado de las llamadas a mtodos y la notacin de punto. Dificultades que pueden ser atribuidas a las caractersticas del ambiente de programacin. a) En algunos casos las dificultades parecen tener su raz en la importancia que le da el autor de BlueJ a las representaciones grficas de las estructuras de un proyecto y sus elementos (clases, mtodos, objetos) en relacin con el cdigo. b) En otros casos se observ que los estudiantes presentaban dificultades en extraer informacin del cdigo del cdigo del programa pero extraan informacin clara de los diagramas creados con BlueJ. c) En casos en los que los estudiantes tenan que desrrollar nuevo cdigo se observ mayor cantidad de respuestas errneas o simplemente no haba respuesta, lo que poda atribuirse en parte a la falta de equilibrio entre las representaciones grficas y el cdigo textual.

En [3] presentan los resultados obtenidos en la enseanza de la POO durante un semestre de un curso de programacin regular en el Departamento de Gestin de Tecnologa de la Universidad de Macedonia, en donde presentan los logros, dificultades, errores y conceptos errneos que los estudiantes encontraron. Este documento intent estudiar hasta qu punto es efectiva la propuesta de ensear POO con BlueJ presentada en el libro Objects First with Java: A practical introduction using BlueJ de Kolling and Barnes, el cual se utiliz como libro de texto. La enseanza del curso de POO fue basado en lecciones del libro y en el ambiente de programacin BlueJ.

3.3 Re-designing an OOP course base on BlueJ


En [4] se presenta la evolucin del rediseo de un curso de POO basado en BlueJ, cuyo estudio tuvo sus inicios en [3], durante un semestre en un curso de programacin. El objetivo del curso era que los estudiantes comprendieran y fueran capaces de utilizar los conceptos bsicos de POO, o sea la utilizacin de las libreras de clases bsicas, diseo de aplicaciones simples usando la tcnica de diseo de Orientacin a Objetos (OO) y a la vez programar e implementar programas en Java. La organizacin del curso de POO se bas en los siguientes puntos[4]: a. Los lineamientos bsicos para ensear POO presentado por Kolling y Rosenberg en su publicacin Guidelines for Teaching Object Orientation with Java. El ambiente de programacin BlueJ. El libro Objects First with Java: A practical introduction using BlueJde Kolling and Barnes, el cual tiene una muy buena propuesta de enseanza para introducir a los estudiantes en la POO.

b. c.

De acuerdo a estudios anteriores de [3]se presentan algunas dificultades encontradas en la enseanza de la POO, como lo son: a. La falta de entornos de programacin diseados adecuadamente para la enseanza de POO en general, y para los programadores novatos ms especficamente. La transicin del paradigma de la programacin procedimental hacia el paradigma de la POO. La filosofa de la enseanza que est basada en el enfoque seguido por la programacin procedimental, lo que quiere decir que los conceptos de POO como las clases, objetos, herencia, y as sucesivamente son enseados despus de los elementos bsicos de un lenguaje de programacin, las estructuras de control y sus funciones.

El tercer semestre de este curso fue evaluado por primera vez en el periodo 2005-2006 en [3]. Nuevamente los conceptos principales de programacin se impartieron a los estudiantes en el segundo semestre con la utilizacin del lenguaje de programacin C y POO en el tercer semestre, que consista en 2 horas tericas por semana y 2 horas de sesiones de laboratorio por semana. En toral 11 horas tericas y 11 horas de sesiones de laboratorio se impartieron a un aproximado de 45 estudiantes[4]. Los estudiantes deban presentar dos o ms asignaciones por semana siguiendo los lineamientos presentados por Kolling and Rosenberg, basados principalmente en la segunda y tercera directriz que afirman que un estudiante debe empezar por hacer pequeos cambios en el cdigo existente y el aprendizaje de la lectura del cdigo respectivamente. As que las asignaciones se basan en el trabajo con proyectos existentes que tienen que ser estudiados y entendidos para luego ser cambiado y/o ampliados, por lo general mejorando un mtodo existente o agregando uno nuevo y con menos frecuencia adicionando estados (campos) o nuevas clases[4]. En la Tabla 2 se muestran los contenidos del curso de rediseo presentado en [4]:

b. c.

Tabla 2. Contenidos del curso de rediseo. Leccin 1. 2. Contenido Objetos y clases, parmetros, el ambiente BlueJ. Comprendiendo definicin de las clases: definicin de las clases, campos, constructores, mtodos. Interaccin con los objetos: objetos creando objetos, constructores mltiples. Agrupando objetos en colecciones de tamaos flexibles (ArrayList), colecciones de tamao fijo (Array). Usando libreras de clases (la clase Random, HashMap, HashSet). Pruebas y Depuracin. Diseando clases: cohesin, duplicacin de cdigo, reutilizacin de cdigo. Improvisando estructuras con herencia. Polimorfismo, overriding.

3.

4.

El curso presentado en [5] fue enseado por primera vez en el periodo 2005-2006, estaba basado en el ambiente BlueJ, acompaado del libro de texto Objects First with Java: A practical introduction using BlueJde Kolling and Barnes y de los lineamientos para la enseanza de BlueJ, con una organizacin de 11 horas de sesiones tericas y 11 horas de sesiones de laboratorio. En este estudio se hacen algunos cambios con respecto al estudio anterior y se utiliza el ambiente de programacin BlueJ y se introduce a los estudiantes en los conceptos principales de POO con la ayuda del micromundo de programacin ObjectKarel, el cual est basado en Karel++[5]. Tambin se mencionan en [5] algunas dificultades que se presentaron en el estudio previo, las cuales se mencionan a continuacin: Tpicas: aquellas dificultades que fueron encontradas y que son independientes del paradigma de programacin. Dificultades que fueron atribuidas a las caractersticas especiales del ambiente BlueJ, como: a. Constructores b. Instanciacin de objetos c. Mtodos set (mutadores) d. Mtodos get (de acceso) e. Llamada al mtodo f. Modificacin de accesos g. Coleccin de objetos h. Herencia i. Clases abstractas e interfaces Luego, en el rediseo del curso presentado en [4] se presentaron dificultades como: Los estudiantes usaban la GUI de BlueJ para la creacin de objetos y la llamada a sus mtodos en las primeras tres lecciones y en la cuarta leccin (en lugar de la onceava en el primer curso) iniciaron el uso del mtodo principal. Los estudiantes fueron cuidadosos en la utilizacin de las caractersticas de BlueJ y despus de la cuarta leccin se les pidi lograr los resultados esperados y tambin proveer el cdigo fuente. Los estudiantes comenzaron a desarrollar proyectos sencillos de cero mucho antes en el semestre. La sexta leccin acerca de depuracin fue omitida y en su lugar se dedicaron dos lecciones a la coleccin de objetos (arrayList) que fue uno de los conceptos ms difciles para los estudiantes. Situaciones especiales de didctica y fueron diseadas en base a los resultados obtenidos de la evaluacin. De acuerdo a los resultados obtenidos en [4], la evaluacin del rediseo del curso dio mejores resultados que la primera versin del curso, ya que algunas dificultades que se atribuyeron a las caractersticas de BlueJ y al uso tardo de la funcin main fueron eliminadas, al igual que algunas dificultades que fueron atribuidas a proyectos existentes se resolvieron de manera satisfactoria[5].

5.

6. 7.

8. 9.

10. Clases abstractas e interfaces. 11. Mtodos estticos ejecutando sin BlueJ. el mtodo principal,

Este curso fue evaluado mediante el estudio a fondo de las respuestas dadas a los cuestionarios, las soluciones a los problemas resueltos tanto en el laboratorio como en el hogar y los resultados de los exmenes finales[4]. Los errores, malentendidos y dificultades que se registraron en [4] fueron clasificados en tres categoras, como se muestra a continuacin: a. Dificultades encontradas en casi todos los cursos de iniciacin a la programacin, sin importar cul sea el paradigma de programacin. b. Dificultades atribuidas a las caractersticas especiales de la POO. c. Dificultades que puedan atribuirse a toda la organizacin del curso y sobre todo a las caractersticas del entorno de programacin. En [4] las dos primeras categoras de las dificultades que se caracterizan como un aspecto intrnseco al aprendizaje de programacin, mientras que la tercera categora la relacionan estrechamente con el diseo del curso[4].

3.4 Object Karel and BlueJ

Se presentan en [5], cambios en la secuencia de actividades y en las asignaciones utilizadas para comprender ArrayList. Se introduce ObjectKarel con la finalidad de que los estudiantes adquirieran el conocimiento. De esta forma se presentan en la Tabla 3 y 4 los resultados comparativos de las tres versiones de este curso, basados en los exmenes escritos[5]. Tabla 3. Respuestas correctas. 1ero:05-06 Respondidas(%) Correctas(%) 2do:06-07 Respondidas(%) Correctas(%) 3ro:08-09 Respondidas(%) Correctas(%)

con los estudiantes. Estos hallazgos permiten a los docentes el buscar nuevas metodologas de enseanza que faciliten a los estudiantes el aprendizaje del paradigma de programacin.

4. UNA METODOLOGA DE APRENDIZAJE DE PROGRAMACIN ORIENTADO A OBJETOS (POO) BASADA EN EXTREME PROGRAMMING (XP)
Con el objetivo principal de establecer una nueva forma de enseanza en cuanto a la programacin se refiere, se plantea el estudio comparativo de dos metodologas diferentes en la enseanza de la POO, de tal forma que se propone como un mtodo innovador y provechoso tanto para docentes como para los estudiantes, la integracin de las Tics en la metodologa didctica de la enseanza de la POO, utilizando dos herramientas tecnolgicas muy importantes, las cuales sern de gran ayuda en el proceso de E-A y se muestran a continuacin.

(2.1) Constructor (2.3) Mtodo "set" (2.4) Mtodo "get" (2.7) ArrayList (2.2, 2.5) Main

54 79 88 76 45

54 50 79 4 0

89 81 84 59 52

58 56 72 8 3

94 95 97 47 76

72 73 87 14 9

Tabla 4. Dificultades de los estudiantes (%). 1ero. Perdiendo argumentos en la llamada de mtodos. 53 Perdiendo () en mtodos sin 1 argumentos. 27 Llamando un mtodo no nulo como 1 nulo. 33 Los parmetros en un constructor tienen los mismos nombres que los 2.1 campos pero estos no son usados. 8 Campos con valores asignados de identificadores no declarados y no de 2.1 los parmetros. 0 2.1 Mala iniciacin de campos. 29 2.1 El cuerpo del constructor est vaco. 8 2.2 El tipo de variable objeto se pierde. 13 Los nombres de los campos que son actualizados son usados como 2.3 argumentos en mtodos set. 0 Declarando como un tipo de retorno de un mtodo set el parmetro (en 2.3 vez de vaco). 15 Mtodo Fusin de campo en 2.4 mtodo get. 7 Acceso directo a campos privados 2.4, fuera de sus clases en lugar de usar el 2.6 mtodo get. 32 Llamando un mtodo sin su 2.5 instancia. 7 2.7 Manipulando un ArrayList. 1 2do. 33 6 6 3ro. 45 0 30

4.1 Tecnologas y Herramientas 4.1.1 Cmap Tools


Los Mapas Conceptuales, tal y como se conocen actualmente fueron desarrollados en 1972 dentro de un proyecto de investigacin a cargo del Dr. Joseph D. Novak, en la Universidad de Cornell. En 1984, Novak propuso la utilizacin de los mapas conceptuales para representar el conocimiento como una red consistente de nodos que representan los conceptos y los enlaces que representan las relaciones entre los conceptos[6]. En un mapa conceptual los conceptos son la generalizacin del conocimiento de las ideas transmitidas de alguna forma, por ejemplo, libros, documentos, lecturas, etc. Las proposiciones expresan como los conceptos estn relacionados entre s, de tal forma que un mapa conceptual est compuesto de conceptos, proposiciones y palabras de enlace, las cuales permiten darle sentido completo a la proposicin[7]. Los mapas conceptuales son representaciones bidimensionales de las estructuras cognitivas, en donde se muestran las jerarquas y las interconexiones de los conceptos involucrados. Es una importante herramienta para desarrollar habilidades intuitivas, lo cual es importante para centrarse en lo que se conoce y en la nueva informacin, de tal forma que las habilidades intuitivas nos permiten establecer las relaciones, o sea organizar la informacin por grupos[7]. Los mapas conceptuales son representaciones grficas de las relaciones entre conceptos, en donde sus interrelaciones representan una estructura de conocimiento (esquema mental) que el estudiante puede recordar en su memoria por un largo periodo de tiempo, debido a que en la construccin de mapas lo que se busca es enlazar conceptos relevantes al tema, que sean de gran

7 33 0 0

7 23 0 0

12 0

5 0

3 12

0 0

Despus de analizar el estudio presentado en [5], se observa que despus de realizar una serie de estudios sobre cmo ensear POO y qu herramientas utilizar en la enseanza, se encontraron muchas dificultades, pero tambin se lograron grandes avances

importancia para el desarrollo y comprensin de los temas que se estn tratando[6-9]. En [7] se presentan las caractersticas de los mapas conceptuales: a. Un mapa conceptual jerrquico contiene el concepto ms general en la parte superior y la ms especfica en la parte inferior. Los enlaces cruzados son utilizados para enlazar diferentes segmentos en el mapa. Los ejemplos ayudan a aclarar el significado de los conceptos.

b. c.

Las principales caractersticas de este programa son: Entorno de trabajo sencillo, claro e intuitivo; ventana de estilos (Formato/Estilos) que facilita el trabajo; conceptos que se pueden ilustrar con smbolos, imgenes, colores, formas, sombras, fuentes y estilos; conceptos que se relacionan fcilmente mediante enlaces; relaciones que se explican con un texto en los enlaces, textos en los que se pueden cambiar de minscula a mayscula y viceversa; conceptos que pueden cambiarse de posicin sin romper los enlaces, solo se necesita arrastrarlos, u organizarlos automticamente[9].

4.1.2 BlueJ
BlueJ, es un ambiente de desarrollo integrado e interactivo, diseado especficamente como un ambiente para ensear la introduccin a la POO en Java, siendo esta tecnologa muy til para la enseanza del paradigma de la Orientacin a Objetos (OO). Este ambiente de programacin fue desarrollado por Deakin University, Melbourne, Australia y la Universidad de Kent, Kent, USA[10]. BlueJ consta de un editor, un compilador, una JVM y un depurador. Uno de sus principales atractivos es que incluye una ventana en la que despliega grficamente la estructura de clases parecido a UML y soporta la generacin de cdigo a partir de los diagramas. Este sistema puede ser descargado de forma gratuita de la Internet. En la actualidad muchos libros usan BlueJ o hacen referencia de este entorno como un mecanismo para la ejecucin de ejercicios de programacin[10]. Las principales fortalezas de BlueJ son las siguientes[2, 10]: Se proporciona una visualizacin de la estructura de clases, muestra automticamente en un diagrama UML las representaciones de las clases y sus relaciones en un proyecto. Los usuarios pueden crear directamente objetos de cualquier clase y luego interactuar con los mtodos. Se puede probar un mtodo inmediatamente despus de que se ha escrito, sin la necesidad de escribir pruebas piloto, lo que convierte esta fortaleza en una ayuda muy valiosa en la comprensin de conceptos y detalles del lenguaje. Adems de proporcionar un editor de texto especializado en Java en cierta medida, permite que el usuario compile el cdigo resultante y cree instancias de objetos, con independencia de cualquier programa en particular, de tal forma que los objetos que son instanciados se ejecutan como parte del entorno BlueJ, pero para el usuario parecen existir de manera independiente.

Lineamientos a la hora de hacer un buen mapa conceptual[7]: Tomar nota de los conceptos ms importantes. Tomar nota de los conceptos ms especficos para cada uno de los conceptos principales, para agrupar las ideas relacionadas. Articular entre las ideas principales Escribir palabras de enlace. Realizar el entrecruzamiento entre segmentos del mapa (punta de flecha hacia arriba para vincular). Etiquetar las lneas con la vinculacin de las palabras o frases de enlace, para formar declaraciones significativas. Cmaps Tool es una herramienta que permite la construccin del conocimiento, de tal forma que los estudiantes adquieren nuevos conocimientos a travs de la construccin de mapas conceptuales. Cmap Tools es un programa creado por el Instituto de Ciencia Cognitiva (IHMC) de la Universidad de West Florida, utilizado alrededor del mundo por millones de personas, desde nios que se encuentran recibiendo educacin bsica hasta cientficos de la NASA para expresar y compartir su conocimiento en cualquier tema. Esta herramienta es de utilizacin libre y est disponible en ms de quince idiomas. Est basado en una arquitectura clienteservidor[9]. Cmap Tools fue creado en Java, es multiplataforma, nos permite adentrarnos en el campo de la enseanza significativa con recursos multimedia, permitindole a los estudiantes el trabajar de forma colaborativa con otros estudiantes a nivel local individual como en red, donde el estudiante tendr la oportunidad de investigar sobre temas relacionados, resolver sus dudas, complementar sus trabajos, etc. Esta herramienta permite el intercambio y publicacin de modelos de conocimiento representados como mapas conceptuales[9]. Tambin permite al estudiante indexar diferentes tipos de recursos entre los cuales estn: Imgenes PNG, GIF, JPEG, Pginas web, Pelculas de vdeo, Ficheros PDF de Adobe, Documentos de audio, Documentos de texto en formato TXT[9]. Otras de sus bondades es el poder exportar el proyecto completo a HTML, convirtiendo los mismos en pginas web de manera inmediata y permitindole ser publicados en Internet gracias a los servidores pblicos con que cuenta la red de Cmap Tools[9].

4.1.3 Extreme Programming (XP)


Las metodologas giles de desarrollo de software se centran en el factor humano, as como tambin en el producto de software, el cual se basa en pequeas versiones, dndole ms valor al

individuo, al trabajo colaborativo y al desarrollo de software en conjunto con el cliente, quien puede monitorear constantemente el producto de software a travs de su desarrollo[11]. La programacin extrema como tal, es la metodologa gil de desarrollo de software ms popular actualmente, ya que busca cambiar el concepto tradicional de desarrollo de software, en el que se centra la atencin en establecer todos los requerimientos del software al inicio del proyecto de forma que el mismo no requiera de modificaciones posteriores, por un nuevo enfoque en el que se busca la flexibilidad del software a modificaciones cuando se consideren necesarias y que las mismas no afecten el proyecto. Se muestra a continuacin la Tabla No. 5, que contiene las reglas en las cuales se basa la programacin extrema[11] y cmo podran ser aplicadas en nuestro proyecto. Tabla 5. Reglas de XP y su aplicacin en la Propuesta: 1. Equipo completo: Se formarn equipos completos por salones de clases, incluyendo al docente, quien en este caso desempea las funciones del cliente. 2. Planificacin: En este caso el docente es quien planificar los requerimientos y en qu orden se trabajarn y revisar continuamente. 3. Test del cliente: En este caso el docente propone las pruebas para validar si las mini versiones estn funcionando. 4. Versiones Pequeas: Debido al rea de aplicacin de la propuesta, se trabajarn versiones pequeas y tiles de software. 5. Diseo simple: Se les solicitar desarrollar las mini versiones de la forma ms sencilla posible. 6. Pareja de programadores: Se formarn grupos de trabajo de dos estudiantes por estacin de trabajo y se rotarn una vez por cada sesin de laboratorio, de tal forma que el cdigo sea conocido por todos los integrantes del proyecto. 7. Desarrollo guiado por pruebas automticas: BlueJ posee una funcin que permite realizarse pruebas a las mini versiones que se vayan creando. 8. Mejora del diseo: La rotacin de pares por sesiones de clase, permite que se mejore el diseo del software. 9. Integracin continua: Integrar continuamente las mini versiones al proyecto. 10. El cdigo es de todos: Todos los pares sern rotados y trabajarn en las mini versiones de los dems grupos y el cdigo ser propiedad de todos los colaboradores del proyecto. 11. Normas de codificacin: Mantener un estilo comn de desarrollo (por definir). 12. Metforas: Cada parte del programa ser definida por nombres para que sean entendibles por todos los integrantes del equipo. 13. Ritmo sostenible: Se trabajar en todas las sesiones de clases, sin interrupciones.

Consideramos que la utilizacin de las tecnologas y herramientas propuestas nos servirn de apoyo en la realizacin de nuestro proyecto de investigacin gracias a las caractersticas de cada una de ellas.

4.2 Arquitectura del Ambiente a Utilizar


La presente investigacin tiene como principal objetivo el estudio comparativo de dos segmentos de la poblacin estudiantil, del mismo nivel escolar, en este caso de 11, los cuales, de forma paralela, se dedicarn al aprendizaje de Java, como un lenguaje de POO, utilizando diferentes metodologas de enseanza en el proceso de Enseanza-Aprendizaje (E-A). Se trabajar con la carga horaria establecida por el centro acadmico para el curso regular de Programacin I, que consiste en 3 horas semanales de sesiones tericas y dos horas semanales de sesiones de laboratorio, en donde se trabajar con grupos de aproximadamente 30 a 35 estudiantes, en aulas que cuentan con aproximadamente con 20 computadoras. Este estudio se aplicar en un periodo comprendido a dos bimestres de clases regulares. El primer grupo trabajar en el estudio de Java de manera tradicional, utilizando programacin secuencial, la cual se basa en la creacin de programas a partir de un conjunto de sentencias escritas de forma secuencial y cuya ejecucin sigue dicha secuencia. En cuanto a la evaluacin, la cual es una actividad o proceso sistemtico de identificacin, recogida o tratamiento de datos sobre elementos o hechos educativos, con el objetivo de valorarlos primero y, sobre dicha valoracin, tomar decisiones (Garca Ramos, 1989). La evaluacin formativa es el tipo de evaluacin que se utiliza preferentemente como estrategia para mejorar y ajustar sobre la marcha los procesos educativos con la finalidad de conseguir las metas u objetivos planteados. Esta tipo de evaluacin es considerada la ms apropiada para la evaluacin de procesos, ya que sus resultados se empleen para mejorar los mismos. La evaluacin formativa es considerada como una evaluacin continua. En cuanto a la evaluacin formativa, el primer grupo de estudiantes, recibir en el aula de clases las explicaciones necesarias sobre los temas relevantes del lenguaje Java, para que los mismos puedan comprender de una manera clara el contenido de la clase. Se les asignar la realizacin de una tarea semanal sobre los tpicos dados previamente en clase, lo que contribuir con su formacin de conocimientos con respecto a los temas tratados previamente en clase y de la misma forma permitir al docente visualizar las deficiencias de los estudiantes, de tal forma de tomar los correctivos adecuados e ir mejorando progresivamente. Todo el material impartido en clase posteriormente se tratar en las horas de laboratorio. Para medir el rendimiento acadmico de los estudiantes en este proceso, la evaluacin sumativa de los conocimientos adquiridos se dar a travs de asignaciones semanales (tareas) relacionadas

con los temas tratados en clases y una prueba o ejercicio cada dos semanas para medir tanto los conocimientos adquiridos como deficiencias que los estudiantes vayan presentando en el transcurso de la materia de Programacin I. En la figura 1, se muestra el enfoque tradicional de enseanza de la programacin.

Figura 2. Metodologa propuesta para la enseanza de la POO, utilizando Cmap Tools y BlueJ. Una vez que los estudiantes hayan adquirido los conocimientos necesarios sobre Java, como lenguaje de POO a travs de los mapas conceptuales, se les introducir en la programacin en Java, utilizando la herramienta BlueJ, la cual es una interfaz para el desarrollo de aplicaciones en Java. BlueJ es un ambiente que permite que los principiantes aprendan POO de una manera fcil[3]. Al igual que en el primer caso se les aplicar a los estudiantes evaluaciones sumativas, que comprende una tarea por semana y una prueba o ejercicio cada dos semanas, con el objetivo de medir el rendimiento acadmico de los estudiantes. Los contenidos propuestos para este estudio (sujetos a modificacin) se presentan en la Tabla 5, que se muestra a continuacin: Tabla 5. Contenidos propuestos para el curso de Programacin I. Leccin 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Contenido de la leccin La POO como base de Java Instrucciones Bsicas (Declaracin, Sintaxis) Sentencias de Decisiones Ciclos Funciones y Mtodos Arreglos unidimensionales Recursividad Herencia Polimorfismo Tcnicas de Ordenamiento

Figura 1. Mapa Conceptual del enfoque tradicional de enseanza de la programacin, creado con Cmap Tools. De forma paralela, se trabajar con un segundo grupo de estudiantes del mismo nivel escolar, quienes estarn tambin orientados al estudio del mismo lenguaje de programacin. Para este segundo grupo, la evaluacin formativa se trabajar diferente, con la ayuda de Cmap Tools, la cual es una herramienta muy til para organizar y representar el conocimiento a travs de mapas conceptuales, la misma permitir que los estudiantes comprendan claramente los conceptos generales de programacin y el modelado del algoritmo, que no es ms que el anlisis del problema. Gracias a Cmap Tools, los estudiantes aprendern los conceptos bsicos del lenguaje de POO. Terminada la etapa de aprendizaje de conceptos, los estudiantes sern capaces de iniciar en la fase de implementacin del algoritmo en un lenguaje de POO, en este caso Java, utilizando la herramienta BlueJ, la cual es una interfaz para el desarrollo de aplicaciones en Java a un nivel introductorio. Tambin se les asignar la realizacin de una tarea semanal sobre los tpicos dados previamente en clase con el objetivo de reforzar los conocimientos adquiridos previamente. En la figura 2, se presenta un esquema de la propuesta, utilizando las tecnologas Cmap Tools y Blue J.

5. CONCLUSIONES
Es necesario preparar adecuadamente a los jvenes que egresan cada ao de Bachilleratos en Informtica o reas afines, en los que el estudio de algn lenguaje de programacin resulta imprescindible. Como docentes, debemos contribuir a que los estudiantes que cada ao intentan ingresar a universidades que ofrecen carreras del rea de Informtica, tengan una mejor preparacin acadmica a la hora de hacer las pruebas de admisin para ser admitidos en alguna carrera de su rea de formacin y evitarles en gran medida que su experiencia resulte frustrante. La enseanza de la POO no es una tarea simple, sin embargo muchos docentes preocupados por el aprendizaje de sus estudiantes, buscan nuevas formas de ensear este paradigma. Con la utilizacin de las Tics en esta propuesta, se pretende que los estudiantes puedan comprender ms claramente los conceptos relacionados con la POO y su posterior implementacin en comparacin con los mtodos tradicionales de enseanza. [3]

[4]

[5]

[6]

[7] [8] [9] [10] [11]

6. REFERENCIAS
[1] [2] L. J. Aguilar and M. F. Azuela, Java2. Manual de Programacin, 2001. J. Kuljis, "Orienting the Teaching of an Introductory Object-Oriented Programming to Meet the Learning

Objective," presented at the 26th Int. Conf. Information Techonlogy Interfaces ITI 2004, Cavtat, Croatia, June 7-10, 2004. S. Xinogalos, et al., "Teaching OOP with BlueJ: A Case Study," in Sixth International Conference on Advanced Learning Technologies (ICALT'06), 2006. S. Xinogalos, et al., "Re-designing an OOP course based on BlueJ," presented at the Seventh International Conference on Advanced Learning Technologies (ICALT'07), 2007. S. Xinogalos and M. Satratzemi, "A Long-Term Evaluation and Reformation of and Object Oriented Design and Programming Course," presented at the 2009 Ninth IEEE Conference on Advanced Learning Technologies, 2009. P.-C. Sue, et al., "A New Approach for Constructing the Concept Map," presented at the IEEE International Conference on Advanced Learning Technologies (ICALT'04), 2004. G. K. Saha, "Understanding Dependable Computing Concepts," November 6-12, 2007. S. L. Miertschin and C. L. Willis, "Using Concept Maps to Navigate Complex Learning Environment," 2007. IHMC. (2010, May 18). http://cmap.ihmc.us. M. Farrow and P. J. B. King, "Experiences With Online Programming Examinations," May 2008. P. L. Ph.D. and M. C. P. Ph.D., "Metodologas giles para el desarrollo de software: eXtreme Programming (XP)."

Vous aimerez peut-être aussi