Download GUÍA DE APRENDIZAJE Programación II
Document related concepts
no text concepts found
Transcript
Programación II GUÍA DE APRENDIZAJE Programación II SEMESTRE OTOÑO La información contenida en esta guía es orientativa y por tanto es susceptible de modificación debido a erratas, omisiones, incidencias no previstas ocurridas durante el curso académico o si el correcto desarrollo de la asignatura así lo aconseja. .............................................................................................. Curso 2012/2013 Guía de aprendizaje. Semestre de otoño, Curso 2012‐2013. 1 Programación II INDICE Presentación ................................................................................................. 3 Profesores y soporte .................................................................................... 3 Competencias y Resultados de Aprendizaje.............................................. 5 Unidades temáticas ...................................................................................... 8 Prácticas en el laboratorio ........................................................................... 9 Distribución temporal de las unidades y prácticas. ................................ 10 PLANIFICACIÓN SEMANAL: ...................................................................... 11 Evaluación y calificación ........................................................................... 11 Convocatoria Extraordinaria (junio-julio) .............................................................. 12 Recursos de enseñanza-aprendizaje ........................................................ 12 Guía de aprendizaje. Semestre de otoño, Curso 2012‐2013. 2 Programación II Asignatura: Programación II NúmerodecréditosECTS: 6 Semestredeimpartición: 2º (Otoño) Presentación La programación es una herramienta básica para cualquier graduado en ingeniería. En concreto, tiene aplicación en cualquier ámbito de la ingeniería de telecomunicación. En la actualidad las metodologías orientadas a objetos constituyen la base fundamental de la programación de multitud de sistemas de telecomunicación. Programación II es una asignatura común a todos los grados y representa el primer contacto que tienen los estudiantes con la programación y el diseño orientado a objetos (POO). Para cursar con buenos resultados la asignatura Programación II es indispensable que el alumno tenga aprobada la asignatura Programación I. El objetivo final de esta asignatura introductoria es que el alumno sea capaz de interpretar un diseño realizado con este paradigma para posteriormente realizar la programación del mismo. En esta asignatura se utilizará el lenguaje de programación Java por su gran versatilidad, flexibilidad, y ámbito de aplicación, ya que es uno de los más extendidos y de especial aplicación para la programación en redes. La asignatura tiene 6 créditos oficiales. Esto se traduce en aproximadamente 8 horas/semana de trabajo del alumno, de media, repartidas en 16 semanas. Este trabajo incluye la asistencia activa a las clases presenciales de grupo y de laboratorio, el estudio, las búsquedas bibliográficas, realización de ejercicios y pruebas de autoevaluación, resolución de las prácticas de laboratorio y realización de las pruebas de evaluación continua. La asignatura se imparte mediante b-learning, es decir, combinando la enseñanza presencial y la no presencial, para lo cual se utilizará el entorno virtual de aprendizaje Moodle. Profesores y soporte PROFESORADO Nombre profesores (indicar coordinador) Name of lecturer(s) Despachos Correo electrónico D. Carlos González 4308 carlos.gonzalez@upm.es D. Francisco Javier Estaire 4313 franciscojavier.estaire@upm.es D. Vicente Hernández 4304 vicente.hernandez@upm.es Dña. Marisa Martín 4325 marialuisa.martinr@upm.es Dña. Emilia Pérez 4320 emilia.perez@upm.es D. Pablo Ramírez (Coordinador) 4310 pablo.ramirez@upm.es En el caso de necesitar asistencia técnica en relación a la plataforma Moodle el soporte se realiza en el GATE: el administrador de la plataforma o el personal con responsabilidad técnica solucionarán los problemas de manejo de la herramienta que puedan aparecer. Guía de aprendizaje. Semestre de otoño, Curso 2012‐2013. 3 Programación II ASIGNATURA: Programación II CURSO 12/13 SEMESTRE OTOÑO LUNES MARTES MIÉRCOLES JUEVES 08:30 G2M1_0 G2M1_1 09:30 G2M1_0 G2M1_1 10:30 G2M1 G2M1_2 11:30 G2M1 G2M1_2 VIERNES 12:30 13:30 15:30 16:30 G2M1 G2T1 G2T2 G2T1 G2T2 17:30 G2T1_1 18:30 G2T1_1 G2T1 G2T2 G2T1_2 G2T2_2 G2T1_2 G2T2_2 G2T1_0 G2T2_0 G2T1_0 G2T2_0 G2T2_1 G2T2_1 19:30 20:30 Coordinador/a: Pablo Ramírez Distribución grupos de teoría: Total: 3 grupos Profesores: Ramírez, Pablo González, Carlos Estaire, Francisco Javier Distribución grupos de laboratorio: Total: 9 grupos Profesores: Ramírez, Pablo (2,5) González, Carlos (1) Estaire, Francisco Javier (1) Martín, María Luisa (2) Pérez, Emilia (1,5) Hernández, Vicente (1) Guía de aprendizaje. Semestre de otoño, Curso 2012‐2013. 4 Programación II Competencias y Resultados de Aprendizaje En la programación hay dos aspectos fundamentales a tener en cuenta: por una parte el diseño, y por otro la codificación usando un lenguaje de programación. En esta asignatura, el alumno deberá aprender a programar utilizando el paradigma de la POO, utilizando como lenguaje de programación Java. Para ello, deberá alcanzar los resultados de aprendizaje de la siguiente tabla, que aparecen con un peso (en horas sobre el total) indicando la contribución de cada resultado a la adquisición de las competencias asignadas a la asignatura: Guía de aprendizaje. Semestre de otoño, Curso 2012‐2013. 5 Programación II M03: Programación Programación II Semestre: 2 6 ECTS = 160 horas Total horas = 160 Resultados de Aprendizaje Comprender los fundamentos básicos de la programación orientada a objetos. Aplicar los paradigmas de la programación orientada a objetos para la realización de sistemas de complejidad media. Comprender los fundamentos básicos del diseño orientado a objetos. Comprender un diseño orientado a objetos para construir un sistema de complejidad media. Conocer la sintaxis del lenguaje java, así como la definición de clases, interfaces y la instanciación de objetos. Aplicar relaciones de herencia en el diseño de aplicaciones en java. Utilizar polimorfismo en el diseño de aplicaciones en java. Aplicar la gestión de errores y de excepciones en java. Utilizar paquetes estándar de java. Utilizar colecciones para la representación de estructuras de datos. Utilizar el paquete de entrada/ salida de java. Aplicar la serialización de objetos en java. Manejar entornos de desarrollo integrados (IDE) Código Nivel Horas Capacidad para expresarse correctamente de forma oral y escrita y transmitir información mediante documentos y exposiciones en público. (Nivel 1) Capacidad de abstracción, de análisis y de síntesis y de resolución de problemas. (Nivel 1) Capacidad de trabajo en equipo y en entornos multidisciplinares. (Nivel 1) Conocimientos básicos sobre el uso y programación de los ordenadores, sistemas operativos, bases de datos y programas informáticos con aplicación en ingeniería. (Nivel 2) C GEN. 3 N1 6 C GEN. 4 N1 28 C GEN. 5 N1 46 CE BAS. 2 N1 80 6 26 6 6 6 14 8 2 8 4 22 4 12 2 4 6 10 2 4 4 10 2 4 4 8 2 2 4 26 2 10 14 8 6 2 2 2 4 4 10 Guía de aprendizaje. Semestre de otoño, Curso 2012‐2013. 6 4 18 10 6 Programación II Peso en la calificación de cada resultado de aprendizaje: cada uno de los resultados de aprendizaje formará parte de una evaluación continua sumativa, puesto que constituyen un todo de conocimientos y habilidades que el alumno necesita para capacitarse en el diseño de aplicaciones orientadas a objetos y su codificación en lenguaje Java. En la siguiente tabla aparecen los porcentajes sobre la calificación de cada resultado de aprendizaje. Resultados de Aprendizaje Comprender los fundamentos básicos de la programación orientada a objetos. Aplicar los paradigmas de la programación orientada a objetos para la realización de sistemas de complejidad media. Comprender los fundamentos básicos del diseño orientado a objetos. Comprender un diseño orientado a objetos para construir un sistema de complejidad media. Conocer la sintaxis del lenguaje java, así como la definición de clases, interfaces y la instanciación de objetos. Aplicar relaciones de herencia en el diseño de aplicaciones en java. Utilizar polimorfismo en el diseño de aplicaciones en java. Aplicar la gestión de errores y de excepciones en java. Utilizar paquetes estándar de java. Utilizar colecciones para la representación de estructuras de datos. Utilizar el paquete de entrada/ salida de java. Aplicar la serialización de objetos en java. Manejo de entornos de desarrollo integrados (IDE) Guía de aprendizaje. Semestre de otoño, Curso 2012‐2013. Horas Peso en la calificación Indicadores mínimos 6 4% 4% 26 16% 8% 8 5% 5% 8 5% 5% 22 14% 7% 12 8% 4% 10 6% 6% 10 6% 3% 8 5% 26 16% 6% 8 5% 2% 6 4% 10 6% 7 Programación II Unidades temáticas UNIDAD 1. EL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS 1.1. Conceptos básicos de ingeniería del software. 1.2. Metodologías de desarrollo del software. 1.3. Concepto de objeto y de clase. 1.4. Encapsulamiento y ocultación de la información. 1.5. Abstracción: Herencia y polimorfismo. 1.6. Concepto de diseño orientado a objetos. Terminología y sintaxis de definición de sistemas. Introducción a UML. UNIDAD 2. ELEMENTOS BÁSICOS DEL LENGUAJE DE PROGRAMACIÓN JAVA 2.1. Conceptos básicos. Entorno de desarrollo en java: Compilación y ejecución. Terminología elemental empleada en la programación en java. 2.2. Elementos básicos del lenguaje: Tipos primitivos, variables, sentencias, expresiones y estructuras de control. Ejemplo: Construcción de un primer programa sencillo. 2.3. Definición de clase en java. Clases internas y static. Variables miembro de una clase y un objeto, principales atributos y modificadores. Métodos de una clase. Paso de argumentos, métodos de clase, sobrecarga constructores e inicializadores. Creación, uso y destrucción de objetos. Acceso y visibilidad de los componentes de una clase. Casting, conversión de tipos primitivos UNIDAD 3. ELEMENTOS AVANZADOS DEL LENGUAJE DE PROGRAMACIÓN JAVA 3.1. Herencia. Subclases y superclases. Clases y métodos abstractos y finales. Gestión de constructores y accesibilidad. La clase Object. 3.2. Polimorfismo. Concepto y ejemplos. Relación entre el polimorfismo y la herencia en java. Aplicación de la herencia y el polimorfismo para la construcción de sistemas basados en objetos. 3.3. Interfaces, concepto y uso de interfaces en java. Herencia de interfaces. 3.4. Manejo de excepciones en java. Estructura jerárquica de las excepciones. Lanzamiento, captura Bloques (try-catch) y creación de nuevas excepciones. Liberación de recursos: El bloque finally. Estrategias para el control de errores en ejecución de un programa java mediante excepciones: precondiciones, poscondiciones y aserciones. Generación y procesamiento de mensajes de error. 3.5. Aplicación de los elementos anteriores: Herencia, polimorfismo, etc. para la construcción de sistemas basados en objetos. 3.6. Manejo de paquetes (packages) en java. Creación, uso y generación de aplicaciones basados en paquetes. Bibliotecas básicas de paquetes de la API de java. Ejemplo, principales clases de utilidad del paquete java.lang: Wrappers, String, etc. UNIDAD 4. ESTRUCTURAS DE DATOS EN JAVA 4.1. Gestión de la información en programación, estructuras de datos básicas: pilas, colas, listas enlazadas, árboles y tablas hash. Especificación de sus interfaces y comportamiento. 4.2. Decisiones de implementación y uso de las estructuras básicas. 4.3. Recorridos. Algoritmos de ordenación, búsquedas. Recursividad. 4.4. Manejo de colecciones en java. Paquete java.util. UNIDAD 5. GESTIÓN DE LA ENTRADA/SALIDA EN JAVA 5.1. Estructura de clases interfaces y excepciones para el manejo de la E/S en java, paquete java.io. 5.2. Entrada/salida de datos por el terminal. 5.3. Gestión de operaciones sobre ficheros. 5.4. Serialización de objetos. Control de la serialización: modificadores de los miembros de una clase. Guía de aprendizaje. Semestre de otoño, Curso 2012‐2013. 8 Programación II Prácticas en el laboratorio BLOQUE I.- INTRODUCCIÓN A LOS ENTORNOS DE DESARROLLO y CONSTRUCCIÓN DE SISTEMAS BÁSICOS EN JAVA. 1.1 Entornos elementales para el desarrollo y ejecución de aplicaciones java: editores de texto, JDK, etc. 1.2 Entornos integrados de desarrollo: Eclipse, etc. 1.3 Construcción de una aplicación Java sencilla con un entorno gráfico. Depuración de errores y validación de resultados. 1.4 Construcción de una aplicación solo con la clase principal. 1.5 Construcción de una aplicación con varias clases independientes o con relaciones de herencia y composición y aplicando polimorfismo. BLOQUE II.- CONSTRUCCIÓN DE SISTEMAS DE COMPLEJIDAD MEDIA EN JAVA. 2.1 Construir un sistema basado en un diseño con relaciones de herencia y polimorfismo. 2.2 Construir un paquete con la citada aplicación e independizar el programa que lo usa. 2.3 Añadir a la aplicación anterior la gestión de errores mediante excepciones. 2.4 Añadir colecciones en la manipulación de datos. Guía de aprendizaje. Semestre de otoño, Curso 2012‐2013. 9 Programación II Distribución temporal de las unidades y prácticas. El curso se desarrolla a lo largo de 16 semanas. A continuación se adjunta la tabla general que contiene la forma de impartición de la docencia de la asignatura. PROGRAMACIÓN II‐ CURSO 2012/2013 ‐ Semestre otoño CLASES PRESENCIALES (horas) SEMANA 1 FECHAS 03‐sep 2 10‐sep 3 4 5 6 7 8 9 10 17‐sep 24‐sep 01‐oct 08‐oct 15‐oct 22‐oct 29‐oct 05‐nov 11 12 13 14 15 16 12‐nov 19‐nov 26‐nov 03‐dic 10‐dic 17‐dic 17 Teoria‐1h Unidad2 Unidad3 2 2 2 3 2 4 4 2 2 2 2 2 Entrega Bloque I de prácticas( 40% ) 3 2 2 2 3 2 4 8 2 Parcial 1 ( 40 %) 2 2 3 3 3 4 Unidad4 Unidad4 Unidad4 Unidad4 Unidad5 Unidad5 Unidad5 VACACIONES NAVIDAD 07‐ene 2 2 2 2 2 2 2 2 2 2 2 Lab. Estudio EVALUACIONES Teoria‐2h Unidad1 Unidad2 Unidad2 Unidad2 Unidad3 Unidad3 Unidad3 Lab. Actividades sin profesor Horas 18 14 de enero 5 3 TOTAL 133 26 3 22 28 49 5 Guía de aprendizaje. Semestre de otoño, Curso 2012‐2013. 10 Pesos Entrega Bloque II de prácticas( 60% ) Parcial 2 - ( 60%) 100% Programación II PLANIFICACIÓN SEMANAL: Información a proporcionar al alumno para el proceso de aprendizaje: Para cada sesión se le suministrará al alumno vía moodle una información completa del trabajo que deberá desarrollar antes, durante y después de la sesión. Con la información completa de los contenidos a tratar, de los objetivos a desarrollar durante la sesión, de la bibliografía a consultar y los ejercicios propuestos (formativos o sumativos) necesarios para alcanzar dichos objetivos. El formato de dicha información será el siguiente: 1. Resultados de aprendizaje asociados a los contenidos (se describen en esta sección los descriptores de aprendizaje asociados a la sesión). 2. Descripción de actividades en el aula. 3. Descripción de actividades de trabajo no presencial (indicando expresamente los capítulos de libros o de la bibliografía on-line que tienen que consultar cuando sea necesario): 4. Previas a la sesión. Posteriores a la sesión. Evaluación y calificación (se indicará si hay pruebas en clase u on-line). Evaluación y calificación El alumno deberá trabajar de forma continuada durante todo el cuatrimestre, asistiendo y participando en las clases teóricas y de laboratorio, así como realizando todas y cada una de las pruebas de evaluación continua. Como evaluación formativa se realizarán ejercicios con retroalimentación por parte del profesor. Como evaluación formativa y sumativa se realizarán: Entrega del Bloque I de prácticas: En la semana 10, examen de este bloque en semana 11 o 12 con un peso del 15% de la parte práctica. Un examen parcial la semana 11 con un peso del 25% en la calificación de la parte teórica del alumno. Entrega del Bloque II de prácticas: En la semana 16. Un examen parcial la semana 18 con un peso del 35% en la calificación de la parte teórica del alumno y examen del Bloque II prácticas (25%). La asignatura sólo se puede superar en el semestre de impartición de la docencia, por evaluación continua de acuerdo con los siguientes criterios: Haber asistido a más del 80% de las sesiones de laboratorio presenciales y haber entregado, en las fechas solicitadas, las codificaciones de las prácticas. Será obligatoria la realización de los dos bloques de prácticas. El alumno podrá elegir entre dos itinerarios de evaluación, excluyentes y definitivos: Itinerario de evaluación continua. Es el itinerario por defecto. Se aplicará lo anteriormente recogido. Itinerario de sólo prueba final. Los alumnos que elijan este itinerario deberán presentar durante las tres primeras semanas de clase una solicitud por escrito en la Secretaría del Departamento DIATEL indicando la elección de este itinerario. El modelo de solicitud se encuentra en Moodle. En este itinerario no se realizará ninguna prueba de evaluación continua, pero los alumnos deberán realizar las prácticas de laboratorio respetando las fechas de entrega de los dos bloques de prácticas a través de la plataforma Moodle. Los alumnos que elijan este itinerario también realizarán una Guía de aprendizaje. Semestre de otoño, Curso 2012‐2013. 11 Programación II evaluación final consistente en dos pruebas (que reflejarán una complejidad y una extensión similares al de las evaluaciones realizadas en el itinerario de evaluación continua): o Examen de los dos bloques de prácticas realizados (con un peso del 40%) o Examen de teoría (con un peso del 60%) En este itinerario el alumno para aprobar la asignatura deberá sacar un mínimo de 5 puntos en cada uno de los dos exámenes realizados. Una vez elegido el itinerario de evaluación continua, no es posible el cambio de itinerario por parte del alumno excepto por causa sobrevenida y de fuerza mayor. Según la normativa de exámenes vigente se recuerda que el alumno aparecerá como presentado en la convocatoria actual (para cualquiera de los dos itinerarios) en el momento en que se presente a alguna de las pruebas de evaluación. Convocatoria Extraordinaria (junio-julio) La convocatoria extraordinaria para los alumnos que hayan cursado la asignatura en cualquiera de los dos semestres, estará abierta a todos los alumnos que no hayan aprobado la asignatura independientemente del itinerario elegido. Consistirá en: PARTE TEÓRICA (con un peso del 60% sobre la calificación final en la asignatura): Realización de ejercicios escritos. PARTE PRÁCTICA (con un peso del 40% sobre la calificación final en la asignatura): Consistirá en la realización de ejercicios prácticos que evalúen ese trabajo. La evaluación teórica y práctica no tienen por qué ser el mismo día. En todo caso, no se guardará ninguna calificación entre cursos académicos. Recursos de enseñanza-aprendizaje Recursos bibliográficos: [Arnold, Gosling y Holmes, 2001] Ken Arnold, James Gosling y David Holmes. “El lenguaje de programación Java”. Addison Wesley. 2001. 3ª Edición. [Arnold y Gosling, 1997] Ken Arnold y James Gosling. Addison-Wesley/Domo. "El lenguaje de programación Java". Wesley Iberoamericana. 1997. [Eckel, 1997] Bruce Eckel. "Hands -on Java Seminar". Presindent Mindview Inc. 1997. [Eckel, 2006] Bruce Eckel. "Thinking in Java". Prentice Hall. 2006. Esta información se irá completando a lo largo del cuatrimestre, especificando el capítulo on-line a revisar para cada tema. Recursos Web y multimedia: Esta información se irá completando a lo largo del cuatrimestre Equipamiento: En los laboratorios los alumnos dispondrán de ordenadores en los que se encuentra instalado el entorno de desarrollo necesario para desarrollar las prácticas de la asignatura. Los ordenadores disponen de acceso a Internet. Locales para trabajo no presencial. Laboratorios con horarios de libre acceso para la realización de las prácticas. Guía de aprendizaje. Semestre de otoño, Curso 2012‐2013. 12