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
|
|
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
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
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
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
Estructuras de control
Programación Estructurada
Estructuras de control condicionales
Estructuras de control iterativas/repetitivas
Cuestiones de estilo
Relación de ejercicios
Vectores y matrices
Arrays
Algoritmos de ordenación
Algoritmos de búsqueda
Apéndice: Cadenas de caracteres
Relación de ejercicios
Recursividad
Preliminares
Concepto de recursividad
Ejemplos
Relación de ejercicios
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
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.
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
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
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
Interfaces de usuario
Interfaces gráficas de usuario
Componentes Swing
Eventos AWT
Applets
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...
Distribución
Índice
Mecanismos de comunicación entre procesos
Redes de ordenadores: Internet
Sockets
RMI [Remote Method Invocation]
Más información...
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
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
|