Identifying Data 2015/16
Subject (*) Programming Language Design Code 614G01065
Study programme
Grao en Enxeñaría Informática
Descriptors Cycle Period Year Type Credits
Graduate 1st four-month period
Fourth Obligatoria 6
Language
Spanish
Teaching method Face-to-face
Prerequisites
Department Computación
Coordinador
Alonso Pardo, Miguel angel
E-mail
miguel.alonso@udc.es
Lecturers
Alonso Pardo, Miguel angel
Gómez Rodríguez, Carlos
Vilares Ferro, Jesus
E-mail
miguel.alonso@udc.es
carlos.gomez@udc.es
jesus.vilares@udc.es
Web http://campusvirtual.udc.es
General description En esta asignatura se tratan aspectos de la especificación y diseño de lenguajes de programación:

* Criterios de diseño en las principales estructuras de control y de datos de los lenguajes de programación
* Diseño de lenguajes de programación orientados a objetos.
* Modelos para la definición formal de la semántica de los lenguajes de programación
* Especificación formal de los sistemas de tipos. Relaciones de subtipado
* Computabilidad. Análisis de complejidad y su relación con el diseño de lenguajes de programación.

Study programme competencies
Code Study programme competences
A39 Capacidade para ter un coñecemento profundo dos principios fundamentais e modelos da computación, e saber aplicalos para interpretar, seleccionar, valorar, modelar, e crear novos conceptos, teorías, usos e desenvolvementos tecnolóxicos relacionados coa informática.
A40 Capacidade para coñecer os fundamentos teóricos das linguaxes de programación e as técnicas de procesamento léxico, sintáctico e semántico asociadas, e saber aplicalas para a creación, o deseño e o procesamento de linguaxes.
B1 Capacidade de resolución de problemas
C2 Dominar a expresión e a comprensión de forma oral e escrita dun idioma estranxeiro.
C6 Valorar criticamente o coñecemento, a tecnoloxía e a información dispoñible para resolver os problemas cos que deben enfrontarse.

Learning aims
Learning outcomes Study programme competences
Manejar los principios de diseño de las principales estructuras de control de los lenguajes de programación y sus implicaciones en el desarrollo de programas A39
A40
B1
C6
Manejar los principios de diseño de las principales estructuras de datos de los lenguajes de programación y sus implicaciones en el desarrollo de programas A39
A40
B1
C6
Comprender y dominar los principios de diseño de los lenguajes orientados a objetos y de las implicaciones que las elecciones de diseño tienen en el desarrollo de programas A39
A40
B1
C6
Introducir el lambda-cálculo, tipado y no tipado, como núcleo fundamental de los lenguajes de programación. A39
A40
B1
C2
C6
Comprender los fundamentos formales de los sistemas de tipado y subtipado A39
A40
B1
C2
C6
Manejar de forma práctica los conceptos de complejidad algorítmica y sus implicaciones en el diseño de lenguajes de programación A39
A40
B1
C6

Contents
Topic Sub-topic
Principios de diseño de lenguajes de programción Nombres, ámbito y ligazón
Flujo de control
Tipos de datos
Subrutinas
Lenguajes orientados a objetos Fundamentos de diseño de lenguajes orientados a objetos
Problemas de tipado de los lenguajes orientados a objetos
Formalización de los sistemas de tipos Semántica operacional, denotacional y axiómática
Introducción al lambda cálculo
Lambda cálculo tipado
Computabilidad y complejidad Computabilidad y lambda cálculo
Clases de complejidad

Planning
Methodologies / tests Competencies Ordinary class hours Student’s personal work hours Total hours
Laboratory practice A39 C2 C6 14 42 56
Workshop B1 C6 7 14 21
Objective test A40 B1 2 6 8
Guest lecture / keynote speech A40 C2 21 42 63
 
Personalized attention 2 0 2
 
(*)The information in the planning table is for guidance only and does not take into account the heterogeneity of the students.

