Sentido de la materia en el plan de estudios |
Bloque formativo al que pertenece la materia
Programación
Papel de la asignatura dentro del Bloque formativo y del Plan de Estudios
La asignatura presenta al estudiante los aspectos formales de la programación, en particular los procesos de análisis léxico y sintáctico comunes a todos los lenguajes de programación. Además analiza los modelos de máquinas abstractas que permiten la formalización de cualquier algoritmo, desde los autómatas finitos, que son herramientas muy útiles para resolver ciertos problemas de análisis o sistemas de eventos discretos, hasta la máquina de Turing, equivalente a cualquier otro sistema computacional y capaz de resolver cualquier función recursiva. El conocimiento de estos aspectos permite al estudiante conocer la esencia de los lenguajes de programación y la base de la construcción de compiladores e intérpretes. También es básico para comprender conceptos tan importantes como recursividad, computabilidad o complejidad computacional.
Perfil profesional
Es una asignatura sobre los fundamentos de la programación y por tanto proporciona al estudiante una visión científica y formalizada de los computadores y de los lenguajes. Esta visión resulta útil para aplicarla al diseño de soluciones de problemas o al análisis de la idoneidad o complejidad de las soluciones propuestas. También ofrece competencias específicas de Computación.
|
|
|
Recomendaciones previas |
Es recomendable haber cursado ya las asignaturas:
- Programación I
- Programación II
- Estructuras de datos y algoritmos I
y se aconseja cursar a la vez que la asignatura Estructuras de datos y algoritmos II.
|
|
|
Objetivos de la asignatura |
- Conocer los aspectos formales de los lenguajes de programación
- Conocer los modelos de autómatas y máquinas
- Formalizar algoritmos usando dichos modelos
- Representar lenguajes formales usando gramáticas y expresiones regulares
- Relacionar y aplicar la teoría de autómatas a los procesos de análisis léxico, sintáctico y semántico presentes en compiladores, intérpretes, buscadores, editores, analizadores, generadores automáticos de código, etc.
- Conocer herramientas estándar para la construcción automática de analizadores léxicos y sintácticos y la representación de autómatas y máquinas
- Comprender los conceptos de computabilidad y complejidad computacional
|
|
|
Contenidos |
Teoría
- TEMA 1: Fundamentos teóricos de la computación
- TEMA 2: Lenguajes regulares y autómatas finitos. Análisis léxico
- TEMA 3: Lenguajes independientes del contexto: Análisis sintáctico
- TEMA 4: Lenguajes recursivos, funciones recursivas y máquinas de Turing
- TEMA 5: Introducción a la computabilidad y complejidad
Prácticas
- Expresiones regulares: grep, sed, awk
- Autómatas y gramáticas: JFLAP
- Análisis léxico y sintáctico: lex - yacc
- Máquinas de Turing: Visual Turing
|
|
|
Competencias a adquirir |
Básicas/Generales
- CG3: Capacidad para comprender y dominar los conceptos básicos de matemática discreta, lógica, algorítmica y complejidad computacional, y su aplicación para la resolución de problemas propios de la ingeniería.
- CG5: Conocimiento de la estructura, organización, funcionamiento e interconexión de los sistemas informáticos, los fundamentos de su programación, y su aplicación para la resolución de problemas propios de la ingeniería.
Específicas
- CE6: Conocimiento y aplicación de los procedimientos algorítmicos básicos de las tecnologías informáticas para diseñar soluciones a problemas, analizando la idoneidad y complejidad de los algoritmos propuestos.
- CE8: Capacidad para analizar, diseñar, construir y mantener aplicaciones de forma robusta, segura y eficiente, eligiendo el paradigma y los lenguajes de programación más adecuados.
- CECO2: 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.
- CECO3: Capacidad para evaluar la complejidad computacional de un problema, conocer estrategias algorítmicas que puedan conducir a su resolución y recomendar, desarrollar e implementar aquella que garantice el mejor rendimiento de acuerdo con los requisitos establecidos.
- CECO5: Capacidad para adquirir, obtener, formalizar y representar el conocimiento humano en una forma computable para la resolución de problemas mediante un sistema informático en cualquier ámbito de aplicación, particularmente los relacionados con aspectos de computación, percepción y actuación en ambientes o entornos inteligentes.
Transversales
- CT3: Capacidad de análisis y síntesis
- CT4: Capacidad de organizar y planificar
- CT5: Comunicación oral y escrita en la lengua propia
- CT9: Resolución de problemas
- CT10: Toma de decisiones
- CT12: Trabajo en equipo
- CT16: Capacidad de aplicar los conocimientos en la práctica
- CT17: Habilidades de investigación
- CT18: Capacidad de aprender
- CT21: Habilidad para trabajar de forma autónoma y cumplir plazos
|
|
|
Metodologías |
Las actividades formativas que se proponen para esta asignatura son las siguientes:
Actividades presenciales:
- Lección magistral: teoría y resolución de problemas
- Realización de seminarios de problemas y prácticas guiadas en aula de informática
- Sesiones de tutorías, seguimiento y evaluación, individuales o en grupo
- Defensa de prácticas y pruebas de evaluación
Actividades no presenciales:
- Estudio autónomo
- Revisión bibliográfica y búsqueda de información
- Realización de problemas y de prácticas libres
- Realización de informes de prácticas
En las clases magistrales se presentará el contenido teórico y el profesor realizará problemas tipo y ejemplos de aplicación. En los seminarios de problemas y las prácticas guiadas la participación del estudiante será más activa y estará dirigida por los profesores. En las tutorías se resolverán dudas y el trabajo personal permitirá afianzar las competencias.
La actividad presencial supone el 40% de los créditos (60 horas), de las cuales la mitad se desarrolla en grupo grande (80-100 estudiantes) y la otra mitad en grupos más pequeños (sobre 30 estudiantes).
|
|
|
Previsión de Técnicas (Estrategias) Docentes |
Nombre
|
Horas presenciales
|
Horas no presenciales dirigidas por el profesor
|
Horas de trabajo autónomo del estudiante
|
Horas totales
|
Clases magistrales
|
28
|
0
|
28
|
56
|
Seminarios
|
8
|
0
|
12
|
20
|
Prácticas en aula
|
0
|
0
|
0
|
0
|
Prácticas en el laboratorio
|
0
|
0
|
0
|
0
|
Prácticas en aula de informática
|
20
|
0
|
20
|
40
|
Prácticas de campo
|
0
|
0
|
0
|
0
|
Prácticas de visualización
|
0
|
0
|
0
|
0
|
Trabajo personal de contenidos presenciales y recursos on line
|
0
|
0
|
0
|
0
|
Exposiciones y debates
|
0
|
0
|
0
|
0
|
Tutorías
|
1
|
0
|
0
|
1
|
Actividades de seguimiento on line
|
0
|
0
|
5
|
5
|
Preparación de trabajos
|
0
|
0
|
15
|
15
|
Otras actividades
|
0
|
0
|
0
|
0
|
Exámenes
|
3
|
0
|
10
|
13
|
Prácticas: Realización del TFM
|
0
|
0
|
0
|
0
|
Documentación TFM
|
0
|
0
|
0
|
0
|
TOTAL
|
60
|
0
|
90
|
150
|
|
|
|
|
|
Organización docente semanal |
Semana
|
Clases magistrales
|
Seminarios
|
Prácticas en aula de informática
|
Tutorías
|
Actividades de seguimiento on line
|
Preparación de trabajos
|
Exámenes
|
1
|
2
|
0
|
0
|
0
|
0
|
0
|
0
|
2
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
3
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
4
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
5
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
6
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
7
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
8
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
9
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
10
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
11
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
12
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
13
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
14
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
15
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
16
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
17
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
18
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
19
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
|
|
|
|
|
Evaluación |
Consideraciones Generales
De forma general la calificación final se calculará a partir de la media ponderada de las notas conseguidas en los apartados siguientes:
- Examen de teoría y de problemas: 70%
- Entrega y/o defensa de prácticas o trabajos: 15%
- Ejercicio de evaluación continua: 15%
Criterios de evaluación
El examen tendrá dos partes y se exigirá en cada una de ellas una calificación mínima de 3,5. La calificación global del examen debe alcanzar un mínimo de 4 para hacer media con la evaluación continua.
Las prácticas se evaluarán mediante la entrega de informes de las tareas o actividades propuestas en las correspondientes sesiones. En caso de errores importantes o de duda sobre la autoría se podrá citar al estudiante para que realice la defensa oral del trabajo entregado.
La evaluación continua tendrá en cuenta la participación activa en clase y la entrega de problemas propuestos a lo largo del curso. También incluirá la realización de un ejercicio, similar al examen, de la primera parte de la asignatura.
Al principio de curso se realizará una descripción detallada de estos criterios y se harán públicos a través de la web de la asignatura en la plataforma Studium
Instrumentos de evaluación
- Examen teórico-práctico, que podrá incluir:
- Preguntas de tipo test
- Preguntas de respuesta corta para razonar y relacionar conceptos
- Resolución de problemas y ejercicios prácticos
- Hojas de enunciados: incluirán ejercicios propuestos para que el estudiante los realice en las horas de trabajo no presencial. Podrán ser recogidos a lo largo del curso para su corrección y evaluación.
- Informes de prácticas: las prácticas se agruparán por temas y se establecerán dos o tres fechas límite a lo largo del curso para realizar las entregas a través de la plataforma Studium.
- Preguntas y debates: permitirá la evaluación de la participación y de las destrezas adquiridas durante los seminarios y las sesiones de prácticas guiadas
|
|
|
Recomendaciones |
Recomendaciones para la evaluación
Se recomienda realizar un estudio continuado de la asignatura, puesto que la complejidad de los contenidos es creciente y cada nuevo tema incluye y amplía los conceptos y técnicas de los anteriores.
Se destaca la gran importancia de la realización del ejercicio tipo examen de la primera parte: a pesar de que el peso numérico en la nota final es pequeño resulta muy valioso para que el estudiante sea consciente de las dificultades que la materia entraña, de los errores que ha cometido y de los criterios con los que va a ser evaluado en el examen final.
Recomendaciones para la recuperación
Para los estudiantes que no hayan superado la asignatura en la primera convocatoria se habilitará un nuevo plazo de entrega de las prácticas y se realizará un nuevo examen. La parte de evaluación continua no podrá recuperarse pero las demás deberán superarse con una calificación mínima de 3,5 en cada una de ellas.
|
|
|
Datos de interés |
Descarga de herramientas de prácticas:
|
|
|
|
Otros datos |
Créditos: 6.0 (3.0 T + 3.0 P)
,
Segundo cuatrimestre
,
Obligatoria
,
Número de grupos de teoría: 2
,
Número de grupos de práctica: 6
|
Grado en Ingeniería Informática
|
Segundo curso
|
|
|
|
|
|
| |