Necesidades Específicas Para La Docencia De Programación En Un Entorno .

Transcription

Necesidades específicas para la docencia de programación en un entornovirtualMa. Jesús Marco GalindoJosep Prieto BlázquezEstudios de Informática y MultimediaUniversitat Oberta de Catalunyae-mail: {mmarcog,jprieto}@uoc.eduResumen1. IntroducciónEs comúnmente aceptado el hecho de que laenseñanza de programación debe ir siempreacompañada de la realización de actividadesprácticas por parte de los estudiantes con lafinalidad de consolidar su aprendizaje en estamateria. La realización por parte del estudiante deprácticas de programación a través de un entornono-presencial de enseñanza no es tarea fácil.En el presente artículo presentamoslaexperiencia de diseño y desarrollo de un cursoinicial de programación en un entorno virtual,curso impartido desde hace cuatro años en laasignatura de Fundamentos de programación I(FPI) en las Ingenierías Técnicas de Informática(especialidades Gestión y Sistemas) de laUniversitat Oberta de Catalunya (UOC).A partir de esta experiencia, analizamosdiferentes herramientas que consideramosindispensables para impartir docencia virtual enprogramación. Herramientas que han permitidomejorar el proceso de realización de prácticasvirtuales de programación y que han contribuidopor tanto a la mejora de la satisfacción y delrendimiento efectivo de los estudiantes. Concretamente analizamos la experiencia del uso en estaasignatura de: Los laboratorios virtuales de programaciónHerramientas para la corrección automáticade programas y para la simulación dealgoritmos.VIII Jornadas de Enseñanza Universitaria de la InformáticaEl aprendizaje de las asignaturas de programaciónen las Ingenierías Informáticas se basa fundamentalmente en la realización por parte de losestudiantes de múltiples ejercicios prácticos deprogramación de dificultad progresiva a través delos cuales el estudiante adquiere y consolida susconocimientos de programación en diferenteslenguajes.Concretamente en la asignatura deFundamentos de Programación I para conseguirlos objetivos propuestos durante el semestre, secombina el estudio de la teoría algorítmica –diseño de algoritmos – con la práctica continua deprogramación en C – codificación de programas -.La pauta recomendada de estudio de estaasignatura consiste en el estudio de cinco módulosdidácticos según un calendario propuestoinicialmente y guiado por las recomendacionesdel profesor. Este estudio se combina con larealización continua de ejercicios consistentesen el diseño del algoritmo correspondiente y ensu posterior codificación en el lenguaje deprogramación C.La asimilación correcta de los conceptosdepende crucialmente de la realización continuade los ejercicios propuestos.Hasta aquí nada difiere del planteamientoclásicamente adoptado por la mayoría deasignaturas de introducción a la programación. Noobstante, el hecho de que la docencia de estaasignatura se lleve a cabo en un entorno nopresencial condiciona sustancialmente la maneraen que se desarrolla el curso y es cuando apareceCáceres, del 10 al 12 de julio de 2002

6la necesidad de incorporar herramientasespecíficas que permitan y faciliten el desarrollovirtual de este planteamiento eminentementepráctico.Formación a distancia y entornos virtualessemestre de las Ingenierías Técnicas enInformática. Actualmente tiene 1300 estudiantesrepartidos en 15 aulas diferentes, cada unacoordinada por un profesor. El objetivo básico dela asignatura es el aprendizaje de losFigura 1. Aula de Fundamentos de Programación I2. Entorno de la asignaturaLa UOC fue creada en 1995 para facilitar elaprendizaje a distancia de forma virtual dentro dela educación universitaria. El uso de la tecnología,permite romper la barrera espacio-temporal yofrecer un modelo de formación en Internet através de un campus virtual, gracias al cual, elestudiante puede acceder al aprendizaje desdecualquier lugar y en cualquier momento. Elestudiante pasa pues, a ser el centro de un procesoformativo personalizado, asistido por un equipodocente y por unos recursos didácticos y serviciosde apoyo específicos[1].La asignatura de Fundamentos de Programación I es una asignatura troncal de primerconocimientos fundamentales de programaciónestructurada, a través de la algorítmica y de larealización de prácticas en lenguaje C.El aula de teoría, que es dónde se desarrollala asignatura sigue la estructura habitual de unaula dentro del campus virtual de la UOC, [2] quetal y como refleja la figura 1 consta básicamentede: Elementos de comunicación: tablón delprofesor y foro. Elementos de acceso a la informaciónasociada: plan docente, material complementario, biblioteca virtual, registrode calificaciones, La especial importancia que adquiere en estaasignatura la realización de ejercicios prácticos

