Responsable: | (-) |
Otros: | (-) |
Créditos | Dept. | Tipo | Requisitos |
---|---|---|---|
7.5 (6.0 ECTS) | CS |
|
P1
- Prerequisito para la EI , ETIG , ETIS |
Responsable: | (-) |
Otros: | (-) |
Profundizar en el aprendizaje de la programación estructurada. Introducir técnicas para diseñar programas de tamaño medio. Proporcionar al estudiante una mayor experiencia en el campo de la programación mediante la realización de prácticas. Ampliar el dominio de la recursividad como herramienta de construcción de programas.
Horas estimadas de:
T | P | L | Alt | L Ext. | Est | O. Ext. |
Teoria | Problemas | Laboratorio | Otras actividades | Laboratorio externo | Estudio | Otras horas fuera del horario fijado |
|
T | P | L | Alt | L Ext. | Est | O. Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
6,0 | 0 | 9,0 | 0 | 6,0 | 3,0 | 0 | 24,0 | |||
Se presentan las técnicas para descomponer programas en módulos satisfaciendo los requisitos de calidad introducidos anteriormente.
Entre otros temas, se incluyen: - Descomposición de problemas complejos. - Abstracción funcional y de datos. - Refinamientos sucesivos. - Diseño ascendente/descendente. Los conceptos y técnicas se ilustran con casos de estudio. Al mismo tiempo se repasan los conocimientos algorítmicos vistos en la asignatura Programación 1.
|
|
T | P | L | Alt | L Ext. | Est | O. Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 21,0 | 0 | 42,0 | 0 | 0 | 63,0 | |||
Se trata de un trabajo individual donde el alumno debe resolver un problema de complejidad media. Se deberán aplicar tanto los conocimientos de diseño modular y orientado a objetos, vistos en los contenidos 1 y 2, como los conocimientos de Programación a pequeña escala estudiados en el curso anterior.
Los temas de ayuda al desarrollo del proyecto que se tratarán en las sesiones de laboratorio serán los siguientes: 1. Codificación en C++. 2. Bibliotecas (libraries). 3. Depuración y prueba de programas ("debugging" y "testing"). 4. Entrada/salida con ficheros de texto.
|
|
T | P | L | Alt | L Ext. | Est | O. Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
4,0 | 0 | 0 | 0 | 0 | 4,0 | 0 | 8,0 | |||
Inmersión/generalización de una función. Cómo y cuándo generalizar funciones en el diseño recursivo. Relación entre los nuevos parámetros de las funciones recursivas generalizadas y las variables locales en las iteraciones.
|
|
T | P | L | Alt | L Ext. | Est | O. Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
4,0 | 0 | 0 | 0 | 0 | 4,0 | 0 | 8,0 | |||
El problema de repetir cálculos en un programa. Cómo evitar repetir cálculos. Recursividad: nuevos parámetros y/o resultados (inmersiones por razones de eficiencia). Iteración: nuevas variables locales.
|
|
T | P | L | Alt | L Ext. | Est | O. Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
4,0 | 0 | 0 | 0 | 0 | 4,0 | 0 | 8,0 | |||
Introducción al uso de tipos recursivos. Definiciones recursivas de tipos. Implementación de los tipos abstractos de datos mediante tipos recursivos. Implementación de las operaciones básicas.
|
|
T | P | L | Alt | L Ext. | Est | O. Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
4,0 | 0 | 0 | 0 | 0 | 4,0 | 0 | 8,0 | |||
Algoritmos de búsqueda exhaustiva. Algoritmos de cálculo de objetos combinatorios.
|
Total por tipo | T | P | L | Alt | L Ext. | Est | O. Ext. | Total |
28,0 | 0 | 42,0 | 0 | 56,0 | 22,0 | 0 | 148,0 | |
Horas adicionales dedicadas a la evaluación | 6,0 | |||||||
Total horas de trabajo para el estudiante | 154,0 |
En clase de teoría el profesor presenta los nuevos conceptos, argumentando su utilidad y mostrando mediante ejemplos cómo se utilizan.
En clase de laboratorio hay una primera parte basada en la resolución de ejercicios pequeños por parte del alumno.
En la segunda parte se publica un enunciado para un programa algo más grande que el alumno resolverá con la supervisión personalizada del profesor. Este proceso incluirá entregas intermedias de partes de la solución, con el fin de orientar al alumno en la dirección correcta.
La nota final de la asignatura se calcula así:
65% práctica + 35% examen final
La nota de la práctica se obtiene a partir de dos notas, procedentes de la evaluación de:
- El desarrollo de la Práctica, reflejado en el Informe de Resolución y en la Codificación en C++ de la Práctica, que conjuntamente valdrán el 55%.
- Un Control sobre los contenidos de la Práctica, que valdrá el otro 45%. Este control se convocará como si fuera un examen parcial.
Cualquier intento de fraude realizado durante el curso comportará la aplicación de la normativa académica general de la UPC i el inicio de un proceso disciplinario.
Conocimientos y habilidades de programación básica y del lenguaje de programación C++.