Datos Identificativos 2013/14
Asignatura (*) Paradigmas de Programación Código 614G01014
Titulación
Grao en Enxeñaría Informática
Descriptores Ciclo Período Curso Tipo Créditos
Grao 1º cuadrimestre
Segundo Obrigatoria 6
Idioma
Castelán
Prerrequisitos
Departamento Computación
Coordinación
Molinelli Barba, Jose Maria
Correo electrónico
jose.molinelli@udc.es
Profesorado
Graña Gil, Jorge
Molinelli Barba, Jose Maria
Paris Fernandez, Javier
Vilares Ferro, Jesus
Correo electrónico
jorge.grana@udc.es
jose.molinelli@udc.es
javier.paris@udc.es
jesus.vilares@udc.es
Web http://campusvirtual.udc.es/moodle/
Descrición xeral Resolución de problemas usando diferentes técnicas de programación: estructurada, orientada a objetos, declarativa, etc.

Competencias do título
Código Competencias da titulación
A3 Capacidade para comprender e dominar os conceptos básicos de matemática discreta, lóxica, algorítmica e complexidade computacional e a súa aplicación para a resolución de problemas propios da enxeñaría.
A7 Capacidade para deseñar, desenvolver, seleccionar e avaliar aplicacións e sistemas informáticos que aseguren a súa fiabilidade, seguranza e calidade, conforme a principios éticos e á lexislación e normativa vixente.
A13 Coñecemento, deseño e utilización de forma eficiente dos tipos e estruturas de datos máis adecuados á resolución dun problema.
A14 Capacidade para analizar, deseñar, construír e manter aplicacións de forma robusta, segura e eficiente, elixindo o paradigma e as linguaxes de programación máis adecuados.
B1 Capacidade de resolución de problemas
B3 Capacidade de análise e síntese
C2 Dominar a expresión e a comprensión de forma oral e escrita dun idioma estranxeiro.
C3 Utilizar as ferramentas básicas das tecnoloxías da información e as comunicacións (TIC) necesarias para o exercicio da súa profesión e para a aprendizaxe ao longo da súa vida.
C4 Desenvolverse para o exercicio dunha cidadanía aberta, culta, crítica, comprometida, democrática e solidaria, capaz de analizar a realidade, diagnosticar problemas, formular e implantar solucións baseadas no coñecemento e orientadas ao ben común.
C6 Valorar criticamente o coñecemento, a tecnoloxía e a información dispoñible para resolver os problemas cos que deben enfrontarse.
C7 Asumir como profesional e cidadán a importancia da aprendizaxe ao longo da vida.
C8 Valorar a importancia que ten a investigación, a innovación e o desenvolvemento tecnolóxico no avance socioeconómico e cultural da sociedade.

Resultados de aprendizaxe
Competencias de materia (Resultados de aprendizaxe) Competencias da titulación
Capacidade para deseñar, desenvolver, seleccionar e avaliar aplicacións e sistemas informáticos que aseguren a súa fiabilidade, seguranza e calidade, conforme a principios éticos e á lexislación e normativa vixente. A7
Coñecemento, deseño e utilización de forma eficiente dos tipos e estruturas de datos máis adecuados á resolución dun problema. A13
Capacidade para analizar, deseñar, construír e manter aplicacións de forma robusta, segura e eficiente, elixindo o paradigma e as linguaxes de programación máis adecuados. A14
Capacidade para comprender e dominar os conceptos básicos de matemática discreta, lóxica, algorítmica e complexidade computacional e a súa aplicación para a resolución de problemas propios da enxeñaría. A3
C2,C3,C4,C6,C7,C8 (ver competencias titulación) C2
C3
C4
C6
C7
C8
B9, B11 (ver competencias titulación) B1
B3

Contidos
Temas Subtemas
Programación Declarativa: Programación Funcional Tipos e valores. Expresións e definicións.

"Pattern-matching".

Funcións. Funcións recursivas. Terminación. Recursividade terminal. "Currying". Funcións de orde superior.

Tipos parametrizados. Tipos recursivos. Polimorfismo

Transparencia referencial.

Excepciones.
Programación imperativa Estado da máquina. Variables. Asignación.

Programación estructurada. Estructuras de control: Composición secuencial, alternativa e iterativa.

Procedimentos e funcións. Paso de parámetros por referencia e por valor. Efectos colaterais.

Programación imperativa vs. declarativa.
Programación Orientada a Obxectos. Obxectos, atributos e métodos.