VIII Jornadas de Enseñanza Universitaria de la Informáticacomporta que los recursos habituales en una aulavirtual resulten insuficientes.Si además de esto, consideramos que el perfilde la mayoría de los estudiantes es peculiar – elestudiante medio tiene alrededor de 30 añostrabaja y tiene hijos [3] -, la necesidad deincorporar nuevos recursos didácticos quefaciliten la realización de las prácticas y por tanto,permitan sacar el máximo partido del tiempo deestudio del que dispone el estudiante, se hace deltodo evidente.7corrección automática y de simulación dealgoritmos que comentamos en los apartadossiguientes.2.1. El laboratorio virtualCon el objetivo de dar soporte a la realización deejercicios prácticos de programación aparece ellaboratorio de prácticas. Cada estudiante, pues,está asignado además de a una aula específica dela asignatura, a un laboratorio virtual.Figura 2. Aula de laboratorioPor tanto, los tres elementos clave quedeterminan la necesidad del uso de nuevosrecursos y herramientas son: El perfil específico de estudiante. La importancia de la realización deprácticas. El entorno virtual sobre el que sedesarrolla la docencia.Para dar respuesta a esta necesidad, surgenlos espacios específicos para la realización deprácticas virtuales y las herramientas deEl espacio de laboratorio tiene la mismaestructura y recursos que una aula virtual - tablerodel profesor, foro de discusión y acceso amateriales del laboratorio específicos - comomuestra la figura 2. Este espacio está coordinadopor un profesor de laboratorio específico quienasume la tarea de dar soporte y guiar a losestudiantes en la puesta en práctica de losejercicios de programación que van realizando alo largo del curso.

