Programación en Lenguaje Java (2015)
Topic outline
-
Profesores
Michael González Harbour
Mario Aldea-RivasDepartamento de Ingeniería Informática y Electrónica
Curso básico sobre "Programación en Lenguaje Java" en el que se ven los fundamentos de la programación de computadores y del razonamiento sobre los programas. Se pretende familiarizarse con las nociones fundamentales de la programación orientada a objetos así como ser capaz de documentar el código fuente de un programa.
Basic course on the Java Programming Language including the fundamentals of computer programming and reasoning about programs. The aim is to become familiar with the fundamentals of object-oriented programming and to be able to document the source code of a program.
Palabras Clave de la Asignatura
Polymorphism, Polimorfismo, Java, Modularidad, Inheritance, Programming, Pruebas de Módulos, Modularity, Input and Output, Class Diagrams, Exceptions, Programación orientada a objetos, Unit Testing, Object-Oriented Programming, Entrada y Salida, Herencia, Programación, Excepciones, Diagramas de Clases.
-
Datos identificativos de la Asignatura
-
Asignatura: Programación en Lenguaje Java
-
Código Parte 1: Introducción al Software - G266
-
Código Parte 2: Métodos de Programación - G271
-
Departamento / Área: Departamento Ingeniería Informática y Electrónica
-
Título: Grado en Ingeniería Informática
-
Centro: Facultad de Ciencias
-
Créditos ECTS: 6
-
Idioma de impartición: Español
-
Profesores responsables: Michael González Harbour y Mario Aldea-Rivas
Programa de la asignatura
Tema 1. Introducción a los lenguajes de programación
-
Lenguajes de alto nivel.
-
El proceso de compilación.
-
El ciclo de vida del software.
-
Introducción al análisis de requisitos.
-
Diagrama de Clases en UML.
-
Diseño orientado a objetos.
-
Especificación de los métodos.
-
Programación orientada a objetos.
-
Concepto de algoritmo.
-
Concepto de clase y objeto.
-
Diagramas de clases.
-
Estructura de un programa.
-
Estructura de un método.
Tema 2. Datos y expresiones
-
Tipos primitivos.
-
Variables y constantes.
-
Operadores y expresiones.
-
Conversión de tipos.
-
Uso de funciones matemáticas.
-
Declaración de objetos.
-
Strings.
-
Composición de objetos.
-
Atributos y métodos estáticos.
Tema 3. Estructuras algorítmicas
-
Instrucción condicional.
-
Instrucción condicional múltiple.
-
Instrucciones de bucle.
-
Recursión.
-
Descripción de algoritmos mediante pseudocódigo.
Tema 4. Datos compuestos
-
Arrays y tablas unidimensionales.Algoritmos de recorrido y búsqueda.
-
Arrays multidimensionales.
-
Tipos enumerados.
Tema 5. Entrada/salida
-
Entrada/salida de texto y de caracteres.E/S de números.
-
Gráficas.
-
Dibujos.
-
Menús de botones.
Tema 6. Clases, referencias y objetos
-
Concepto de clase y objeto.
-
Creación e inicialización de objetos.
-
Tipos primitivos, referencias y objetos.
-
Recolector de basura.
-
Comparación de objetos.
-
Métodos y campos de clase (o estáticos).
-
Anidamiento de clases.
Tema 7. Modularidad y abstracción: aspectos avanzados
-
Conceptos de modularidad y abstracción.
-
Modificadores de acceso básicos.
-
Paquetes.
-
Módulos genéricos.
-
Programación con módulos predefinidos.
-
Documentación del código fuente.
Tema 8. Herencia y polimorfismo
-
Herencia.
-
Clases abstractas.
-
Polimorfismo.
-
La clase Object.
Tema 9. Tratamiento de errores
-
Tratamiento de errores por paso de parámetros.
-
Excepciones.
-
Bloques de tratamiento excepciones.
-
La cláusula Finally.
-
Patrones de tratamiento de excepciones.
-
Jerarquía de las excepciones.
-
Lanzar excepciones.
-
Usar nuestras propias excepciones.
-
Utilización de excepciones.
Tema 10. Entrada/Salida con ficheros
-
Conceptos básicos.
-
Flujos de datos (Streams).
-
E/S de texto.
-
E/S de texto con formato.
-
E/S binaria.
Tema 11. Prueba de programas
-
Verificación y validación.
-
Pruebas del software.
-
Caja negra: particiones de equivalencia.
-
Herramienta JUnit.
-
-
Básica
-
D.J. Barnes & M. Kölling (2011): «Objects first with Java: A practical introduction using Bluej». Prentice Hall.
-
Deitel, Paul J. & Deitel, Harvey M. (2012): «Cómo programar en Java». 9ª edición. Pearson Educación, Mexico.
Complementaria
-
Ken Arnold, James Gosling & David Holmes (2000): «El lenguaje de programación Java». 3ª edición. Addison-Wesley.
-
S. Zakhour, S. Hommel, J. Royal, I. Rabinovitch, T. Risser & M. Hoeber (2006): «The Java Tutorial Fourth Edition». Pearson Education. The Java Tutorials.
-
A.V. Aho, J.E. Hopcroft & J.D. Ullman (1988): «Estructuras de datos y algoritmos». Addison-Wesley.
Software
-
Uno de los siguientes entornos de desarrollo, que funcionan tanto sobre sistema operativo Windows como sobre Linux.
- Entorno de desarrollo Bluej, con compilador Java de Sun, versión 7 o superior.
- Entorno de desarrollo Eclipse JDK, versión Luna.
-
-
- MC-F-001. Tema 1. Introducción a los lenguajes de programación.
- MC-F-002. Tema 2. Datos y expresiones.
- MC-F-003. Tema 3. Estructuras algorítmicas.
- MC-F-004. Tema 4. Datos compuestos.
- MC-F-005. Tema 5. Entrada/salida.
- MC-F-006. Tema 6. Clases, referencias y objetos.
- MC-F-007. Tema 7. Modularidad y abstracción.
- MC-F-008. Tema 8. Herencia y polimorfismo.
- MC-F-009. Tema 9. Tratamiento de errores.
- MC-F-010. Tema 10. Entrada/salida con ficheros.
- MC-F-011. Tema 11. Pruebas.
-
Tema 2. Datos y expresiones
-
PA-F-005. Práctica 2.3. Simulación del movimiento orbital de un satélite y su planeta.
- PA-F-006. Materlales Práctica 2.3.
Tema 3. Estructuras algorítmicas
- PA-F-009. Práctica 3.1. Piscifactoría.
- PA-F-010. Práctica 3.2. Movimiento de una partícula cerca de una placa cargada.
- PA-F-011. Práctica 3.3. Raíz de un polinomio de tercer grado, método de Newton-Raphson.
-
PA-F-012. Práctica 3.4. Cálculos con señales cuadradas.
-
PA-F-013. Materlales Práctica 3.4.
-
Tema 4. Datos compuestos
Tema 5. Entrada/salida
- PA-F-018. Práctica 5.1. Cálculo de escapatorias en un circuito de Fórmula 1.
Tema 6. Clases, referencias y objetos
-
PA-F-021. Práctica 6.2. Implementación. Diseño e implementación. Estadísticas equipo baloncesto.
- PA-F-022. Materlales Práctica 6.2.
-
PA-F-023. Práctica 6.3. Diseño e implementación. Comisiones de venta.
-
PA-F-024. Materlales Práctica 6.3.
-
Tema 7. Modularidad y abstracción
-
PA-F-025. Práctica 7.1. Paquetes. Señales movimiento ondulatorio.
- PA-F-026. Materlales Práctica 7.1.
-
PA-F-027. Práctica 7.2. Diseño e implementación. Reparaciones taller.
-
PA-F-028. Materlales Práctica 7.2.
-
Tema 8. Herencia y polimorfismo
- PA-F-029. Práctica 8.1. Herencia. Empresa de seguros.
-
PA-F-030. Práctica 8.2. Herencia. Empresa de seguros (continuación de la Práctica 8.1).
- PA-F-031. Materlales Práctica 8.2.
Tema 9. Tratamiento de errores
Tema 10. Entrada/salida con ficheros
-
PA-F-038. Práctica 10.1. Ajuste polinómico de un conjunto de puntos.
- PA-F-039. Materlales Práctica 10.1.
- PA-F-040. Práctica 10.2. Ficheros de texto. Reparaciones taller.
- PA-F-041. Práctica 10.3. Entrada y salida de texto con formato. Medidas temperaturas.
-
-
Tema 2. Datos y expresiones
-
EP-F-001. Problema 2.1. Datos de una clase. Tipos primitivos; Sangrado.
-
EP-F-002. Problema 2.2. Practicar con literales, clases, expresiones y compatibilidad de tipos.
-
EP-F-003. Problema 2.3. Practicar con expresiones.
Tema 3. Estructuras algorítmicas
-
EP-F-004. Problema 3.1. Practicar con strings e instrucciones condicionales.
-
EP-F-005. Problema 3.2. Practicar con instrucciones de control.
Tema 4. Datos compuestos
-
EP-F-006. Problema 4.1. Practicar recorridos con Arrays.
-
EP-F-007. Problema 4.2. Practicar con arrays y ArrayList.
-
EP-F-008. Problema 4.3. Practicar con ArrayList, Arrays multidimensionales y tipos enumerados.
Tema 6. Clases, referencias y objetos
-
EP-F-009. Problema 6.1. Diseño. Empresa de alquiler de vehículos con conductor.
-
EP-F-010. Problema 6.2. Cuestiones sobre referencias y objetos.
Tema 7. Modularidad y abstracción
-
EP-F-011. Problema 7.1. Uso de ArrayList. Agenda de contactos.
Tema 8. Herencia y polimorfismo
-
EP-F-012. Problema 8.1. Precio del alquiler de vehículos.
-
EP-F-013. Problema 8.2. Cuestiones herencia y polimorfismo.
Tema 9. Tratamiento de errores
-
EP-F-014. Problema 9.1. Cuestión propagación excepciones.
-
EP-F-015. Problema 9.2. Cuestiones excepciones.
Tema 10. Entrada/salida con ficheros
-
EP-F-016. Problema 10.1. Escritura/lectura de ficheros de texto.
-
EP-F-017. Problema 10.2. Ficheros binarios. Medidas contaminación.
Tema 11. Pruebas
-
-
-
Criterios de evaluación
MÉTODOS DE EVALUACIÓN "INTRODUCCIÓN AL SOFTWARE"
Descripción
Tipología
Evaluación final
Recuperación
%
Teoría: participación en clase
Otros
No
No
10%
-
Calificación mínima: 0,00.
-
Duración: Continua.
-
Fecha realización: Continua.
-
Condiciones de recuperación:
-
Observaciones: Teoría: se realizará una evaluación continuada basada en la participación en clase.
Problemas
Actividad de evaluación con soporte virtual
No
Sí
10%
-
Calificación mínima: 0,00.
-
Duración: Continua.
-
Fecha realización: Continua.
-
Condiciones de recuperación: Examen.
-
Observaciones: Problemas: se realizará una evaluación continuada de problemas propuestos y resueltos en casa. En cada problema se requerirá una presentación al grupo, así como una breve memoria. En cada sesión habrá ejercicios evaluables y otros no evaluables.
Examen final
Examen escrito
Sí
Sí
50%
-
Calificación mínima: 4,00.
-
Duración: 3,5 horas.
-
Fecha de realización: Febrero y septiembre (periodo ordinario y periodo de recuperación).
-
Condiciones recuperación: Examen.
-
Observaciones: Examen final: se realizarán dos exámenes escritos de cuestiones y problemas: uno en el periodo de evaluación ordinario y uno en el periodo de recuperación. Duración: 3,5 horas, en dos partes: una de cuestiones teórico-prácticas, y la otra para resolver un problema de programación. Se pueden llevar apuntes y libros a ambas partes. Cada parte es la mitad de la nota del examen.
Prácticas
Evaluación en laboratorio
No
Sí
30%
-
Calificación mínima: 4,00.
-
Duración: Continua.
-
Fecha de realización: Continua.
-
Condiciones recuperación: Examen.
-
Observaciones: Observaciones: Prácticas: se realizarán tres evaluaciones de prácticas durante el transcurso de la asignatura; estas evaluaciones consistirán en la realización de una práctica en el laboratorio y la entrega de un breve informe al finalizar la sesión; la media de estas tres calificaciones será la nota de prácticas; en el resto de las prácticas se requerirá una breve memoria. Para poder aprobar las prácticas en el periodo ordinario se requiere haber entregado al menos todas las memorias de las prácticas excepto una, antes de la tercera práctica evaluable. Los criterios en las evaluaciones de prácticas serán:
-
a) Trabajo en el laboratorio:
-
-
-
-
Conocimientos: Facilidad para diseñar y nivel de comprensión de los conceptos.
-
Herramientas: Habilidad en el manejo de las herramientas utilizadas en el laboratorio.
- Grado de Resolución: Grado de resolución de la práctica alcanzado durante las horas en el laboratorio.
-
-
b) Informes sobre las prácticas:
-
-
-
-
Estilo de programación: Estilo, claridad, documentación.
-
Organización: Organización del informe, claridad en la exposición.
-
Plazo de entrega. Por los retrasos en la entrega de los informes de las prácticas previas a cada práctica evaluable habrá una penalización: 0,5 puntos por cada entrega retrasada hasta 1 semana, y 1 punto por cada entrega retrasada hasta 2 semanas.
-
-
TOTAL
100%
OBSERVACIONES:
-
La Evaluación Continua de problemas y prácticas se podrá superar en el periodo de recuperación mediante un Examen de Prácticas: 40%.
-
Será un Examen en el Laboratorio, de 3 horas de duración, en el que habrá que resolver un ejercicio práctico. Se pueden llevar apuntes y libros.
-
Para poder presentarse a este examen se deberán entregar las memorias de todas las prácticas obligatorias de la asignatura.
-
Para superar la asignatura es preciso superar tanto el Examen Final como los Problemas y Prácticas.
-
En caso de que una de estas partes no se supere, la nota final será el mínimo de 4,5 y la media obtenida.
-
En caso de aprobar únicamente una de las dos partes en el periodo ordinario, se guardaría la nota de esa parte para el periodo de recuperación.
OBSERVACIONES para alumnos/as a tiempo parcial:
-
La Evaluación Continua de problemas y prácticas se podrá superar por los estudiantes a tiempo parcial mediante un Examen de Prácticas: 40%, tanto en el periodo ordinario como en el periodo de recuperación: para estos alumnos/as el peso del examen de teoría será del 60%.
-
Será un Examen en el Laboratorio, de 3 horas de duración, en el que habrá que resolver un ejercicio práctico. Se pueden llevar apuntes y libros. Para poder presentarse a este examen se deberán entregar las memorias de todas las prácticas obligatorias de la asignatura.
Criterios de evaluación
MÉTODOS DE EVALUACIÓN "MÉTODOS DE PROGRAMACIÓN"
Descripción
Tipología
Evaluación final
Recuperación
%
Prácticas
Evaluación en laboratorio
No
Sí
5%
-
Calificación mínima: 0,00.
-
Duración: 2 horas.
-
Fecha realización: A lo largo del curso.
-
Condiciones de recuperación: Entrega y presentación de las prácticas antes del examen final (la penalización por entrega fuera de plazo no es recuperable).
-
Observaciones: La nota se obtiene en base a: (1) Presentación de las prácticas: a lo largo del curso el profesor requerirá al alumno/a la presentación de alguna de las prácticas realizadas. (2) Informes de prácticas: deberán entregarse dentro del plazo establecido. Una entrega fuera del plazo supondrá una penalización en la nota. También supondrá una penalización la entrega de una práctica con errores u omisiones graves:
-
a) Presentación de las prácticas:
- A lo largo del curso el profesor requerirá al alumno/a la presentación de alguna de las prácticas realizadas.
-
b) Informes de prácticas:
-
Deberán entregarse dentro del plazo establecido. Una entrega fuera del plazo supondrá una penalización en la nota.
-
También supondrá una penalización la entrega de una práctica con errores u omisiones graves.
-
-
Exámenes prácticos
Evaluación en laboratorio
No
Sí
45%
-
Calificación mínima: 4,50.
-
Duración: 2 horas.
-
Fecha realización: A lo largo del curso.
-
Condiciones de recuperación: Exámenes finales de prácticas en los periodos ordinario y de recuperación.
-
Observaciones: Exámenes realizados en el laboratorio. Está permitido llevar apuntes. Se celebrarán entre 2 y 4 exámenes de prácticas a lo largo del curso. La nota de este apartado se calculará como la media (ponderada) de las notas de los exámenes realizados. Lo normal será que el peso de todos los exámenes sea el mismo, aunque podría darse el caso de primar unos sobre otros si se considera que hay razones para ello. La nota de los exámenes prácticos podrá verse mejorada si el alumno/a realiza satisfactoriamente los problemas y ejercicios que podrían proponerse a lo largo del curso.
Examen final
Examen escrito
Sí
Sí
50%
-
Calificación mínima: 4,50.
-
Duración: 3,5 horas.
-
Fecha de realización: Periodo ordinario de exámenes.
-
Condiciones recuperación: Examen Final en el periodo de recuperación.
-
Observaciones: Compuesto por varias cuestiones y uno o más problemas. Las cuestiones son preguntas cortas que pretenden evaluar los conocimientos del alumno/a en alguno de los contenidos de la asignatura. Los problemas pretenden evaluar el dominio de la metodología de programación que tiene el alumno/a. Para ello se planteará el desarrollo de una aplicación similar a las realizadas en prácticas. Se podrán utilizar apuntes y bibliografía. Para poder presentarse a este examen es obligatorio entregar y presentar las prácticas de la asignatura.
TOTAL
100%
OBSERVACIONES:
-
Para aprobar la asignatura es necesario superar la nota mínima de los Exámenes prácticos y del Examen final. En caso de no superar alguna de esas notas mínimas, la nota final será el mínimo de 4,5 y la media obtenida.
-
Para poder presentarse a los exámenes finales (escrito y de prácticas) de los periodos ordinario y de recuperación es obligatorio entregar y presentar las prácticas de la asignatura.
OBSERVACIONES para alumnos/as a tiempo parcial:
-
-
- Aquí puede descargarse la Guía de Aprendizaje de la Asignatura Introducción al Software (G266) en formato PDF.
- Aquí puede descargarse la Guía de Aprendizaje de la Asignatura Métodos de Programación (G271) en formato PDF.
-
Michael González Harbour
Departamento de Ingeniería Informática y Electrónica
UNIVERSIDAD DE CANTABRIA