Versión imprimible Curso Académico
Procesadores de Lenguajes
Curso 2017/18
1. Datos Descriptivos de la Asignatura
ASIGNATURA: Procesadores de Lenguajes CÓDIGO: 139263121
- Centro: Escuela Superior de Ingeniería y Tecnología
- Titulación: Grado en Ingeniería Informática
- Plan de Estudios: 2010 (publicado en 21-03-2011)
- Rama de conocimiento: Ingeniería y Arquitectura
- Itinerario/Intensificación: Computación
- Departamento/s: - Área/s de conocimiento:
  • Lenguajes y Sistemas Informáticos
- Curso: 3
- Carácter: Obligatoria
- Duración: Cuatrimestral
- Créditos ECTS: 6.0
- Horario: http://www.ull.es/view/centros/etsii/Tercero_5/es
- Dirección web de la asignatura: http://www.campusvirtual.ull.es
- Idioma: Español e Inglés


2. Requisitos para cursar la asignatura
No existen requisitos para cursar la asignatura


3. Profesorado que imparte la asignatura
Profesor/a Coordinador/a: CASIANO RODRIGUEZ LEON
- Grupo: Todos
- Departamento: Ingeniería Informática y de Sistemas
- Área de conocimiento: Lenguajes y Sistemas Informáticos
- Lugar Tutoría: Despacho 96. 4ª Planta del Edificio de Física/Matemáticas. Campus Universitario Anchieta. C/Astrofísico Francisco Sánchez s/n 38271
- Horario Tutoría: 2º cuatrimestre: Lunes y Miércoles de 11:30 a 13. Martes de 10:30 a 12. Jueves de 9:30 a 11. Para evitar aglomeraciones y esperas innecesarias en las tutorias presenciales se recomienda solicitar cita previa. El horario de tutorías es orientativo y puede sufrir variaciones: Consulte el Aula Virtual para confirmar y encontrar los enlaces a las Tutorias virtuales on-line
- Teléfono (despacho/tutoría): 922 31 81 87
- Correo electrónico: crguezl@ull.es
- Dirección web docente: http://www.campusvirtual.ull.es


4. Contextualización de la asignatura en el plan de estudio
- Bloque formativo al que pertenece la asignatura: Itinerario 1: Computación
- Perfil profesional: Ingeniero Técnico en Informática


