Poyecto para enseñar a programar
-
Upload
wilson-daniel -
Category
Documents
-
view
221 -
download
0
Transcript of Poyecto para enseñar a programar
-
8/2/2019 Poyecto para ensear a programar
1/10
Memoria del Proyecto de Innovacin Docente
APRENDIZAJE ACTIVO DE
PROGRAMACIN CON LEGO
MINDSTORMS NXT
Profesor responsable
Juan Carlos Matos Franco
Departamento de Informtica y Automtica
Escuela Politcnica Superior de Zamora
Entidad financiadora
Universidad de Salamanca
Periodo de desarrollo
Julio/2010 Junio/2011
Dirigido a
Vicerrectorado de Docencia y Convergencia Europea
-
8/2/2019 Poyecto para ensear a programar
2/10
2
NDICE
1. INTRODUCCIN................................................................................................... 3
2. JUSTIFICACIN DEL PROYECTO Y UTILIDAD.......................................... 3
3. OBJETIVOS Y METODOLOGA........................................................................ 4
4.
PLAN DE TRABAJO SEGUIDO.......................................................................... 6
5. VALORACIN DE RESULTADOS..................................................................... 8
6. CONCLUSIONES Y LNEAS DE TRABAJO FUTURAS................................. 9
7. REFERENCIAS .................................................................................................... 10
-
8/2/2019 Poyecto para ensear a programar
3/10
3
1. INTRODUCCINLosLego Mindstorms NXTson unos robots de tipo educativo que estn basados en
el popular juego de construccin Lego, integrados por diferentes partes mecnicas y
electromecnicas controladas por un bloque programable. Este bloque es un computador
integrado (NXT) que puede ser programado de forma flexible, ya que admite diferentes
lenguajes de programacin (adems del que trae por defecto), de forma que el robot
puede recibir informacin del entorno a travs de distintos sensores y realizar una serie
de operaciones con sus actuadores (Figura 1).
Figura 1. Bloque NXT, sensores y actuadores disponibles en el paquete educativo.
2. JUSTIFICACIN DEL PROYECTO Y UTILIDADEl propsito principal de la aplicacin de este proyecto ha sido que el estudiante
emplease diferentes metodologas de programacin sobre un dispositivo fsico (en
concreto programarlo con los lenguajes C y Java), y que observase lo que ocurra
cuando ste interactuaba con el mundo real. Con los Lego Mindstorms NXTel alumno
puede solucionar problemas de diversa ndole, algunos de los cuales ya se han resuelto
de forma terica en el aula, observando adems que puede tomar datos del entorno,
tratarlos y actuar en consecuencia. Con ello se ha pretendido aumentar la comprensin
de las asignaturas de programacin y la motivacin de los alumnos en el aprendizaje dela misma, mediante una aplicacin prctica.
-
8/2/2019 Poyecto para ensear a programar
4/10
4
Otro propsito del proyecto fue potenciar el aprendizaje colaborativo mediante la
creacin de grupos de trabajo organizados de forma que cada alumno se encargase de
una parte del trabajo y tomase decisiones por su cuenta (seleccin de los elementos
del robot, diseo de funcionalidades, bsqueda de soluciones, etc.), integrndose
posteriormente todo en el proyecto global.
Por ltimo se plante que cada alumno realizase un informe, de forma individual,
exponiendo sus aportaciones al trabajo realizado e indicando qu dificultades se haba
encontrado en su desarrollo y qu conclusiones haba alcanzado tras la realizacin de
cada una de las prcticas.
3. OBJETIVOS Y METODOLOGALos objetivos del proyecto fueron ligeramente diferentes segn la asignatura en la
que se aplicaron:
En la asignatura Fundamentos de programacin se aprende a programar utilizandouna programacin estructurada, para la cual se emplea el lenguaje C. Los Lego
Mindstorms pueden programarse con extensiones del lenguaje C (RobotC,Not Quite
C, etc.) que cuentan con entornos integrados de desarrollo multiplataforma (con
versiones para Windows, Linux y OSX) y con potentes herramientas adicionales. Las
prcticas que se realizaron para esta asignatura se encaminaron a la realizacin de
funciones y procedimientos especficos para controlar los robots, empleando para ello
elementos de programacin del lenguaje C (datos, estructuras de control, etc.).
Aunque inicialmente se intent emplearNot Quite C, dado su carcter libre, al final se
utiliz la extensin comercial RobotC for Mindstorms 2.26.1 (Figura 2), que incluyetambin un entorno de desarrollo integrado (IDE), dado que Not Quite Cno funciona
actualmente con los modelos NXT (slo lo hace con los antiguos robots RCX).
En las asignaturas de Programacin Orientada a Objetos, tanto de IngenieraTcnica en Informtica de Gestin como del Grado en Ingeniera Informtica en
Sistemas de Informacin, se emplea un enfoque orientado a objetos. La forma de
programar cambia radicalmente y para mostrar esta diferencia se propuso
inicialmente la resolucin de los mismos problemas que en la asignatura
-
8/2/2019 Poyecto para ensear a programar
5/10
5
Fundamentos de programacin, slo que desde un punto de vista diferente,
empleando clases, mtodos y propiedades (a travs de un interfaz de programacin
de aplicaciones, API), en lugar de funciones y procedimientos. Posteriormente se
desarrollaron tambin los conceptos propios de la programacin orientada a
objetos, como herencia y polimorfismo. El lenguaje utilizado en esta asignatura
fue Java, mediante elframeworkLejOS NXT, en su versin 0.8.5 y, en las ltimas
prcticas, con la nueva versin 0.9.0. Dado que los alumnos programan
bsicamente utilizando el entorno de desarrollo integrado educativo BlueJ, se
incorpor una extensin a este IDE para que les resultara familiar el sistema de
trabajo y pudiesen centrarse nicamente en las caractersticas especiales de
programacin del robot (Figura 3).
Figura 2. Ventana del IDE deRobotC.
Figura 3. Ventana del IDE deBlueJcon la extensin paraLego NXT.
-
8/2/2019 Poyecto para ensear a programar
6/10
6
Las asignaturas concretas en las que se aplic la metodologa de trabajo desarrollada
se detallan a continuacin:
Fundamentos de Programacin(1 curso del Grado en Ingeniera Informtica en Sistemas de Informacin).
Mtodos de Programacin(2 curso de Ingeniera de Materiales).
Programacin Orientada a Objetos(3 curso de Ingeniera Tcnica en Informtica de Gestin).
Programacin Orientada a Objetos(1 curso del Grado en Ingeniera Informtica en Sistemas de Informacin).
4. PLAN DE TRABAJO SEGUIDOEn primer lugar se efectuaron varias reuniones de coordinacin entre los profesores
del grupo para definir la estructura de las prcticas y su ubicacin en los programas de
las distintas asignaturas. En ellas tambin se hizo una planificacin temporal de la
realizacin y entrega de cada uno de los ejercicios prcticos.
Previo a la realizacin de las prcticas en cada uno de los semestres se imparti un
seminario que explicaba el funcionamiento bsico de los robots NXT: estructura,
construccin, comunicacin con el exterior a travs de sensores y actuadores y por
ltimo su programacin. Para que los estudiantes puedan crear un determinado robot
que resuelva un problema propuesto, es necesario que sepan determinar qu
componentes deben utilizar antes de programarlo.
En cada una de las asignaturas se establecieron tres ejercicios prcticos. Para
estas prcticas se definieron los grupos de trabajo, se repartieron los roles y se les
facilit un espacio de trabajo privado en el curso virtual de la asignatura en la
plataforma Studium (compuesto por un gestor de documentos, un foro, un chat y un
wiki), para que as los alumnos pudieran trabajar en lnea de forma colaborativa. Las
prcticas se fueron realizando de forma paralela al desarrollo de la asignatura, con
-
8/2/2019 Poyecto para ensear a programar
7/10
7
distintas sesiones de control tutorizadas, y los resultados obtenidos se presentaron
ante el profesor de la asignatura. Adems cada alumno, de forma individual, realiz
un informe de su trabajo.
Los estudiantes cumplimentaron tambin un pequeo cuestionario sobre su
participacin, exponiendo las dificultades que se haban encontrado en su trabajo e
indicando las observaciones que estimaron oportunas (dificultades, propuestas de
mejora, modificaciones, criterios de calificacin, etc.).
Al trmino de los dos semestres se realiz la valoracin global de la actividad y se
extrajeron las conclusiones finales del proyecto, definiendo las actuaciones necesarias
para ampliar y mejorar la docencia en los prximos cursos.
Figura 4. Etapas del desarrollo del proyecto.
Definicindelasprcticasdecadaasignatura
Propuestasdemejoraparaelprximocurso
Puestaenprcticadelnuevomodelo
Valoracinderesultados
Establecimientodelosequipos
de
trabajo
curso2010 2011
-
8/2/2019 Poyecto para ensear a programar
8/10
-
8/2/2019 Poyecto para ensear a programar
9/10
9
los robots. Otra dificultad adicional fue la comprensin del funcionamiento fsico del
robot (mecnica, movimientos, rotaciones, sensores, etc.), ya que algunos de los
alumnos de las titulaciones de Informtica nunca haban trabajado con ellos, por lo que
se les proporcion un montaje bsico de un robot con el que empezar a trabajar (Figura
5), as como un sistema de anclajes bsicos para los distintos tipos de sensores.
Figura 5. Montaje bsico del robot.
6. CONCLUSIONES Y LNEAS DE TRABAJO FUTURASEn el desarrollo de este proyecto se han utilizado robots educativosLego Mindstorms
NXTpara el aprendizaje de diferentes lenguajes (y metodologas) de Programacin. Se
han realizado una serie de aplicaciones donde el estudiante ha puesto en prctica los
conceptos tericos aprendidos en las distintas asignaturas, de forma que ha visto el
resultado de lo que programa sobre un dispositivo fsico y cmo interacta con el mundo
real. De esta manera se potencia y facilita el aprendizaje, pues se crea un entorno en el
que los estudiantes pueden desempear actividades propias de una Ingeniera.
Los resultados obtenidos con este proyecto corroboran la utilidad de la forma de
trabajo introducida. Los alumnos han aceptado el modelo de prcticas propuesto, lo han
utilizado de forma intensiva y lo han valorado positivamente. Por todo ello el prximo
-
8/2/2019 Poyecto para ensear a programar
10/10
10
curso se seguir aplicando el nuevo modelo en las asignaturas incluidas en este proyecto
y se har extensible a algunas ms, coordinadas por los profesores que han participado
en este proyecto. En concreto se trabajar conMicrosoft Robotics Studio para programar
los robots con los lenguajes C#y Visual Basic .NETen las asignaturas de programacin
del Grado en Ingeniera Mecnica, que adems incorpora la posibilidad de realizar
simulaciones 3D del proceso de trabajo.
7. REFERENCIASAI and Robots Using Lego Mindstorms NXT.
ltima modificacin: 9/3/2011. Consultado el 30/6/2011.
Barnes, D.J. (2009).Programming LEGO robots with BlueJ. SIGCSE 2009. Disponible
online: . Consultado el
30/6/2011.
Griffin, T. (2010). The Art of Lego Mindstorms NXT-G Programming. No Starch Press.
Kelly, J.F. (2010).Lego Mindstorms NXT-G Programming Guide, 2ed. Apress.LeJOS, Java for Lego Mindstorms.
ltima modificacin: 16/5/2011. Consultado el 30/6/2011.
LejOS NXJ extension for BlueJ.
ltima modificacin: N/D. Consultado el 30/6/2011.
Programar el Lego NXT desde cero con RobotC.
ltima modificacin: 22/6/2011. Consultado el 29/6/2011.
ROBOTC, a C Programming Language for Robotics.
ltima modificacin: 17/6/2011. Consultado el 30/6/2011.
Schueller, A.W. (2010).Programming with Robots. Whitman College, USA. Disponibleonline: . Consultado el 25/6/2011.