Methodologies
Methodologies Description
Laboratory practice Actividade que permite que os estudantes aprendan de forma efectiva a través da realización de actividades de carácter práctico, neste caso prácticas, demostracións e exercicios.
Workshop Realizaranse como complemento de todas as demais actividades, nalgúns casos de forma autónoma por parte do alumno e noutras ocasións dirixidas polo profesor.
Objective test Proba na que se evaluarán os coñecementos adquiridos tanto na parte teórica como na parte práctica da materia.
Guest lecture / keynote speech Exposición oral complementada co uso de medios audiovisuais e a formulación de preguntas dirixidas ós estudantes, co obxetivo de transmitir coñecemento así como de estimular o razoamento crítico do estudiante.

Personalized attention
Methodologies
Workshop
Laboratory practice
Description
El desarrollo de las clases se realizará atendiendo al progreso de los alumnos en las capacidades de comprensión y asimilación de los contenidos impartidos, compaginando el avance general de la clase con una atención específica a aquellos alumnos que presenten mayores dificultades en la tarea del aprendizaje y con un apoyo adicional a aquellos otros que presenten mayor desenvoltura y deseen ampliar conocimientos.

Dado el carácter personalizado de las tutorías, éstas no deben dedicarse a extender los contenidos con nuevos conceptos, sino a aclarar los conceptos ya expuestos. El profesor debe además utilizarlas como una interacción que le permita extraer conclusiones respecto al grado de asimilación de la materia por parte de los alumnos.

Assessment
Methodologies Competencies Description Qualification
Workshop B1 C6 Otras actividades evaluables, cuyo contenido se desarrollarán en las horas de TGR. 20
Objective test A40 B1 Ejercicio escrito 40
Laboratory practice A39 C2 C6 Trabajos de laboratorio 40
 
Assessment comments

La parte teórica de la asignatura computa un 40% de la nota. Las actividades de los TGR computan un 20% de la nota. La evaluación de los TGR se realizará junto con el examen de teoría.

El 40% restante se reparte entre las prácticas y cualquier otra actividad de evaluación que se realice a lo largo del curso.

Para aprobar la asignatura es preciso aprobar todos y cada uno de los apartados de la evaluación. Para la Segunda Oportunidad, se conservarán los resultados obtenidos en cada apartado en la Primera Oportunidad.

En el caso del alumnado a tiempo parcial, no se penalizará la inasistencia a clases de prácticas y TGR que estén debidamente justificadas.

Se podrán obtener puntos adicionales por realizar las actividades en inglés (por ejemplo, entregar el informe de una práctica en inglés, presentar una práctica en inglés, etc). En ningún caso se penalizará por realizar las actividades en español y/o gallego.


Sources of information
Basic Kim B. Bruce (2002). Foundations of Object-Oriented Languages: Types and Semantics. The MIT Press, Cambridge, MA
Fortnow, Lance (2013). P, NP, and the search for the impossible. Princeton University Press
Michael L. Scott (2009). Programming Language Pragmatics. Third edition. Morgan Kaufmann Publish- ers, Burlington, MA
Benjamin C. Pierce (2002). Types and Programming Languages. The MIT Press, Cambridge, MA

Complementary Robert W. Sebesta (2010). Concepts of Programming Languages. Pearson
Franklyn A. Turbak and David K. Gifford (2008). Design Concepts in Programming Languages. MIT Press, Cambridge, MA
David A. Watt (2004). Programming Language Design Concepts. ohn Wiley and sons, Chichester, West Suusex, England


Recommendations
Subjects that it is recommended to have taken before
Paradigmas de Programación/614G01014
Teoría da computación/614G01039

Subjects that are recommended to be taken simultaneously
Procesamento de Linguaxes/614G01067

Subjects that continue the syllabus

Other comments


(*)The teaching guide is the document in which the URV publishes the information about all its courses. It is a public document and cannot be modified. Only in exceptional cases can it be revised by the competent agent or duly revised so that it is in line with current legislation.