El principal objetivo de esta asignatura es hacer una primera aproximación a la metodología de la Programación Orientada a Objetos (POO), introduciendo los conceptos de encapsulación, polimorfismo, herencia, arrays, excepciones, flujos de comunicación, etc. La asignatura introduce al estudiante a la resolución de problemas, diseño de software y técnicas básicas de programación, así como su aplicación a un conjunto de problemas concretos, utilizando el lenguaje de programación Java.
Objetivos globales teoría
Tras completar satisfactoriamente este curso, los estudiantes serán capaces de: - escribir programas Java para solucionar problemas - estar familiarizados con la metodología POO (objeto, clase, herencia, ...) - comprender el uso de excepciones (exceptions) para gestionar errores en tiempo de ejecución - almacenar objetos en un archivo mediante flujos (streams), utilizando la técnica de 'seriación' - desarrollar programas gráficos en Java, utilizando la librería Abstract Window Toolkit (AWT) - comprender los principios de la programación dirigida por eventos y escribir código dirigido por eventos - desarrollar applets Java para aplicaciones ejecutables desde Internet
Temas Teoría (Contenidos)
Tema 1: Introducción
Tema 2: Elementos del lenguaje Java
Tema 3: Programación Orientada a Objetos (POO)
Tema 4: Conceptos avanzados
Tema 5: Aplicaciones gráficas
Tema 6: Flujos de datos (streams)
Tema 7: Comunicaciones (sockets) y applets
Unidades Docentes
Los conceptos cubiertos en cada tema son los siguientes:
Tema 1: Introducción
Evolución de la programación, Historia de Java, Ventajas e inconvenientes de Java, Comparación Java vs. C++, Lenguaje interpretado vs. Compilado, Plataforma Java 2 SDK.
Tema 2: Elementos del lenguaje Java
Identificadores, Palabras clave, Comentarios, Tipos de datos, Constantes, Variables, Expresiones literales, Operadores, Sentencias de control de flujo, Estructura de los programas.
Tema 3: Programación Orientada a Objetos (POO)
Introducción, Ciclo de vida del software, Conceptos básicos de la POO, Propiedades de la POO, De la programación estructurada a la POO, Implementación de la POO con Java.
Tema 4: Conceptos avanzados
Arrays, vectores y strings, Paquetes, Interfaces, Control de excepciones (errores).
Tema 5: Aplicaciones gráficas
Introducción, Paquete AWT (Abstract Window Toolkit): contenedores, componentes, diálogos predefinidos, menús desplegables y menús contextuales, Gráficos
Tema 6: Flujos de datos (streams)
Introducción, Clase "File", Técnica de seriación/deseriación para almacenamiento de objetos en disco.
Tema 7: Comunicaciones (sockets) y applets.
Conceptos básicos, Sockets, Applets.
Objetivos globales práctica
Los principales objetivos de las prácticas son:
- ser capaz de aplicar el conocimiento aprendido en las clases teóricas para desarrollar programas Java, tanto en modo texto como en modo gráfico.
- estar familiarizado con el Java Standard Development Kit (J2SDK) de Sun Microsystems.
- demostrar habilidad con algún Entorno de Desarrollo Integrado (IDE) tal como NetBeans o Eclipse.
- crear buenos hábitos de programación.
Prácticas
Con la implantación de los nuevos títulos de grado, durante el presente curso académico no se pedirá la realización de prácticas. No obstante, el alumno podrá realizar prácticas de cursos anteriores, ejercicios de exámenes u otros ejercicios de programación. Para ello, el alumno deberá tener acceso a un ordenador (Windows, Linux, Mac) con el software necesario: J2SDK y entorno NetBeans, lo cual puede descargarse desde la página web de la asignatura, apartado Material, o bien, desde la página oficial de Sun Microsystems, ahora Oracle (ver apartado de enlaces).
Objetivos Específicos
- Reconocer la importancia de escribir un programa para la resolución de ciertos problemas.
- Ganar confianza en el desarrollo de software orientado a objetos a partir de una especificación concreta.
- Aprender el lenguaje de programación Java.
Metodología Docente
Con la implantación de los nuevos títulos de grado, durante el presente curso académico, y hasta que se extinga la titulación, no habrá clases teóricas ni prácticas de esta asignatura. Las transparencias utilizadas en clase estarán disponibles en la página web de la asignatura, dentro del apartado Material. El alumno podrá asistir a tutorías previa cita por correo electrónico.
Sistema de Evaluación
El sistema de evaluación será el mismo para todas las convocatorias. No se pedirá la realización ni entrega de prácticas, puesto que el 100% de la nota final consistirá únicamente en la nota obtenida en el correspondiente examen final escrito. Este examen incluirá tanto preguntas teóricas, y una parte práctica que incluirá varios ejercicios de programación.
Comentarios
Es deseable que el estudiante tenga experiencia en técnicas de programación básicas. Se asume un buen conocimiento de C (no de C++), lo cual se enseña en asignaturas como 'Fundamentos de Programación'. Concretamente, ya se debe conocer los siguientes conceptos y técnicas: variables, asignaciones, operadores, expresiones, funciones (paso de parámetros y retorno de valores), estructuras de control (if, switch, for, while, ...), arrays, y estructuras de datos (struct).