Diagrama de temas

  • General

    Programación en Lenguaje ADA (2010)

  • Programación en Lenguaje ADA (2010)

    maquinas-termicas.jpg

    Programación en Lenguaje ADA (2010)

    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
    • Bibliografía

      Bibliografía Básica

      [1] J. BARNES. "Programming in Ada 2005", first edition. Addison-Wesley, 2006.
      [2] J. BARNES. "Ada 2005 Rationale", LNCS 5020, Springer, 2008.
      [3] A. BURNS y A. WELLINGS. "Concurrent and Real-Time Programming in Ada", Cambridge University Press, 2007.
      [4] S.T. TAFT, R.A. DUFF, R.L. BRUKARDT, E. PLOEDEREDER, y P. LEROY (Eds.).

      "Ada 2005 Reference Manual. Language and Standard Libraries. International Standard ISO/IEC8652:1995(E) with Technical Corrigendum 1 and Amendment 1". LNCS 4348, Springer,2006.
      [5] M.B. FELDMAN. "Software Construction and Data Structures with Ada 95." Addison Wesley, 1996.
      [6] A. AHO, J. HOPCROFT y J. ULLMAN : "Estructuras de datos y algoritmos". Addisson Wesley. 1988.

      Bibliografía complementaria

      [7] J. ENGLISH. “Ada 95: the craft of object-oriented programming”. Prentice Hall, 1997
      [8] SKANSHOLM. “Ada from the Beginning”. 3rd Edition. Addison-Wesley. 1997
      [9] M. FELDMAN and E. KOFFMAN "Ada 95: Problem Solving and Program Design".Addison-Wesley, 1996.
      [10] J. BARNES. "Programming In Ada 95", first edition. Addison-Wesley, 1995.
      [11] F. CULWIN. “Ada: A developmental approach”. 2nd. edition. Prentice Hall, 1997
      [12] N.H. COHEN. “Ada as a second language”. 2nd. edition. McGraw Hill, 1996
      [13] M.A. SMITH. “Object-Oriented Software in Ada 95”. Intl. Thomson Computer Press, 1996.
      [14] A.V AHO, J.E. HOPCROFT and J.D. ULLMAN : " Data structures and algorithms ". Ed.Addisson-Wesley, 1983.
      [15] M.A. WEISS. “Data structures and Algorithm Analysis in Ada”. The Benjamin/Cummings Pub. Co., 1993

    • Material de Clase

      Parte I. Elementos del lenguaje Ada

      • MC-F-001. Introducción a los computadores y su programación
      • MC-F-002. Elementos básicos del lenguaje
      • MC-F-003. Modularidad y programación orientada a objetos
      • MC-F-004. Estructuras de datos dinámicas
      • MC-F-005. Tratamiento de errores
      • MC-F-006. Abstracción de tipos mediante unidades genéricas
      • MC-F-007. Entrada/salida con ficheros
      • MC-F-008. Herencia y polimorfismo
      • MC-F-009. Programación concurrente y de tiempo real

      Parte II. Estructuras de datos y algoritmos

      • MC-F-010. Introducción al análisis y diseño de algoritmos.
    • Prácticas

    • Guía de Aprendizaje

    • Sobre el Profesor

      Logo de la UC

       

            José Javier Gutiérrez García

       

             Departamento de Electrónica

       y Computadores



       

       

       

       

      Logo de la UC

       

      Michael González Harbour

       

      Departamento de Matemáticas Estadística

       y Computación