Saltar ao contido principal
Inicio  »  Centros  »  Escola Técnica Superior de Enxeñaría  »  Información da Materia

G4011445 - Programación Declarativa (Programación) - Curso 2013/2014

Información

  • Créditos ECTS
  • Créditos ECTS: 4.50
  • Total: 4.5
  • Horas ECTS
  • Clase Expositiva: 18.00
  • Clase Interactiva Laboratorio: 19.00
  • Horas de Titorías: 1.00
  • Total: 38.0

Outros Datos

  • Tipo: Materia Ordinaria Grao RD 1393/2007
  • Departamentos: Electrónica e Computación
  • Áreas: Ciencia da Computación e Intelixencia Artificial
  • Centro: Escola Técnica Superior de Enxeñaría
  • Convocatoria: 1º Semestre de Titulacións de Grao/Máster
  • Docencia e Matrícula: null

Profesores

NomeCoordinador
LOSADA CARRIL, DAVID E..SI

Horarios

NomeTipo GrupoTipo DocenciaHorario ClaseHorario exames
Grupo CLE01OrdinarioClase ExpositivaSISI
Grupo CLIL_01OrdinarioClase Interactiva LaboratorioSISI
Grupo TI-ECTS01OrdinarioHoras de TitoríasNONNON
Grupo TI-ECTS02OrdinarioHoras de TitoríasNONNON

Programa