5. Competencias
Competencias Generales
[CG6] Capacidad para concebir y desarrollar sistemas o arquitecturas informáticas centralizadas o distribuidas integrando hardware, software y redes de acuerdo con los conocimientos adquiridos según lo establecido en el apartado 5 de este anexo.
[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.
Tecnología Específica / Itinerario: Computación
[C39] Capacidad para tener un conocimiento profundo de los principios fundamentales y modelos de la computación y saberlos aplicar para interpretar, seleccionar, valorar, modelar, y crear nuevos conceptos, teorías, usos y desarrollos tecnológicos relacionados con la Informática.
[C40] Capacidad para conocer los fundamentos teóricos de los lenguajes de programación y las técnicas de procesamiento léxico, sintáctico y semántico asociadas, y saber aplicarlas para la creación, diseño y procesamiento de lenguajes.
Transversales
[T1] Capacidad de actuar autónomamente.
[T2] Tener iniciativa y ser resolutivo.
[T6] Capacidad de comunicación efectiva en inglés.
[T7] Capacidad de comunicación efectiva (en expresión y comprensión) oral y escrita, con especial énfasis en la redacción de documentación técnica.
[T8] Capacidad de comunicación efectiva con el usuario en un lenguaje no técnico y de comprender sus necesidades.
[T9] Capacidad para argumentar y justificar lógicamente las decisiones tomadas y las opiniones.
[T10] Capacidad de integrarse rápidamente y trabajar eficientemente en equipos unidisciplinares y de colaborar en un entorno multidisciplinar.
[T12] Capacidad de relación interpersonal.
[T14] Poseer las habilidades de aprendizaje necesarias para emprender estudios posteriores o mejorar su formación con un cierto grado de autonomía.
[T16] Capacidad de planificación y organización del trabajo personal.
[T20] Capacidad de trabajar en situaciones de falta de información y/o con restricciones temporales y/o de recursos.
[T21] Capacidad para el razonamiento crítico, lógico y matemático.
[T22] Capacidad para resolver problemas dentro de su área de estudio.
[T23] Capacidad de abstracción: capacidad de crear y utilizar modelos que reflejen situaciones reales.


6. Contenidos de la asignatura
Contenidos teóricos y prácticos de la asignatura
- Profesor/a: Casiano Rodríguez León
- Temas (epígrafes):


Tema 1: Introducción. Casiano Rodríguez León
Tema 2: Análisis Sintáctico. Casiano Rodríguez León
Tema 3: Análisis Semántico y Generación de Código. Casiano Rodríguez León

Actividades a desarrollar en otro idioma
- Profesor: Casiano Rodríguez León
- Temas (epígrafes): En todos los temas la bibliografía, documentación de las herramientas y textos de ayuda están en Inglés.
- La mayoría de los vídeos que se usan como recurso están en inglés.
- Un porcentaje de los apuntes proveídos por el profesor están también en dicho idioma.
- Algunos ejercicios se hacen en inglés.


7. Metodología y volumen de trabajo del estudiante
Descripción
La mayor parte del trabajo se va en la adquisición de los fundamentos de los procesadores de lenguajes, las prácticas de desarrollo y la resolución de ejercicios.

Para cada tema se hace una exposición teórica que hace hincapié en los contenidos mas relevantes. Nos apoyamos en material multimedia y en demostraciones in situ. Tras cada clase el alumnado complementa la información aportada mediante la elaboración de su manual de estudio y ejercicios prácticos que el alumno tendrá que resolver de forma autónoma. Los ejercicios que presentan mayor dificultad son resueltos en las clases de problemas y prácticas.

Se realizarán micro-exámenes a lo largo del curso que incluyen cuestiones de desarrollo de conceptos y ejercicios prácticos. Antes de las pruebas de evaluación continua se invierte cierto tiempo en la preparación mediante cuestionarios similares a los del micro-examen.

Se llevarán a cabo micro-proyectos/prácticas de laboratorio en grupo cuya evaluación se hace mediante un taller y una presentación oral.

En grupos se desarrolla un proyecto consistente en el diseño e implementación de un lenguaje (en la mayor parte de los casos, un lenguaje de dominio específico) que se presenta en un taller/workshop al final del curso.

La mayoría de los micro-proyectos así como el proyecto suponen el desarrollo en equipo de una aplicación usando diferentes metodologías, técnicas y herramientas como control de versiones, gestión de incidencias, pruebas unitarias, desarrollo dirigido por pruebas, integración contínua, herramientas y servicios de despliegue, etc.

El seguimiento continuo del alumnado se realiza mediante el Aula Virtual de la asignatura y las herramientas de GitHub, las herramientas de Google así como otras herramientas en la nube (Véase la sección recursos).

Las actividades en inglés cubren los 0,5 créditos que debe tener como asignatura de itinerario.



Actividades formativas en créditos ECTS, su metodología de enseñanza-aprendizaje y su relación con las competencias que debe adquirir el estudiante
Actividades formativas Horas presenciales Horas de trabajo autónomo Total Horas Relación con competencias
Clases teóricas  22.00      22  [CG6], [CG9], [T1], [T2], [T6], [T7], [T8], [T9], [T10], [T12], [T14], [T16], [T20], [T21], [T22], [T23], [C39], [C40]
Clases prácticas (aula / sala de demostraciones / prácticas laboratorio)  22.00      22  [CG6], [CG9], [T1], [T2], [T6], [T7], [T8], [T9], [T10], [T12], [T14], [T16], [T20], [T21], [T22], [T23], [C39], [C40]
Realización de seminarios u otras actividades complementarias  3.00   6.00   9  [CG6], [CG9], [T1], [T2], [T6], [T7], [T8], [T9], [T10], [T12], [T14], [T16], [T20], [T21], [T22], [T23], [C39], [C40]
Realización de trabajos (individual/grupal)     15.00   15  [CG6], [CG9], [T1], [T2], [T6], [T7], [T8], [T9], [T10], [T12], [T14], [T16], [T20], [T21], [T22], [T23], [C39], [C40]
Estudio/preparación clases teóricas     10.00   10  [CG6], [CG9], [T1], [T2], [T6], [T7], [T8], [T9], [T10], [T12], [T14], [T16], [T20], [T21], [T22], [T23], [C39], [C40]
Preparación de exámenes     20.00   20  [CG6], [CG9], [T1], [T2], [T6], [T7], [T8], [T9], [T10], [T12], [T14], [T16], [T20], [T21], [T22], [T23], [C39], [C40]
Realización de exámenes  6.00      6  [CG6], [CG9], [T1], [T2], [T6], [T7], [T8], [T9], [T10], [T12], [T14], [T16], [T20], [T21], [T22], [T23], [C39], [C40]
Asistencia a tutorías  7.00      7  [CG6], [CG9], [T1], [T2], [T6], [T7], [T8], [T9], [T10], [T12], [T14], [T16], [T20], [T21], [T22], [T23], [C39], [C40]
Estudio autónomo individual o en grupo     39.00   39  [CG6], [CG9], [T1], [T2], [T6], [T7], [T8], [T9], [T10], [T12], [T14], [T16], [T20], [T21], [T22], [T23], [C39], [C40]
Total horas  60   90   150 
Total ECTS  6 


8. Bibliografía / Recursos
Bibliografía básica

- Rodríguez León, Casiano. Apuntes de la Asignatura Procesadores de Lenguajes. http://crguezl.github.io/pl-html/javascriptexamples.html

- Aho, A. V.; Lam, M.; Sethi, R.; Ullman, J. D. Compiladores: Principios, Técnicas y Herramientas. Addison-Wesley. 

- Rodríguez León, Casiano. Apuntes en GitBook. https://casianorodriguezleon.gitbooks.io

- Rodríguez León, Casiano. Análisis Léxico y Sintáctico. http://nereida.deioc.ull.es/~pl/perlexamples/ y https://campusvirtual.ull.es/ocw/course/view.php?id=45.


Bibliografía complementaria

- Pointer, R Packrattle: parser-combinator library (using GLL) for javascript. GitHub

Marijn Haverbeke. Eloquent JavaScript. A Modern Introduction to Programming. http://eloquentjavascript.net/

David Majda. PegJS. Parser Generator for JavaScript. http://pegjs.majda.cz/

Zach Carter. Jison. http://zaach.github.io/jison/ .

Ecma 6: Libros y Recursos: https://github.com/ericdouglas/ES6-Learning

 - Nathan Whitehead. NathansUniversity. PL101. Create your own language. http://nathansuniversity.com/

Otros recursos
* Campus Virtual: www.campusvirtual.ull.es
* GitHub: https://github.com
* GitHub classroom: https://classroom.github.com
* GitBook: https://casianorodriguezleon.gitbooks.io
* Servicio iaas de la ULL: https://iaas.ull.es
* Travis: travis.ci.org
* Heroku: https://www.heroku.com/
* Cloud 9 IDE: https://c9.io/
* Trello: https://trello.com/




9. Sistema de evaluación y calificación
Descripción
La Evaluación de la asignatura se rige por el Reglamento de Evaluación y Calificación de la Universidad de La Laguna (BOC de 19 de enero de 2016), o el que la Universidad tenga vigente, además de por lo establecido en la Memoria de Verificación inicial o posteriores modificaciones.

* Para participar en la evaluación continua, es obligatorio hacer uso de los recursos proveídos (apuntes, vídeos, repositorios, foros, wikis, etc.) y realizar los ejercicios y actividades señaladas como obligatorios. Se realizará control de asistencia a las clases.

* Se realizarán micro-exámenes a lo largo del curso que incluyen cuestiones de desarrollo de conceptos y ejercicios prácticos. Una parte de estos ejercicios está destinada a autentificar los conocimientos que se han adquirido durante la elaboración de los proyectos mencionados en los otros apartados. Antes de las pruebas de evaluación continua se invierte cierto tiempo en la preparación mediante cuestionarios. Los alumnos deberán superar los micro-exámenes para aprobar la asignatura con una nota mínima de 5 (sobre 10) en cada uno de ellos.

* Estos exámenes comprenden un grupo de preguntas en inglés con ls que se valora la capacidad lingüística en este idioma.

* Se llevarán a cabo micro-proyectos/prácticas individuales y en grupo cuya evaluación se hará mediante un taller/workshop. El taller es entendido aquí como los define Moodle, como una forma de microcongreso: los alumnos mantienen sus trabajos a un repositorio (GitHub, Bitbucket, etc.); una vez publicados se pasa a una fase de revisión y una presentación oral. Los alumnos/revisores asignados evalúan - siguiendo una plantilla/rúbrica elaborada por el profesor - los trabajos y las presentaciones que les han sido asignadas. Por último el profesor establece las calificaciones definitivas. Los alumnos deberán superar los micro-proyectos para aprobar la asignatura con una nota mínima de 5.

* En grupos se desarrolla un proyecto colaborativo de mayor duración consistente en el diseño e implementación de un lenguaje (en la mayor parte de los casos, un lenguaje de dominio específico, Domain Specific Language o DSL) que se presenta en un taller al final del curso. El proyecto se comienza tan pronto como el alumno tiene los conocimientos mínimos para diseñarlo e implantarlo. Es necesario superar el proyecto para aprobar la asignatura con una nota mínima de 5.

* Superadas las partes (micro-exámenes, prácticas individuales y en pareja y proyecto colaborativo), la nota es la media ponderada de las partes (micro-exámenes, micro-proyectos, proyecto) de acuerdo a las ponderaciones establecidas en la tabla "Estrategia Evaluativa".

* Si un alumno no supera una de las partes deberá ir al examen de la primera convocatoria en el que se examinará de las partes no superadas. Puede también presentarse a las partes superadas si desea subir nota.

* Los alumnos que no participen en la evaluación continua se evalúan a través de los exámenes oficiales y convocatorias fijados por la Universidad de La Laguna.
Estos exámenes se dividen en una parte teórica y una parte práctica. Es necesario aprobar las dos partes para superar la asignatura. La nota final es la media ponderada de ambas.






Estrategia Evaluativa
TIPO DE PRUEBA COMPETENCIAS CRITERIOS PONDERACIÓN
Pruebas objetivas  [CG6], [CG9], [T1], [T2], [T6], [T7], [T8], [T9], [T10], [T12], [T14], [T16], [T20], [T21], [T22], [T23], [C39], [C40]    Adecuación a lo solicitado * Concreción en la redacción
* Nivel de conocimientos adquiridos
* Nivel de aplicabilidad 
 50% 
Trabajos y proyectos  [CG6], [CG9], [T1], [T2], [T6], [T7], [T8], [T9], [T10], [T12], [T14], [T16], [T20], [T21], [T22], [T23], [C39], [C40]    Adecuación a lo solicitado * Concreción en la redacción
* Nivel de conocimientos adquiridos
* Nivel de aplicabilidad 
 25% 
Informes memorias de prácticas  [CG6], [CG9], [T1], [T2], [T6], [T7], [T8], [T9], [T10], [T12], [T14], [T16], [T20], [T21], [T22], [T23], [C39], [C40]    Adecuación a lo solicitado * Concreción en la redacción
* Nivel de conocimientos adquiridos
* Nivel de aplicabilidad 
 10% 
Valoración de las actividades prácticas en el laboratorio  [CG6], [CG9], [T1], [T2], [T6], [T7], [T8], [T9], [T10], [T12], [T14], [T16], [T20], [T21], [T22], [T23], [C39], [C40]    Adecuación a lo solicitado * Concreción en la redacción
* Nivel de conocimientos adquiridos
* Nivel de aplicabilidad 
 15% 


10. Resultados de Aprendizaje
 * Diseñar y procesar lenguajes de Dominio Específico y de Propósito General utilizando las tecnologías de procesamiento de lenguajes: análisis léxico, análisis sintáctico, análisis semántico y generación e interpretación de código.
* En el contexto de un grupo de trabajo, utilizar metodologías ágiles para los proyectos y hacer uso de las herramientas adecuadas: gestión del proyecto, control de versiones, pruebas, integración y despliegue en sistemas locales o en la nube.
* En el contexto de un grupo de trabajo, recopilar y generar información técnica sobre los aspectos clave del desarrollo de un traductor para realizar una síntesis por escrito y una presentación oral del proyecto.

 


11. Cronograma / calendario de la asignatura
Descripción
 La estructura del curso es uniforme: En la mayoría de las semanas se dispone en 4 horas de trabajo presencial que se corresponden con 6 horas de trabajo autónomo del alumno. Aproximadamente cada dos semanas se entrega un trabajo/práctica de programación que se evalúa mediante un taller Moodle. Se realiza una presentación/defensa del mismo. Los alumnos participan en el proceso de evaluación, haciendo en una fase previa de revisores de los trabajos de sus compañeros. Parte del material de trabajo para la virtualización se puede encontrar en la red (véase por ejemplo http://crguezl.github.io/pl-html/javascriptexamples.html y http://nathansuniversity.com/).


* La distribución de los temas por semana es orientativo, puede sufrir cambios según las necesidades de organización docente.


 


Segundo Cuatrimestre
SEMANA Temas Actividades de
enseñanza aprendizaje
Horas
de trabajo
presencial
Horas
de trabajo
autónomo
Total
Semana 1:  1   Estudio y explicación de clases teóricas. Problemas. Uso de herramientas colaborativas.
Consultas. Foros. Cuestionario on-line.
Diseño y definición de proyectos.
 
 4.00   4.00   8 
Semana 2:  1   Estudio y explicación de clases teóricas. Problemas. Uso de herramientas colaborativas.
Consultas. Foros. Cuestionario on-line.
Diseño y definición de proyectos.
 
 3.00   5.00   8 
Semana 3:  1   Estudio y explicación de clases teóricas. Práctica entregable. Taller. Uso de herramientas colaborativas    4.00   6.00   10 
Semana 4:  1   Estudio y explicación de clases teóricas. Wiki. Foros. Uso de herramientas colaborativas ull.edu   4.00   6.00   10 
Semana 5:  1   Estudio y explicación de clases teóricas. Práctica. Taller. Uso de herramientas colaborativas ull.edu   4.00   8.00   12 
Semana 6:  1   Estudio y explicación de clases teóricas. Repasar. Micro-exámen. Uso de herramientas colaborativas ull.edu   4.00   7.50   11.5 
Semana 7:  2   Estudio y explicación de clases teóricas. Uso de herramientas colaborativas ull.edu   4.00   6.50   10.5 
Semana 8:  2   Estudio y explicación de clases teóricas. Uso de herramientas colaborativas ull.edu. Cuestionarios.   3.00   3.00   6 
Semana 9:  2, 3   Estudio y explicación de clases teóricas. Proyecto. Uso de herramientas colaborativas ull.edu   4.00   8.00   12 
Semana 10:  2, 3   Estudio y explicación de clases teóricas. Uso de herramientas colaborativas ull.edu   4.00   8.00   12 
Semana 11:  2,3   Estudio y explicación de clases teóricas. Repasar. Micro-examen sobre lo visto    4.00   6.00   10 
Semana 12:  2,3   Estudio y explicación de clases teóricas. Uso de herramientas colaborativas ull.edu. Cuestionarios. Foros.   4.00   4.00   8 
Semana 13:  2,3   Estudio y explicación de clases teóricas. Uso de herramientas colaborativas ull.edu. Foros.   4.00   6.00   10 
Semana 14:  2,3   Estudio y explicación de clases teóricas. Taller. Uso de herramientas colaborativas ull.edu   4.00   8.00   12 
Semana 15:  Repaso   Estudio y explicación de clases teóricas. Repasar. Microexamen. Entrega y presentación del proyecto. Taller.   3.00   1.00   4 
Semanas 16 a 18:  Evaluación   Evaluación y trabajo autónomo del alumno para la preparación de la evaluación.   3.00   3.00   6 
Total horas 60 90 150

Fecha de última modificación: 27-07-2017
Fecha de aprobación: 27-07-2017