8De este modo, se separa la parte teórica de laasignatura - aprendizaje de la algorítmica - que sedesarrolla en el aula habitual de teoría - de la partepráctica - realización de programas sencillos enlenguaje C- que se desarrolla de manera paralelaen el aula de laboratorio asociada a la asignatura.Esta separación, como veremos, presentavarias ventajas tanto docentes como de gestión.Por un lado, desde el punto de vista puramenteacadémico, refuerza conceptualmente la importancia de la algorítmica en el aprendizaje de laprogramación ya que ayuda al estudiante adiferenciar claramente entre diseño y codificación.Esto último le permite comprender que saberprogramar no es sinónimo de conocer un lenguajede programación concreto, sino más bien dedominar las herramientas y estructuras algorítmicas, en definitiva, que para aprender programaciónes indispensable aprender a diseñar algoritmosque resuelvan problemas concretos. La posteriortraducción del algoritmo diseñado a un lenguajede programación para obtener el correspondienteprograma ejecutable, es básicamente un simplepaso de traducción del lenguaje algorítmico allenguaje concreto de programación - en este casoC-.Por otro lado, también facilita al estudianteuna orientación y apoyo continuo en la instalacióndel software -editor y compilador - y en losprocesos de codificación, compilación, depuración y pruebas de los programas que va implementando durante el semestre y que le permitenponer en práctica los conocimientos prácticos queva aprendiendo.El uso del espacio de laboratorio virtualfomenta además la comunicación y colaboraciónentre los estudiantes. Éstos pueden comentar,sugerir y preguntar todo lo que necesitenrelacionado con la realización de las prácticas conel resto de estudiantes de su aula. Además elespacio permite el uso de herramientas de trabajocooperativo que posibilitan la realización deprácticas en grupo.Y finalmente, la existencia de estos dosespacios virtuales diferenciados -aula ylaboratorio- facilita también la gestión de ladocencia dado que permite disponer de dosperfiles docentes distintos: un profesor responsable exclusivamente de la docencia de laalgorítmica y otro responsable de la programaciónen el lenguaje C, profesores por tanto conFormación a distancia y entornos virtualesobjetivos docentes distintos y especializados cadauno en su ámbito determinado aunque, evidentemente, fuertemente coordinados entre sí.La aparición de los laboratorios virtuales fuemuy bien acogida tanto por profesores como porestudiantes, razón por la cual se ha extendido suuso a otras asignaturas donde también es necesariorealizar prácticas de programación. Algunosejemplos son las asignaturas de sistemas operativos que cuentan con un laboratorio de Linux, lasde redes de ordenadores que cuentan con unLaboratorio de C avanzado o las de bases de datosy fundamentos de programación orientada aobjetos que cuentan con laboratorio de Java. Entotal, este semestre hay activos 12 laboratoriosvirtuales que dan soporte a unos 2000 estudiantesde 22 diferentes asignaturas de las IngenieríasInformáticas.Una vez presentado el funcionamiento deestos laboratorios, es importante resaltar que losprofesores de laboratorio además de encargarsedel soporte a la formación en programación en Cson los encargados de la evaluación de losejercicios de programación presentados por losestudiantes. Aunque esta función supone unvolumen de trabajo muy importante para elprofesor debido al número de estudiantes quetiene a su cargo (alrededor de 250 en cadalaboratorio), es sumamente importante que elprofesor muestre a los estudiantes los resultadosde sus ejercicios con la mayor brevedad posible.De este modo no se interrumpe su proceso deaprendizaje continuo.Para poder realizar este proceso de maneramás eficiente, se incorpora al laboratorio deprogramación una herramienta de correcciónautomática de programas, herramienta que se haconvertido de uso indispensable en las prácticasde programación y analizamos en el próximoapartado.2.2. El corrector automático de programasUn parte del tiempo que se destina a la correcciónde los ejercicios de programación consiste en lacomprobación del correcto funcionamiento deestos programas, para lo cual hay que compilar yejecutar cada uno de ellos sobre un determinadoconjunto de juegos de pruebas. Es por tanto unproceso muy repetitivo y monótono que requiere