Clases e herdanza.

Polimorfismo.

Programación Orientada a Obxectos vs. imperativa

Programación Orientada a Objetos vs. declarativa
A linguaxe de programación Objective Caml Programación funcional, imperativa e orientada a obxectos en Ocaml

Os compiladores de Ocaml

Entrada / Saída

Módulos e librerías

Abstracción, encapsulación e compilación separada. Módulos, interfaces e signaturas.

Planificación
Metodoloxías / probas Horas presenciais Horas non presenciais / traballo autónomo Horas totais
Sesión maxistral 30 20 50
Discusión dirixida 8 0 8
Proba obxectiva 4 16 20
Traballos tutelados 2 20 22
Prácticas de laboratorio 20 20 40
 
Atención personalizada 10 0 10
 
*Os datos que aparecen na táboa de planificación son de carácter orientativo, considerando a heteroxeneidade do alumnado

Metodoloxías
Metodoloxías Descrición
Sesión maxistral Exposición na aula dos contidos básicos da materia.
Discusión dirixida Nas horas de titorías en grupos reducidos, discutirase cos estudantes a formulación e resolución de problemas avanzados.
Proba obxectiva Exame escrito.
Traballos tutelados O estudante poderá acordar co profesor a preparación de certos traballos para a súa presentación e discusión con outros estudantes durante as horas de titorías en grupos reducidos.
Prácticas de laboratorio Exercicios de programación para a posta en práctica do visto nas clases maxistrais, con atención personalizada por parte do profesor de prácticas en horario de laboratorio.

Atención personalizada
Metodoloxías
Prácticas de laboratorio
Traballos tutelados
Descrición
Durante o horario de prácticas de laboratorio supervisarase o traballo dos estudantes e asesoraráselles na resolución dos exercicios.

Asesorarase persoalmente aos estudantes na preparación dos traballos tutelados para a súa presentación nas horas de titorías en grupos reducidos.

O profesor tentará solucionar aquelas dúbidas que poidan xurdir respecto ao temario da materia.

Avaliación
Metodoloxías Descrición Cualificación
Prácticas de laboratorio Asistencia, realización e entrega de prácticas de laboratorio. 20
Proba obxectiva Exame escrito 60
Traballos tutelados Coa realización de traballos tutelados e a súa defensa e discusión durante as horas de Titorías en Grupos Reducidos poderá consolidarse até un 20% da nota final. A porcentaxe non consolidada pasará a computarse na proba obxectiva. A valoración do exame escrito realizarase pola porcentaxe que reste até o 80 % 20
 
Observacións avaliación

Fontes de información
Bibliografía básica WIKSTRÖM, A. (). Functional Programming Using Standard ML. Prentice Hall
Joshua B. Smith (2006). Practical Ocaml. Apress

Manual de Objective Caml

Bibliografía complementaria Thérèse Accart Hardin and Véronique Donzeau-Gouge Viguié (). Concepts et outils de programmation. InterEditions
Luc Albert (1997). Cours et exercices d'informatique. Thomson Publishing International, Paris
WEIS, P. & LEROY, X. (1993). Le Languaje Caml. InterEditions
PAULSON, L. C. (1991). ML for the Working Programmer. Cambridge University Press.
Michel Quercia (2000). Nouveaux exercices d'algorithmique. Éditions Vuibert, Paris
Jacques Rouablé (1997). Programmation en Caml. Eyrolles, Paris
Philippe Narbe (2005). Programmation fonctionnelle, générique et objet: une introduction avec le langage OCaml. Vuibert, Paris
COUSINEAU, G, & MAUNY, M. (1998). The functional Approach to Programming. Cambridge University Press.

CHAILLOUX, E.; MANOURY, P. & PAGANO, B.: Developing Applications With Objective Caml.


Recomendacións
Materias que se recomenda ter cursado previamente
Concorrencia e Paralelismo/614G01018
Sistemas Intelixentes/614G01020

Materias que se recomenda cursar simultaneamente
Algoritmos/614G01011
Deseño Software/614G01015

Materias que continúan o temario
Programación I/614G01001
Matemática Discreta/614G01004
Programación II/614G01006

Observacións


(*)A Guía docente é o documento onde se visualiza a proposta académica da UDC. Este documento é público e non se pode modificar, salvo casos excepcionais baixo a revisión do órgano competente dacordo coa normativa vixente que establece o proceso de elaboración de guías