Teoria de Los Lenguajes de Programacion 1
Teoria de Los Lenguajes de Programacion 1
Teoria de Los Lenguajes de Programacion 1
TEORÍA DE LOS
LENGUAJES DE
PROGRAMACIÓN Curso 2016/2017
(Código:71012024)
1.PRESENTACIÓN DE LA ASIGNATURA
Esta asignatura presenta los contenidos relacionados con la teoría y la práctica de los lenguajes de programación (LP). Los
objetivos generales de la asignatura son:
• El estudio formal de los Lenguajes de Programación (LP) y su especificación, para que el estudiante tenga una
visión general que le permita entender el papel de la sintaxis y la semántica en los LP.
• Conocer los mecanismos de los LP y sus construcciones, para distinguir entre el control de secuencia y el control de
datos en un programa, los rasgos que caracterizan a los elementos de datos en un lenguaje, su sistema de tipos o su
ausencia.
• El estudio de los paradigmas de los lenguajes de programación existentes, enmarcar los LP en paradigmas y
destacar las características de los LP que los hacen adecuados para la función que se les otorga.
• El programador profesional, que necesita saber las diferencias entre los LP para poder elegir el mas adecuado para el
proyecto que quiera realizar o el problema a resolver o, si ya ha tomado esta decisión y trabaja con uno concreto, para
mejorarlo con técnicas disponibles en otros LP.
• El diseñador de un nuevo LP que necesita saber tanto los fundamentos de los diferentes paradigmas de los LP como el
panorama completo de los existentes, para considerar con todo rigor el nicho que va a ocupar su nuevo LP.
• El implementador de un LP que desarrolla su compilador o intérprete sobre una máquina particular o un tipo de máquina y
pueda aprovechar lo que ha aprendido en este mismo proceso para futuros LP.
En general el programador, el diseñador y el implementador de un LP deben conocer el área de los LP, su evolución
histórica, sus fundamentos teóricos, los distintos usos, etc para poder apreciar sus características diferentes, entender la
influencia que ejercen las arquitecturas y aplicaciones de los ordenadores sobre el diseño de los LP y evitar futuros defectos
de diseño de programas aprendiendo las lecciones del pasado.
La asignatura incluye una parte práctica con sesiones presenciales con el tutor, de asistencia obligatoria, que evaluará su
práctica concreta (más información en el aula virtual).
Contextualización:
En el plan formativo del grado, esta asignatura se encuadra en la materia “Lenguajes de Programación”,
altamente relacionada con las materias “Fundamentos de Programación”, y “Metodología de la Programación
y Algoritmia”.
En la tabla oficial de reconocimiento de créditos de planes de estudios en la UNED, se puede observar que
para esta asignatura solo se reconocen los créditos de la asignatura “Lenguajes de Programación” de la
Ingeniería Técnica en Informática de Sistemas de la UNED. Esto se debe a que la asignatura planteada
cubre casi un 80% de los aspectos teóricos de la de ITI Sistemas, aunque menos en los aspectos
prácticos.
Competencias genéricas:
Las competencias genéricas que propone la UNED se articulan en cuatro áreas competenciales, entre las
que se encuentran las dos relacionadas con esta asignatura G.2 y G.5:
- Trabajo en equipo
- Compromiso ético.
Competencias específicas:
Las competencias específicas a alcanzar durante el transcurso de los estudios de la titulación se han
clasificado en tres apartados, entre las que se encuentran las relacionadas con esta asignatura (FB.4,
FB.5.2):
No hay ningún prerrequisito diferente de los generales, ya que esta asignatura puede ser cursada aisladamente, aunque el
estudiante se beneficiaría si hubiera cursado previamente las dos asignaturas de primero de Fundamentos de Programación
(Fundamentos de Programación y Programación Orientada a Objetos) y la de Metodología de la programación y Algoritmia
del primer semestre de segundo (Programación y Estructuras de Datos Avanzadas).
4.RESULTADOS DE APRENDIZAJE
El objetivo general de la materia es proporcionar al estudiante formación relacionada con los lenguajes de programación (LP)
en aspectos como:
• La habilidad para desarrollar algoritmos eficaces: muchos LP incluyen características que, cuando se usan de forma
apropiada, benefician al programador pero si se usan incorrectamente, pueden o desperdiciar tiempo de cómputo o conducir
al programador a errores lógicos.
• El uso correcto de un LP: conociendo cómo se implementan las características del LP que se use, se mejora la habilidad
para escribir programas.
• El conocimiento de construcciones útiles de programación: el LP sirve a la vez como una ayuda y como una
restricción para el pensamiento. Un LP permite estructurar la manera en que uno concibe un programa, y ayuda a
expresarse en formas (construcciones de programación) difíciles de expresar solo con palabras.
• La elección de un LP según el problema a resolver o proyecto a realizar: el conocimiento teórico de los diferentes
paradigmas de programación y de los LP permite la elección del LP idóneo para un proyecto particular.
• El aprendizaje de nuevos LP: el conocimiento profundo de las construcciones y otros elementos de un LP, junto con sus
técnicas de ejecución de programas, permite al programador aprender nuevos LP con más facilidad.
• El diseño de un nuevo LP: el diseñador de un proyecto complejo debe ocuparse de muchas de las cuestiones que están
presentes en el diseño de un LP para usos generales. Por lo tanto es doble el resultado del aprendizaje: diseño de
programas y métodos de implementación de LP.
Los resultados de aprendizaje y sus competencias en esta asignatura según el plan de estudios del Grado en
Ingeniería Informática de la UNED, y que se cubren convenientemente con el planteamiento anterior son:
• Conocer y comprender los constructores propios de los lenguajes de programación y sus diferentes paradigmas, así como
las técnicas para su implementación (Competencias: G2, FB3, BC6, BC7, BTEc1, BTEc2)
• Saber elegir el lenguaje más apropiado para el desarrollo de una aplicación. Conocer las alternativas y sus características
(Competencias: G2,G5, FB3, BC1, BC7, BTEti2, BTEc1, BTEc2)
• Utilizar los constructores de distintos lenguajes en la implementación de programas (Competencias: G5, FB3, FB4.2, BC5,
BC7, BTEc1, BTEc2)
5.CONTENIDOS DE LA ASIGNATURA
A continuación, se presenta la estructura de los contenidos de la asignatura: cuatro unidades didácticas que incluyen
diferentes temas. Dentro de las actividades de aprendizaje de cada unidad didáctica, se especifican las lecturas más
adecuadas para cada uno de los temas, se presentan y se facilita, en su caso, el acceso a diferentes ejemplos y
herramientas accesibles desde el aula virtual.
Esta unidad didáctica es una introducción al diseño de los lenguajes y los paradigmas existentes. Está compuesta por los
siguientes temas:
El objetivo global de esta unidad didáctica es el conocimiento de los lenguajes de programación declarativa, en sus dos
modalidades, la declarativa y la funcional. La práctica obligatoria de la asignatura se corresponde con esta unidad didáctica.
El objetivo global de esta unidad didáctica es el conocimiento teórico y práctico de los principios relacionados con la sintaxis
y semántica de los lenguajes de programación no declarativos. Además se revisarán conceptos relacionados con los tipos de
datos de un lenguaje de programación.
El objetivo global de esta unidad didáctica es el conocimiento teórico y práctico de los principios relacionados con las
estructuras de control y los entornos de ejecución de los lenguajes de programación. En el tema 8 se estudian las
expresiones, cuya evaluación permitirá que el programa pueda variar el flujo de ejecución mediante las estructuras de
control. En el tema 9 se tratan los procedimientos, que son bloques de código cuya ejecución se pospone y que cuentan con
una interfaz claramente especificada.
8.3 Bucles
8.4 Excepciones
Horas de práctica o de
Tema Horas de teoría
actividades complementarias
1 4 0
2 4 0
3 14
35
4 14
5 10 5
6 12 5
7 12 5
8 10 5
9 10 5
La asignatura no tiene clases teóricas presenciales de carácter obligatorio. Los contenidos teóricos se impartirán a distancia,
de acuerdo con las normas y estructuras de soporte telemático de la enseñanza en la UNED.
Junto a las actividades y enlaces con fuentes de información externas, existe material didáctico propio preparado por el
equipo docente con ejercicios que organizan las actividades prácticas del alumno.
Para solicitar plaza/turno de prácticas de laboratorio/experimentales, el estudiante tendrá que acceder a la aplicación de
prácticas desde su escritorio. En estas imágenes puede ver desde dónde se puede realizar el acceso a dicha aplicación:
https://descargas.uned.es/publico/pdf/guias/ACCESO_PRACTICAS_GRADOS_2017.pdf
Si al acceder a ella no encuentra ninguna oferta, deberá ponerse en contacto con el centro asociado donde está matriculado.
8.EVALUACIÓN
Para aprobar la asignatura se ha de obtener al menos un 4 sobre 10 en el examen y aprobar la práctica obligatoria. Con
respecto a la práctica:
Deberá entregarse al tutor con anterioridad al examen para que éste la evalúe.
Si la práctica está aprobada para la convocatoria ordinaria, también se considera aprobada para la convocatoria
extraordinaria.
Si en una convocatoria no se tienen las dos notas (práctica y examen), la calificación de dicha convocatoria será
suspenso.
No se guardarán notas para el siguiente curso.
Para optar a matrícula en esta asignatura, al menos hay que realizar todas las actividades optativas.
9.BIBLIOGRAFÍA BÁSICA
ISBN(13): 9788499611396
Título: TEORÍA DE LOS LENGUAJES DE PROGRAMACIÓN (Primera Edición, Febrero 2014)
Autor/es: Ana María García Serrano ; Fernando López Ostenero ;
Editorial: Editorial Universitaria Ramón Areces
Comentarios y anexos:
10.BIBLIOGRAFÍA COMPLEMENTARIA
ISBN(13): 9780072381115
Título: PROGRAMMING LANGUAGES: PRINCIPLES AND PARADIGMS (1st. ed.)
Autor/es: Tucker, Allen B., ;
Editorial: : MCGRAW-HILL
ISBN(13): 9789701700464
Título: LENGUAJES DE PROGRAMACIÓN : (3ª ed.)
Autor/es: Zelkowitz, Marvin V. ;
Editorial: PRENTICE-HALL HISPANOAMERICANA
ISBN(13): 9789706862846
Título: LENGUAJES DE PROGRAMACIÓN (2ª)
Autor/es: Louden, Kenneth C. ;
Editorial: THOMSON PARANINFO,S.A.
Comentarios y anexos:
11.RECURSOS DE APOYO
La plataforma de e-Learning aLF proporcionará el aula virtual y el adecuado interfaz de interacción entre el estudiante y sus
profesores. La plataforma aLF permite impartir y recibir formación, gestionar y compartir documentos, crear y participar en
comunidades temáticas, así como realizar proyectos online. Se usarán las herramientas necesarias para que, tanto el equipo
docente como los estudiantes, encuentren la manera de compaginar el trabajo individual con el aprendizaje cooperativo.
Para las actividades complementarias se utilizarán recursos audiovisuales de la UNED (televisión, visualización etc), de
acuerdo a la planificación que el equipo docente publicará anualmente.
12.TUTORIZACIÓN
La tutorización de los estudiantes se llevará a cabo por los profesores de la asignatura, a través de la plataforma de e-
Learning aLF, por teléfono y por correo electrónico ([email protected]). Los teléfonos son 91 398 7993 y 7793 para Ana García
Serrano y Fernando López Ostenero respectivamente).
El horario de guardia del equipo docente será los jueves del segundo cuatrimestre de 16:00 a 20:00 (Ana García Serrano) y
Martes y Jueves de 16:00 a 18:00 (Fernando López Ostenero).
13.Práctica Obligatoria
Esta asignatura tiene una práctica de carácter obligatorio, existiendo sesiones presenciales de asistencia obligatoria
organizadas por los Centros Asociados.
La práctica, que se realizará en un lenguaje representativo de uno de los paradigmas de programación introducidos en la
asignatura (funcional o lógico), estará dividida en dos tareas principales:
• La primera de ellas, de carácter más práctico, consistirá en resolver un problema mediante un programa realizado en el
lenguaje de programación indicado, que se estudia en los primeros temas de la asignatura.
• Además de esta tarea de programación, el estudiante deberá identificar los conceptos teóricos de la asignatura dentro del
código obtenido y relacionarlos con sus equivalentes en otros lenguajes de programación representativos de los diferentes
paradigmas de programación que se ven en la asignatura.
• Habrá un cierto número de sesiones de control y orientación sobre las prácticas, de asistencia obligatoria, y que
se celebrarán en los Centros Asociados, bajo la supervisión y guía de los Tutores. Los Tutores propondrán una fecha límite
de entrega de la práctica.
• Para poder aprobar la asignatura, será requisito imprescindible entregar en tiempo y forma la práctica resuelta y
superar los mínimos requeridos para aprobar dicho trabajo.
• El anterior punto implica que todos los estudiantes deberán haber entregado la documentación antes de la
fecha establecida por su tutor, ya sea para la convocatoria de junio o la de septiembre.
• Los Tutores corregirán las prácticas, establecerán días de revisión e informarán al estudiante de las mismas a través del
Centro Asociado.