VIII Jornadas de Enseñanza Universitaria de la Informáticamucho tiempo de dedicación por parte delprofesor.Considerando además, el gran número deestudiantes que realizan ejercicios prácticos deprogramación de evaluación continua a través dellaboratorio virtual, se hace evidente la necesidadde realizar esta tarea de corrección de maneramás eficiente.Es por ello que necesitamos herramientas paraque este proceso de comprobación del correctofuncionamiento de los programas pueda serautomatizado. De manera, el profesor recibedirectamente el resultado de esta comprobaciónsobre el ejercicio que ha presentado cada alumno,y así puede centrarse en aspectos que requieran untratamiento más individualizado y que realmenteaporten un valor añadido a la corrección delejercicio como por ejemplo la corrección yevaluación de la calidad del diseño del programa.En el mercado existen diversas herramientas,algunas de ellas creadas por universidades connecesidades parecidas. Durante cuatro semestresse ha estado utilizando en la asignatura de FPI elCeilidh, desarrollado por el departamento deComputer Science de la Univesidad deNottingham (UK). Se tuvo que adaptar el sistema Ceilidh al campus virtual de la UOC ya queestaba pensado inicialmente para funcionar sobreplataformas UNIX y conexión telnet al servidor.Se adaptó pues el sistema de tal manera que losestudiantes enviaban sus códigos fuente medianteuna adjunción en un mensaje a través del sistemade mensajería del campus virtual yautomáticamente recibía otro mensaje con lacalificación de su ejercicio.Inicialmente, el sistema se puso a disposiciónde 719 estudiantes de la asignatura que tuvieron asu disposición diversos ejercicios de programación en lenguaje Pascal para practicar.En semestres posteriores, se ha ampliado suuso a otras asignaturas que realizan prácticas enlenguajes de programación distintos como Java yC hasta llegar a ser utilizado por más de 2000estudiantes por semestre, alcanzando puntas de300 correcciones diarias entre las 15 asignaturasimplicadas.A finales del curso 2000-2001, se decidióprescindir de esta herramienta y empezar eldesarrollo de una herramienta de correcciónautomática propia. Esta decisión fue debidaprincipalmente a dificultades en el mantenimiento9y la implementación de modificaciones y al bajorendimiento, que hacían insostenible su utilizacióna largo plazo.Se inició entonces el proyecto SICAP Sistema Interactivo de Corrección Automática deProgramas - [4] cuyo objetivo principal es diseñare implementar un sistema informático que permitala corrección automática de los ejercicios deprogramación.En un sentido amplio, por corrección automática de programas se entiende desde lacomprobación de su correcta ejecución ante unconjunto de pruebas predeterminado, hasta lavalidación de la complejidad, tipografía yestructura del código fuente, así como también ladetección de posibles copias entre las solucionesaportadas por los diferentes estudiantes [5].Por ello el sistema, además de automatizar lafuncionalidad básica de corrección de programas,pretende también incorporar mecanismos deinteligencia artificial. De esta manera se posibilitaría la personalización de la respuesta facilitadaal estudiante de tal modo que, en base al resultadoobtenido en cada ejercicio, se le puedan hacerrecomendaciones de estudio concretas yparticulares. Por otro lado, ayudaría al profesor adetectar posibles errores o ambigüedades en losenunciados de los ejercicios planteados o en losjuegos de prueba utilizados para su corrección, asícomo constatar posibles problemas en lametodología planteada para el estudio decontenidos concretos.Para conseguir estos dos últimos objetivosserá necesario que el sistema cumpla dosrequerimientos básicos: Permitir la simulación de algoritmos queayuden a la comprensión de los mecanismosde diseño y de ejecución de los ejercicios deprogramación realizados como comentaremos en el próximo apartado. Incluir el uso de herramientas estadísticas, demonitorización y de minería de datos quepermitan al profesor explotar convenientemente la información y obtener elconocimiento relevante en base a losresultados obtenidos por sus estudiantes.El sistema redundará por tanto, no únicamenteen un ahorro de tiempo para el profesor sino queofrecerá además al estudiante un seguimiento máspersonalizado, y por tanto de más calidad, de laevolución de su aprendizaje. El estudiante por otro

10Formación a distancia y entornos virtualeslado, podrá interactuar ininterrumpidamente conel sistema y con ello aumentará su autonomía deestudio y le permitirá seguir un ritmo individual yflexible de aprendizaje.El resultado del proyecto permitirá disponerde un corrector automático diseñado específicamente para las necesidades actuales y futuras delas asignaturas que requieran la realización deejercicios de programación, planteado desde elprincipio como un sistema multiplataforma,estable y adaptable.SICAPestandarización a grupo del QTI (Question & TestInteroperability Specification) del IMS GlobalLearning Consortium [6] y SCORM (SharableContent Object Reference Model) [7].2.3. Simulador de algoritmosComo hemos visto, para facilitar el aprendizaje delos conceptos más abstractos de la algorítmica, esimportante disponer de herramientas deBase de DatosGenerar ÍtemGuardar ÍtemVisualizar ÍtemÍtemsAutorsnar ÍtemSeleccioGuardar EjercicioEjerciciosGestión EjercicioLista EjerciciosConsultor /ProfesorVisualizar ResultadosCorreccionesicioSeleccionar EjercRespuestasFicherosEnviar EjercicioFigura 3. Funcionamiento del sistemaEstudianteLa figura 3 muestra el funcionamientobásico del sistema.Un objetivo importante del proyecto estambién la difusión y la relación con el resto deuniversidades y centros de formación para unificarcriterios en los sistemas de corrección automáticade programas, y realizar una propuesta desimulación que ayuden al estudiante a comprender por ejemplo las estructuras básicas –secuencial, condicional e iterativa -. Con estepropósito se inició paralelamente al proyectoSICAP de corrección automática, el proyectoeADA – sistema electrónico para el aprendizaje dealgorítmica -.

