La simulación por ordenador, como herramienta científica y
técnico-profesional, ha ganado importancia progresivamente durante
las últimas décadas. Esto es especialmente notable en el ámbito de
las redes de comunicaciones, debido por una parte, al aumento de la
capacidad de procesado de los ordenadores, y por otra parte a la
creciente complejidad de las redes de comunicación. Esto ha hecho
que los modelos matemáticos empleados tradicionalmente para el
análisis y diseño de redes de comunicación de datos,
fundamentalmente basados en análisis estocástico, vayan dando paso y
en algunos casos, perdiendo terreno frente a las técnicas basadas en
simulación.
Conviene destacar que los alumnos acceden a la
asignatura sin conocimientos previos de C++, aunque sí de
programación orientada a objetos. Tampoco han recibido formación en
el resto de las herramientas comentadas (OMNeT++, perl, gnuplot). Se
debe tener en cuenta, y así se le hace saber al alumno, que el
objetivo de la asignatura no es aprender a programar en C++, por lo
que C++ no se aborda de forma exhaustiva, sino muy al contrario, tan
sólo se describe la sintaxis básica que el alumno necesitará para
implementar la mayoría de los problemas que le pueden surgir durante
el transcurso de las prácticas y el desarrollo del proyecto. Para
una cobertura más completa, se insta a que el alumno empleé la
bibliografía, incentivando su autonomía y su iniciativa a la hora de
resolver problemas.
Dr. D. Juan José Alcaraz Espin (juan.alcaraz@upct.es )
Dpto de Tecnologías de la Información y Comunicaciones
Dr. D. Esteban Egea López (esteban.egea@upct.es)
Dpto de Tecnologías de la Información y Comunicaciones
Los objetivos del programa de prácticas se han planteado en los términos que establece el nuevo modelo educativo promovido por el proceso de integración del Espacio Europeo de Enseñanza Superior. De esta forma, los objetivos de la asignatura se han expresado en términos de competencias adquiridas por el alumno. Así, los dos objetivos fundamentales del programa: (1) que el alumno adquiera conceptos teóricos relacionados con la simulación genérica de sistemas y (2) que sea capaz de emplear las herramientas necesarias para la evaluación por simulación de sistemas complejos, se plantean en términos de competencias a adquirir de la siguiente forma:
Competencias generícas:
Capacidad de organización y planificación
Capacidad crítica y de trabajo en equipo
Capacidad de aprender y de aplicar conocimientos a la práctica
Competencias específicas: Clasificadas en dos tipos: de caracter conceptucal (teórico) o procedimental (práctico).
Conecptuales: El alumno debe conocer: (1) Tecnicas de generación o por computador de números aleatorios, (2) la necesidad de simulación y los distintos modelos de simulación, (3) el algoritmo de simulación por eventos discretos y (4) técnicas de análisis estadístico de resultados de simulación.
Procedimentales. El alumno debe ser capaz de: (1) programar aplicaciones complejas con C++, (2) implementar un motor de simulación por eventos discretos, (3) utilizar librerías de simulación y consultar la documentación necesaria, (4) manejar herramientas de automatización de las simulaciones, análisis de resultados y presentación de los mismos, (5) dominar comandos básicos del sistema operativo Linux y (6) desarrollar un proyecto de simulación complejo.
Obsérvese que el objetivo fundamental de las prácticas no es el de experimentar los conceptos explicados en la parte teórica de la asignatura, sino proporcionar una visión teórica de los problemas y técnicas de simulación y, sobre todo, una experiencia práctica en la implementación de simulaciones.
La metodología empleada se apoya en dos actividades:
Estructuración de los contenidos en sesiones ``autocontenidas''. Cada sesión de prácticas aborda un contenido concreto del temario previsto. Se proporciona un cuadernillo de prácticas para cada sesión. En dicho cuadernillo se incluye, por este orden: (1) los objetivos de la práctica, separados en dos grupos, los relativos a simulación y los relativos a programación; (2) una explicación teórica, más o menos extensa en función del tema tratado, (3) un desarrollo paso a paso muy detallado de las tareas a realizar en la práctica, (4) una sección de revisión de conceptos manejados, (5) una serie de cuestiones cortas de autoevaluación, (6) una conjunto de ejercicios propuestos y (7) bibliografía relacionada.
Desarrollo de un proyecto de simulación final. Se proporciona al alumnado un documento que especifica los requisitos de un proyecto de simulación complejo: (1) introducción teórica, (2) requisitos del simulador, (3) escenarios a simular y (4) resultados a presentar, así como una serie de consejos para el desarrollo y los criterios de evaluación.
La metodología en sí es la siguiente. Dos terceras partes del curso se dedican al desarrollo presencial de las sesiones de prácticas. En cada sesión, al comienzo el profesor introduce el tema y explica brevemente los contenidos teóricos. En algunos casos, la explicación se apoya en la resolución de uno de los ejercicios planteados en el cuadernillo. Los alumnos deben a continuación seguir el desarrollo de la práctica tal y como se detalla en el cuadernillo y el profesor resuelve las dudas que surgen. Hay que destacar que para cada experimento o tarea que indica el cuadernillo se incluye una explicación del concepto manejado. La sesión finaliza con indicaciones sobre autoevaluación. El último tercio del curso se dedica al desarrollo del proyecto final. En este caso, el profesor está disponible en el horario habitual de laboratorio aunque la asistencia no es obligatoria. El profesor resuelve dudas sobre el proyecto y proporciona sugerencias e indicaciones respecto a la implementación. En el diagrama de la figura 1 se muestra una secuencia temporal en la que observamos, en cada sesión, qué conjunto de contenidos se trabajan.
La figura ilustra la secuencia temporal de contenidos por sesiones. Las líneas rojas denotan contenidos de simulación y las azules de programación.
Cada curso se propone un proyecto de simulación que aborda el estudio de un problema práctico de telemática. En general, se intenta buscar proyectos que permitan una amplia variedad de modificaciones con mínimas variaciones en el código para tener flexibilidad a la hora de plantear requisitos mínimos y funcionalidad adicional y de los resultados a exigir. En varios de los trabajos se exige además la validación del simulador sin indicar directamente cómo, de manera que los alumnos deben buscar un modelo teórico y un experimento adecuado. Con los proyectos se persiguen varios objetivos: Que los alumnos pongan en práctica los conceptos teóricos de desarrollo de modelos de simulación y apliquen y desarrollen las competencias adquiridas en el manejo de herramientas software. Al mismo tiempo, se les plantean trabajos relacionados con redes reales, tratando de despertar su curiosidad e interés y favoreciendo un conocimiento más profundo de dichas tecnologías. El planteamiento del proyecto contiene partes con una especificación más cerrada, lo que por un lado evita complicar en exceso la tarea asignada y por otro les fuerza a trabajar con el rigor y el orden necesarios en el diseño e implementación de especificaciones de sistemas de comunicaciones. Otras partes de la propuesta se dejan más abiertas para fomentar la iniciativa y la creatividad de los alumnos, así como su capacidad en la resolución de problemas. El trabajo requiere también que los alumnos trabajen en grupo, con todo lo que ello implica, y desarrollen también sus capacidades de comunicación escrita en la redacción de la memoria, de la que se le proporciona una guía general de elaboración y unos criterios de evaluación muy claros.
Resumimos a continuación algunos de los proyectos planteados hasta el momento:
Desde el momento en el que se implantó el curso en el año 2002, el planteamiento del mismo busca una implicación mayor del alumno en el proceso de aprendizaje, de acuerdo a las directrices del nuevo modelo del EEES. El formato del curso actualmente es el resultado del proceso iterativo de evaluación y realimentación obtenido cada año que se ha impartido.
La experiencia hasta el momento nos ha permitido comprobar que la calidad de los proyectos finales de simulación presentados año tras año es, por lo general, muy alta. La conclusión que extraemos de este hecho es que, a pesar de la percepción inicial de los alumnos ante la relativamente elevada carga de trabajo y de contenidos del curso, la estrategia empleada consigue los objetivos de aprendizaje planteados.