Facultades y centros
Otros centros
Servicios administrativos
Servicios generales
La asignatura parte de la premisa de que los estudiantes conocen con cierta profundidad algunos lenguajes de programación, principalmente imperativos y orientados a objetos. Su objetivo principal es que consigan una mayor perspectiva y puedan razonar en general sobre los lenguajes de programación. ¿Qué elementos son comunes a los lenguajes de programación? ¿Qué características tienen? ¿Cuáles son los elementos esenciales y los accesorios? ¿Qué familias o paradigmas de lenguajes podemos identificar? ¿Cómo diseñar un buen lenguaje de programación? Dominando estos contenidos será mucho más fácil aprender nuevos lenguajes de programación, identificar sus aspectos esenciales e incluso ser capaz de diseñar lenguajes específicos orientados a dominios concretos.
En el curso utilizaremos los lenguajes de programación Racket y Swift. Racket se construye sobre Scheme, una variante muy extendida de LISP, lenguaje paradigma de la programación funcional. La utilización de un lenguaje tan sencillo nos permite reflexionar sobre cuáles son los elementos esenciales de los lenguajes de programación y su semántica. Swift es un moderno lenguaje multiparadigma creado reciéntemente por Apple con aspiraciones de soportar múltiples plataformas (dispositivos móviles, sistemas operativos o servidores) y que integra de forma coherente conceptos de programación funcional y programación orientado a objetos y que introduce nuevos paradigmas de programación como la programación orientada a protocolos. A diferencia de Racket, Swift es un lenguaje compilado, seguro y fuertemente tipado.
En la asignatura trataremos cuatro grandes aspectos:
Competencias específicas (CE)
Definimos las siguientes competencias específicas: