Programación en Java

Fundamentos de programación y principios de diseño


Informática básica
Programación 101
Clases y objetos
Modularización
Control
Arrays
Recursividad
JUnit
Herencia
Interfaces
Excepciones
Ficheros
Interfaces de usuario
Concurrencia
Distribución
 

WWW   Nociones básicas de Informática

  • Introducción a la Informática
  • Historia de la Informática
  • Componentes de un PC

    Lecturas recomendadas:
  • David Patterson & John Hennessy: Computer abstractions and technology + Historical perspective, extraído de Computer Organization and Design: The Hardware/Software Interface, 3ª edición, Morgan Kauffmann, 2004
  • WWW   Introducción a la programación

  • Conceptos básicos
  • Java
  • Tipos de datos
  • Variables y constantes
  • Expresiones y sentencias
  • Programas
  • Apéndice: Elementos léxicos de Java
  • Relación de ejercicios (soluciones)

    Lecturas recomendadas:
  • Robert N. Charette: Why software fails, IEEE Spectrum, September 2005
  • WWW   Introducción a la programación orientada a objetos

  • Conceptos básicos
  • Clases y objetos
  • Relaciones entre clases (diagramas de clases UML)
  • Visibilidad de los miembros de una clase
  • El Lenguaje Unificado de Modelado (UML)
  • Relación de ejercicios

    Lecturas recomendadas:
  • Harvey M. Deitel & Paul J. Deitel: Introduction to classes and objects, extraído de Java – How to Program, 6ª edición, Prentice-Hall, 2004
  • WWW   Modularización

  • Uso de subprogramas
  • Métodos
  • Ámbito de las variables
  • Cohesión y acoplamiento
  • Ejemplo
  • Relación de ejercicios

    Lecturas recomendadas:
  • Steve McConnell: Design in construction, extraído de Code Complete, 2ª edición, Microsoft Press, 2004
  • WWW   Estructuras de control

  • Programación Estructurada
  • Estructuras de control condicionales
  • Estructuras de control iterativas/repetitivas
  • Cuestiones de estilo
  • Relación de ejercicios
  • WWW   Vectores y matrices

  • Arrays
  • Algoritmos de ordenación
  • Algoritmos de búsqueda
  • Apéndice: Cadenas de caracteres
  • Relación de ejercicios
  • WWW   Recursividad

  • Preliminares
  • Concepto de recursividad
  • Ejemplos
  • Relación de ejercicios
  • WWW   TUTORIAL: Técnicas útiles en el desarrollo de software

  • Refactorización (solución)
  • Pruebas de unidad con JUnit
  • TDD [Test-Driven Development]
  • Bibliografía

    Lecturas recomendadas:
  • Robert C. Martin & Robert S. Koss: The Bowling Game. An example of test-first pair programming, objectmentor.com, 2001
  • WWW   Clases y objetos

  • Encapsulación
  • Herencia
  • Organización de las clases en paquetes
  • Modificadores de acceso
  • Caso práctico: Videoclub (código fuente)
  • Relación de ejercicios (ejercicio resuelto)

    Lecturas recomendadas:
  • Kathy Sierra & Bert Bates: A Trip to Objectville, extraído de Head First Java, 2ª edición, O'Reilly, 2005.
  • Alan Snyder: The essence of objects: Concepts and terms, IEEE Software, January 1993.
  • WWW   Principios de programación orientada a objetos

  • Índice
  • Diseño de clases
  • Clases abstractas e interfaces
  • Diseño de paquetes
  • Caso práctico: Red de telefonía móvil
  • Relación de ejercicios

    Lecturas recomendadas:
  • Kathy Sierra & Bert Bates: Serious polymorphism, extraído de Head First Java, 2ª edición, O'Reilly, 2005.
  • Bertrand Meyer: Software quality & Modularity, capítulos extraídos de Object-Oriented Software Construction, 2ª edición, Prentice Hall PTR, 2000
  • WWW   Manejo de excepciones

  • ¿Qué es una excepción?
  • Gestión de errores
  • Uso de excepciones en Java

    Lecturas recomendadas:
  • The Java Tutorial: Handling Errors with Exceptions, Sun Microsystems, 1995-2005
  • WWW   El sistema de E/S: Ficheros

  • Introducción
  • Ficheros y "streams"
  • Ficheros de texto
  • Serialización de objetos
  • Ficheros de acceso aleatorio

    Lecturas recomendadas:
  • Eric Freeman, Elisabeth Freeman, Bert Bates & Kathy Sierra: The decorator pattern, extraído de Head-first Design Patterns, O'Reilly, 2004
  • WWW   Interfaces de usuario

  • Interfaces gráficas de usuario
  • Componentes Swing
  • Eventos AWT
  • Applets
  • WWW   Concurrencia

  • Procesos y hebras
  • Ejecución de procesos
  • Ejecución de hebras
  • Uso de recursos compartidos
  • Hebras e interfaces de usuario
  • Más información...
  • WWW   Distribución

  • Índice
  • Mecanismos de comunicación entre procesos
  • Redes de ordenadores: Internet
  • Sockets
  • RMI [Remote Method Invocation]
  • Más información...
  • WWW   Exámenes

  • Parcial de febrero de 2005 (soluciones)
  • Parcial de junio de 2005 (soluciones)
  • Examen final de julio de 2005
  • Examen de septiembre de 2005
  • Parcial de febrero de 2006 (soluciones, PDF)
  • Parcial de junio de 2006
  • Examen final de julio de 2006
  • Examen de septiembre de 2006
  • WWW   Enlaces de interés

  • Desarrollo Profesional de Aplicaciones en C#
  • Curso de Programación en ANSI C
  • Programación Visual de Aplicaciones con C++Builder