Diagrama de temas

  • Programación en Lenguaje ADA (2010)

    maquinas-termicas.jpg


    Profesores

    José Javier Gutiérrez García

    Michael González Harbour

    Departamento de Electrónica y Computadores




    En esta asignatura, el objetivo principal es que al finalizar la misma el alumno pueda llevar a cabo el diseño e implementación de programas complejos, utilizando conceptos avanzados del lenguaje de programación Ada que se caracteriza por hacer énfasis en la fiabilidad, la programación orientada a objetos, la programación
    concurrente y la programación de sistemas de tiempo real. También se pretende que el alumno comprenda y sepa aplicar las estructuras de datos básicas que se utilizan para almacenar la información de un programa y los algoritmos que las manipulan.
    ¿Por qué aprender Ada? Porque es un lenguaje caracterizado por hacer énfasis en la fiabilidad:
    - Es el lenguaje mayoritario en sistemas de seguridad crítica, como por ejemplo, aviones, trenes o vehículos espaciales.
    - Es uno de los pocos lenguajes que tiene soporte directo para programar sistemas de tiempo real en que el software debe responder a tiempo a sucesos que ocurren en el mundo real. Muchos sistemas basados en computador son sistemas de tiempo real: vehículos, robots, televisión y vídeo, sistemas de telecomunicaciones y un largo etcétera.
    - Es un lenguaje moderno que soporta la programación orientada a objetos, la programación concurrente, la programación de tiempo real o la programación de sistemas distribuidos.


    Palabras Clave de la Asignatura

    Lenguajes de programación, Estructuras de datos y algoritmos, Ada, Programación orientada a objetos, Programación concurrente, Tiempo real

  • Programa

    programa

    Datos identificativos de la Asignatura

    • Denominación: Programación en Lenguaje ADA

    • Código:

    • Departamento: Electrónica y Computadores

    • Área de Conocimiento:

    • Tipo: Troncal

    • Curso y cuatrimestre: Segundo

    • Título: Ingenieria Informática

    • Centro: Facultad de Ciencias

    • Web: http://www.ctr.unican.es/asignaturas/prog_ada/

    • Profesor responsable: José Javier Gutiérrez García / Michael González Harbour


    Programa de la asignatura

    Profesores

    • José Javier Gutiérrez García (gutierjj@unican.es)
    • Michael González Harbour (mgh@unican.es) 

    Objetivos de Programación en Lenguaje Ada

    • Saber diseñar e implementar programas complejos utilizando conceptos avanzados del lenguaje de programación Ada
    • Comprender y saber usar las estructuras de datos básicas que se utilizan para almacenar la información de un programa y los algoritmos que las manipulan

    ¿Por qué Ada?

    El lenguaje Ada se caracteriza por hacer énfasis en la fiabilidad

    • Es el lenguaje mayoritario en sistemas de seguridad crítica, por ejemplo: aviones, trenes, vehículos espaciales

    Es uno de los pocos lenguajes que tiene soporte directo para programar sistemas de tiempo real

    • en los sistemas de tiempo real el software debe responder a tiempo a sucesos que ocurren en el mundo real
    • muchos sistemas basados en computador son sistemas de tiempo real - vehículos, robots, televisión y vídeo, telecomunicaciones, ...

    Es un lenguaje moderno que soporta la programación orientada a objetos, la programación concurrente, ...

    Programa

    PARTE I: Elementos del lenguaje Ada

     

    Tema 1. Introducción a los computadores y su programación.

    • Arquitectura básica de un computador.El software del sistema. Lenguajes de alto nivel. El proceso de compilación.

    Tema 2. Elementos básicos del lenguaje.

    • 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.

    Tema 3. Modularidad y programación orientada a objetos.

    • Diseño modular y orientado a objetos. Concepto de clase y objeto. Paquetes. Compilación separada. Reglas de visibilidad. Tipos de paquetes.

    Tema 4. Estructuras de datos dinámicas.

    • Relaciones entre datos. Punteros. Estructuras de datos dinámicas. Punteros a objetos estáticos.

    Tema 5. Tratamiento de errores.

    • 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.

    Tema 6. Abstracción de tipos mediante unidades genéricas.

    • 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

    Tema 7. Entrada/salida con ficheros.

    • Introducción. Ficheros. Entrada/salida de texto. Entrada/salida secuencial. Entrada/salida directa. Entrada/salida de streams.

    Tema 8. Herencia y polimorfismo.

    • Programación orientada a objetos. Tipos etiquetados. Herencia. Tipos abstractos y privados. Polimorfismo. Programación incremental.

    Tema 9. Programación concurrente y de tiempo real.

    • Concurrencia. Sincronización de espera. Sincronización de datos. Programación de tiempo real. Representación del hardware. Interrupciones. Gestión del tiempo. Prioridades.

     

    Parte II. Estructuras de datos y algoritmos

     

    Tema 10. Introducción al análisis y diseño de algoritmos.

    • 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.

    Tema 11. Tipos abstractos de datos.

    • Conceptos básicos. Conjuntos. Listas. Stacks. Colas. Mapeados. Árboles. Árboles binarios.

    Tema 12. Métodos de ordenación.

    • El modelo de ordenación interna. Esquemas simples de ordenación. Ordenación rápida. Ordenación por cajas. Ordenación por base.

    Actividades

    Lectura del material del curso

    • Apoyado por el material de la bibliografía

    Cuestionarios

    • Preguntas para comprobar que se ha leído el material

    Ejercicios

    • Problemas prácticos breves
    • habitualmente varios por tema

    Prácticas

    • una por cada tema (excepto los temas 1, 2, 10, 12)
    • se pedirá el código y un breve informe con los resultados