VIII Jornadas de Enseñanza Universitaria de la Informática11Figura 4. Librería virtualEl objetivo de este proyecto es proporcionaral estudiante una herramienta que posibilite elseguimiento del desarrollo que necesita unalgoritmo desde su concepción hasta que está listopara ser traducido a un lenguaje de programación.Debe ayudarle aentender los principalesconceptos y estructuras algorítmicas así como adesarrollar habilidades de diseño de algoritmos.Para ello, debe dar respuesta a las siguientesfuncionalidades: Actuar como material de síntesis y deglosario de los conceptos más importantes de algorítmica.Desempeñar el papel de pizarra virtualque permita mostrar el proceso a seguirpara diseñar algoritmos.Actuar como depurador de algoritmos.Permitir la interacción del estudiantepara que éste pueda experimentar cómocambios en el diseño afectan alfuncionamiento del programa. Actuar como herramienta de aprendizajede disponibilidad continua. Incorporar el uso de recomendadoresque personalicen el aprendizaje yayuden al estudiante a resolverdificultades concretas.La herramienta ha de permitir la adaptacióncontinua de los contenidos a las necesidadesespecíficas de cada semestre y por lo tantomodificar y ampliar los contenidos de maneracómoda y ágil para los profesores.Actualmente, para dar respuesta a estanecesidad, se utiliza la biblioteca virtual de FPI –figura 4 - mientras en paralelo se emprende eldesarrollo de la primera fase del proyecto eADA.Esta primera fase consiste en la implementaciónde un prototipo con funcionalidades básicas desimulación de algoritmos y de interacción con elestudiante.

12Formación a distancia y entornos virtualesFases posteriores del proyecto contemplaránla creación de herramientas de autor para agilizarla gestión de los contenidos con los que interactúael sistema. La evolución del prototipo base deberáincorporar el uso de agentes inteligentes quepermitan una tutorización personalizada yadaptada a las necesidades concretas de cadaestudiante.debemos enfocar el estudio de futuros sistemaspara el soporte de la enseñanza virtual.Conclusiones[2] Espasa Anna, Marco Ma. Jesús. Estudicomparatiu de dues assignatures en un entornvirtual d’aprenentatge. Comunicación delTIEC. Barcelona, 2002.[3] http://www.uoc.edu/[4] Joseph Prieto Blázquez. Proyecto deEvaluación Automática SICAP. UOC, 2002.[5] J. Sohonen. Model for a semi-AutomaticAssesment Tool in a Web-Based LewarningEnvironment. International Conference onComputers Education, ICCE 2001.[6] http://imsprojct.org/question/index.html[7] http://www.adlmet.org/La docencia virtual de programación a lo largo detodos estos semestres ha puesto de manifiesto lasdificultades más importantes con las que seencuentra el estudiante durante su aprendizaje deeste tipo de contenidos en un entorno virtual.Estas dificultades pueden sintetizarse en dos: La dificultad en la compresión decontenidos abstractos que son de difíciltransmisión de manera escrita.La dificultad para la realización deprácticas no presenciales.Afortunadamente, un entorno virtual no únicamente agudiza estas dificultades sino que a la vezposibilita, como hemos visto, el uso de sistemasque permiten paliarlas en gran medida: Herramientas dinámicas y visuales desimulación.Laboratorios virtuales de programación y herramientas de correcciónautomática de programas.Estamos pues aprovechando la potencialidadque nos ofrecen las tecnologías de la informacióni comunicación para convertir, lo que se podríaconsiderar como una desventaja del entornovirtual de aprendizaje, en una ventaja pues unentorno virtual permite incorporar más fácilmenteeste tipo de herramientas automáticas y desimulación que un entorno presencial.De todos modos, habrá que evaluar québeneficios reales aportan al estudiante el uso delas herramientas que actualmente están endesarrollo, para poder comprobar en qué medidaéstas permiten paliar las dificultades de suaprendizaje no presencial. Un análisis de este tiponos permitiría además, descubrir hacia dóndeReferencias[1] J. Ma. Duart, A. Sangrà. Aprenendizaje yvirtualidad.UOC. Barcelona, 1999.

Laboratorio de C avanzado o las de ba ses de datos y fundamentos de programación orientada a objetos que cuentan con laboratorio de Java. En total, este semestre hay activos 12 laboratorios virtuales que dan soporte a unos 2000 estudiantes de 22 diferentes asignaturas de las Ingenierías Inform áticas. Una vez presentado el funcionamiento de