Temario
1 Depuración de programas
1.1 Tipos de errores al programar
1.2 Herramientas de depuración
1.3 Estrategias de depuración

2 Ristras de caracteres
2.1 Concepto y tipos de ristras
2.2 Operaciones con ristras
2.3 Tratamiento de ristras: recorrido y búsqueda

3 Programación modular
3.1 Separación, ocultamiento y encapsulamiento
3.2 Paquetes, clases y objetos
3.3 Visibilidad: interfaz e implementación

4 Recursividad
4.1 Subprogramas recursivos
4.2 Caracterización de la recursividad
4.3 Metodología de diseño de soluciones recursivas

5 Estructuras encadenadas
5.1 Gestión de la memoria
5.2 Concepto de encadenamiento
5.3 Estructuras encadenadas
5.4 Tratamiento de estructuras encadenadas: recorrido, inserción, extracción y búsqueda

6 Excepciones
6.1 Errores durante la ejecución
6.2 Bloques de control
6.3 Ciclo de existencia de las excepciones
6.4 Representación de las excepciones
6.5 Robustez frente a excepciones

7 Ficheros
7.1 Organización de la información en memoria secundaria
7.2 Protocolo de transferencia con los ficheros
7.3 Tipos de ficheros, modos de transferencia y formas de acceso
7.4 Operaciones con ficheros
7.5 Tratamiento de ficheros: recorrido, inserción y búsqueda

Para todos los temas se utilizarán como bibliografía los tres libros básicos de la asignatura: [1 Básico] [2 Básico] [3 Básico].

Todos los contenidos son de carácter teórico-práctico. En cada tema se realizarán ejercicios en clase que aplicarán los conocimientos teóricos antes expuestos. Por otra parte, en las clases de laboratorio, se desarrollarán trabajos de curso dirigidos consistentes en el desarrollo de diversos programas, su prueba y depuración que perseguirán que los alumnos adquieran destreza en el uso de un lenguaje de programación y habilidad en el empleo de los conceptos mostrados en clase.