Existen programas da materia para os seguintes idiomas:

  • Castelán
  • Galego


  • Obxectivos da materia
    A materia de programación declarativa consta de dous grandes bloques temáticos, a programación funcional e a programación lóxica. Esta materia introduce ó alumno de informática nuns paradigmas de programación novedosos dentro da súa formación e proporciona unhas habilidades moi distintas ás desenroladas no contexto dos paradigmas máis convencionais de programación procedural/orientada a obxetos. Sin duda existen numerosos problemas cuxa solución é moito máis sinxela a través de programas descritos en programación lógica ou funcional. Na actualidade, está empezando a usarse cada vez máis as linguaxes lóxicos e funcionais para aplicacións e proxectos a gran escala, y é posibel que nun futuro non moi lonxano estas linguaxes sexan preferidas por unha maioría dos programadores.
    Non é difícil encontrar entornos empresariais onde as linguaxes declarativas utilizanse para resolver problemas. Por exemplo, hoxe en día podemos encontrar código escrito en programación lóxica e funcional en entornos tan dispares como aplicacións de bases de datos de comercio electrónico, ferramentas de xestión financieiras, software de predicción económica, sistemas de control de semáforos, ferramentas de parseado, aplicacións de planificación (existen por exemplo exitosas aplicacións en planificación para a asignación de persoal de liñas aéreas a vós comerciais escritas en Haskell), desenrolo de intérpretes de comandos e de linguaxes de guións (compoñentes que aparecen en multitud de aplicacións empresariais propietarias de gran tamaño), aplicacións de intelixencia artificial, sistemas de procesamento de linguaxe natural, etc
    Os obxectivos principais desta asignatura os podemos enumerar como:
    -Coñecer os principais puntos fortes e debilidades dos paradigmas de programación funcional e lóxico.
    -Deseñar, codificar, probar e depurar programas funcionais e lóxicos
    -Coñecer os principais ámbitos de aplicación de estos paradigmas como ferramentas alternativas e complementarias de programación.
    -Dar unha visión ó alumno duns paradigmas de programación distintos ós que coñece, que implican unha forma de resolver problemas distinta e supoñen un complemento ideal á súa formación como enxeñeiro técnico.


    Contidos
    PROGRAMACIÓN FUNCIONAL:
    Conceptos fundamentais. Linguaxes funcionais, intérpretes, expresións, funcións, tipos.
    Funcións e números. Operadores, prioridades, asociación, currificación, iteración, composición.
    Estructuras de dados características. Listas, cadeas, caracteres, tuplas, árbores.
    Aplicacións da programación funcional.
    PROGRAMACIÓN LÓXICA:
    Cálculos con relaciones, regras y hechos, consultas.
    Introducción a Prolog: términos, interacción, consultas de existencia, feitos e regras universais, negación, unificación, aritmética.
    Listas, términos como dados
    Técnicas de programación: propoñe e verifica, listas de diferencias, etc.
    Control: Unificación e sustitucións, regras e metas, árbores de búsqueda
    Cortes: aplicacións en programación, negación como fracaso
    Aplicacións da programación lóxica

    Bibliografía básica e complementaria
    Bibliografía básica
    ------------------

    R. Bird: Introducción a la programación funcional con Haskell, Prentice Hall, 2000.
    L. Sterling, E. Shapiro. The art of PROLOG. MIT press, 1994.

    Bibliografía complementaria
    ---------------------------
    R. Peña Mari: La programación funcional en Haskell, Univ. Complutense de Madrid, 1995.
    Sethi, R.: Lenguajes de programación: conceptos y constructores, Addison-Wesley, 1992
    M. P. Jones: Una introducción a Gofer, Univ. de Yale, 1991
    C. J. Hogger: Introduction to logic programming. Academic press, 1984.
    Bird & Wadler: Introduction to Functional Programming, Prentice-Hall International, 1988.

    Competencias
    Generales:

    CG3. Capacidad para diseñar, desarrollar, evaluar y asegurar la accesibilidad,
    ergonomía, usabilidad y seguridad de los sistemas, servicios y aplicaciones
    informáticas, así como de la información que gestionan.

    CG4. Capacidad para definir, evaluar y seleccionar plataformas hardware y
    software para el desarrollo y la ejecución de sistemas, servicios y
    aplicaciones informáticas

    CG8. Conocimiento de las materias básicas y tecnologías, que capaciten para el
    aprendizaje y desarrollo de nuevos métodos y tecnologías, así como las
    que les doten de una gran versatilidad para adaptarse a nuevas
    situaciones.

    CG9. Capacidad para resolver problemas con iniciativa, toma de decisiones,
    autonomía y creatividad. Capacidad para saber comunicar y transmitir los
    conocimientos, habilidades y destrezas de la profesión de Ingeniero
    Técnico en Informática.

    Instrumentales: Capacidad de análisis y síntesis. Comunicación oral y escrita en gallego,
    castellano e inglés. Resolución de
    problemas.

    Personales: Trabajo en equipo. Habilidades en las relaciones interpersonales. Razonamiento
    crítico.

    Sistémicas: Creatividad.

    FB3. Capacidad para comprender y dominar los conceptos básicos de
    matemática discreta, lógica, algorítmica y complejidad computacional, y su
    aplicación para la resolución de problemas propios de la ingeniería.
    FB4. Conocimientos básicos el uso y programación de los ordenadores, sistemas
    operativos, bases de datos y programas informáticos con aplicación en
    ingeniería.

    RI1. Capacidad para diseñar, desarrollar, seleccionar y evaluar aplicaciones y
    sistemas informáticos, asegurando su fiabilidad, seguridad y calidad,
    conforme a principios éticos y a la legislación y normativa vigente.
    RI6. Conocimiento y aplicación de los procedimientos algorítmicos básicos de
    las tecnologías informáticas para diseñar soluciones a problemas,
    analizando la idoneidad y complejidad de los algoritmos propuestos.
    RI7. Conocimiento, diseño y utilización de forma eficiente de los tipos y
    estructuras de datos más adecuados a la resolución de un problema.
    RI8. Capacidad para analizar, diseñar, construir y mantener aplicaciones de
    forma robusta, segura y eficiente, eligiendo el paradigma y los lenguajes
    de programación más adecuados.
    RI15. Conocimiento y aplicación de los principios fundamentales y técnicas
    básicas de los sistemas inteligentes y su aplicación práctica.


    Competencias asociadas al módulo de Programación:

    - Desarrollar programas con un buen estilo de programación, con la
    documentación necesaria y los comentarios adecuados.
    - Utilizar herramientas de edición, compilación, y ejecución para desarrollar
    programas. Capacidad para aplicar estrategias de depuración, prueba y
    corrección de programas.
    - Conocer diferentes paradigmas de programación y saber elegir el más
    apropiado a cada situación.
    - Conocimiento de los diferentes paradigmas de programación.
    - Exposición oral del trabajo realizado.


    Metodoloxía da ensinanza
    O programa de docencia expositiva baséase en clases de pizarra, nas que se inclúen as explicacións dos temas e seminarios de problemas.
    O programa de docencia interactiva organízase de forma regular en sesións semanais de prácticas en laboratorio de ordenadores.
    En cada sesión aplícanse na práctica da forma mais inmediata posible os temas explicados nas clases teóricas.
    As prácticas estarán centradas no desenvolvemento de programas funcionais e lóxicos utilizando Haskell e Prolog.

    O programa de titorías
    basearase en seminarios de resolución de problemas relacionados cos
    distintos
    aspectos do temario e tamén en probas a realizar polos estudantes.


    Utilizarase de modo constante o Campus Virtual como ferramenta de apoio a docencia expositiva e interactiva



    Sistema de evaluación
    A asignatura ten unha parte teórica e unha parte práctica.

    A parte práctica avaliarase ao longo do curso mediante unha avaliación continua na que o profesor realizará un seguimiento do alumno.
    Propoñerase a realización dunha serie de programas funcionais e lóxicos que o alumno deberá entregar para a súa avaliación por parte do profesor.
    Ademais, poderanse propoñer actividades adicionais avaliables como debates ou presentacións de traballos.
    A parte teórica avaliarase mediante un exame escrito que se efectuará á finalización do cuatrimestre.

    Na nota final da asignatura, a parte teórica e a parte práctica terán igual valor.
    A parte práctica constará de actividades obrigatorias e actividades optativas. As obrigatorias permitirán un máximo de 8 puntos (sobre os 10 da
    nota de prácticas). Os outros 2 puntos poderánse alcanzar con actividades optativas.

    A parte práctica ** non será posible superala na oportunidade extraordinaria de xullo **. É dicir, quen non
    supere a avaliación continua das prácticas ao longo do cuatrimestre, poderá acudir ao exame teórico da oportunidade de xullo pero non poderá superar a materia nesta oportunidade extraordinaria.

    Na oportunidade extraordinaria haberá un exame teórico que permitirá poder aprobar aos que só teñen pendente a parte teórica da materia.

    Condicións para o "Presentado": Quen se presente ao exame final ou entregue ou participe en 2 actividades de prácticas non poderá ter un "Non presentado" como nota final.

    Os estudantes repetidores teñen exactamente o mesmo sistema de avaliación que os estudantes de nova matrícula. Non se conservan notas de ningunha das partes entre convocatorias (dun ano para outro).



    Tempo de estudo e traballo persoal
    Clases de pizarra: 18 h presenciais 27 h traballo autonomo do alumno
    Clases de prácticas: 19 h presenciais 28.5 h traballo autonomo do alumno
    Tutorias e Actividades de avaliacion: 8 h presenciais 12 h traballo autonomo do alumno

    Total horas presenciais: 45h
    Total horas traballo autonomo: 67,5h
    Recomendacións para o estudo da materia
    Recomendase realizar a totalidade dos exercicios dos boletíns de problemas e de prácticas, tanto os que se resolvan nas propias sesións de problemas e de prácticas, como os que queden propostos. Recomendase igualmente utilizalas tutorías para a resolución de dudas sobre calquer aspecto da materia.