1. Profesores
2. Programa
3. Apuntes
4. Librería Win_IO
5. Prácticas
6. Exámenes anteriores
Arquitectura básica de un computador.El software del sistema. Lenguajes de alto nivel. El proceso de compilación.
Introducción. Estructura de un programa. Variables, constantes y tipos simples. Expresiones. Instrucciones de control. Tipos de datos. Subprogramas y paso de parámetros. Reglas de visibilidad. Entrada/salida simple.
Paquetes. Compilación separada. Concepto de clase y objeto. Abstracción de datos mediante tipos privados. Reglas de visibilidad. Tipos de paquetes.
Relaciones entre datos. Punteros. Estructuras de datos dinámicas. Punteros a objetos estáticos.
Excepciones. Excepciones predefinidas. Declaración de excepciones propias. Elevar y tratar excepciones. Manejadores. Funcionamiento de las excepciones. Formas más habituales de tratar excepciones. El paquete Ada.Exceptions.
Abstracción de tipos. Paquetes genéricos. Subprogramas genéricos. Tipos como parámetros genéricos. Subprogramas como parámetros genéricos. Punteros a subprogramas.
Ficheros. Entrada/salida de texto. Entrada/salida secuencial. Entrada/salida directa. Entrada/salida de streams.
Tipos etiquetados. Herencia. Polimorfismo. Interfaces. Programación incremental.
Concurrencia. Sincronización de espera. Sincronización de datos. Programación de tiempo real. Representación del hardware. Interrupciones. Gestión del tiempo. Prioridades.
Introducción. Diseño de un programa. Concepto de algoritmo. Descripción de algoritmos: el pseudolenguaje y diagramas de flujo. Tiempo de ejecución. La notación O(n). Ejemplos de análisis.
Conceptos básicos. Conjuntos. Listas. Stacks. Colas. Mapeados. Árboles. Árboles binarios.
El modelo de ordenación interna. Esquemas simples de ordenación. Ordenación rápida. Ordenación por cajas. Ordenación por base.
Compiladores. Las fases de un compilador. Análisis del programa fuente. Código intermedio. Optimización. Generación de código. Herramientas para construcción de compiladores. Análisis Léxico. Expresiones regulares. La herramienta lex. Análisis Sintáctico. La herramienta yacc.
1. Introducción al sistema operativo UNIX
2. Utilización del laboratorio de lenguajes
3. Comparación entre Ada, C/C++, y Java
Programa
1. Introducción a los computadores y su programación
2. Elementos básicos del lenguaje
3. Modularidad y programación orientada a objetos
4. Estructuras de datos dinámicas
5. Tratamiento de errores
6. Abstracción de tipos mediante unidades genéricas
7. Entrada/salida con ficheros
8. Herencia y polimorfismo
9. Programación concurrente y de tiempo real
1. Introducción al análisis y diseño de algoritmos
2. Tipos abstractos de datos
3. Métodos de ordenación
1. Introducción a la tecnología de compiladores
1. Introducción al sistema operativo UNIX
2. Utilización del laboratorio de lenguajes
3. Comparación entre Ada, C/C++, y Java
Win_IO es software libre y se puede encontrar en: http://www.ctr.unican.es/win_io/