Código de la asignatura | 1914 |
---|---|
Nº Créditos ECTS | 6 |
Tipo | Formación básica |
Duración | Semestral |
Idiomas | Castellano |
Profesor(es) | |
Año académico | 2024-25 |
En la asignatura de formación básica denominada “Fundamentos de Programación” se dan las bases necesarias para conocer las técnicas de programación modernas a través de lenguajes de alto nivel estructurados, orientación a objetos y desarrollo de aplicaciones orientadas a eventos. Además, se explicarán los diferentes enfoques y herramientas para afrontar la realización de programas informáticos.
La asignatura consta de cuatro partes diferenciadas. En la primera parte de la asignatura se exponen los conceptos de manera teórica. A través de pseudocódigo, se explicarán las estructuras básicas y reglas fundamentales para la realización de programas.
En la segunda parte de la asignatura se realizará la aplicación de los conceptos adquiridos en la primera parte mediante la utilización de un lenguaje de programación estructurada.
En la tercera parte de la asignatura se realizará una introducción a la metodología de programación orientada a objetos, y se estudiará de forma teórica y práctica los fundamentos del lenguaje Java para este paradigma de programación.
En la parte final de la asignatura se imparten nociones básicas de la programación orientada a eventos, y de la generación de interfaces gráficas de usuario en aplicaciones informáticas.
Como resultado del estudio de la asignatura se espera que el alumno sea capaz de realizar la implementación y diseño de programas informáticos independientemente de la plataforma, tipo de lenguaje o paradigma de programación que se vaya a utilizar, de manera clara y sencilla.
Durante el desarrollo de la asignatura se realizarán actividades prácticas que permitan adquirir las competencias y resultados de aprendizaje necesarios para la superación de la asignatura.
Las actividades prácticas de la asignatura se coordinarán desde el Aula de Laboratorio de la misma.
Dedicación requerida
La dedicación requerida para esta asignatura de 6 créditos ECTS es de 150 horas, que se encuentran distribuidas de la siguiente manera:
Manual de la asignatura:
(2020) "Fundamentos de la Programación", Ed: CEF.
(2020) "Metodología de la Programación", Ed: CEF.
Además, se recomienda la siguiente bibliografía de consulta voluntaria:
SEMANAS (*) | UNIDADES DIDÁCTICAS | ACTIVIDADES DIDÁCTICAS |
---|---|---|
Semana 1 | Unidad 1. Concepto de programa informático 1.1. Introducción a las computadoras 1.2. La programación 1.3. Concepto de programa 1.4. El pseudocódigo 1.4.1. Reglas generales del pseudocódigo 1.5. Estructuras de control 1.5.1. Secuencia 1.5.2. Condiciones 1.6. Estructuras de control: repeticiones 1.6.1. Estructura de tipo Mientras 1.6.2. Estructura de tipo Hasta 1.6.3. Estructura de tipo Para |
|
Semana 2 | Unidad 2. Algoritmos y sistemas de representación de un programa 2.1. Algoritmo 2.1.1. Características básicas de un algoritmo 2.1.2. Algoritmo de Euclides 2.1.3. Algoritmos computables y no computables 2.2. Diagramas de flujo y ordinogramas 2.2.1. El diagrama de flujo 2.2.2. El ordinograma 2.3. La programación estructurada 2.3.1. Diagramas y programa propio 2.3.2. Diagramas estructurados o diagramas privilegiados 2.3.3. Programa estructurado 2.3.4. Teoremas de la programación estructurada 2.4. Diagramas estructurados arborescentes 2.4.1. Diagrama arborescente del máximo común divisor 2.5. Diagramas estructurados de la metodología Nassi-Schneiderman o de Chapin 2.5.1. Diagrama N-S o de Chapin del máximo común divisor 2.5.2. Ventajas de los diagramas estructurados con respecto a los ordinogramas clásicos |
|
Semana 3 | Unidad 3. Tratamiento informático de un problema 3.1. Introducción 3.2. Definición de los requisitos del problema 3.3. Análisis 3.4. Diseño 3.4.1. Diseño general 3.4.2. Diseño detallado 3.5. Codificación 3.6. Pruebas 3.7. Mantenimiento 3.8. La programación 3.9. Paradigmas de programación 3.10. Paradigma imperativo 3.11. Los lenguajes de programación 3.12. El lenguaje imperativo C++ |
|
Semanas 4 y 5 | Unidad 4. Expresiones y Sentencias Básicas 4.1. Introducción 4.2. Constantes 4.3. Variables 4.4. Tipos básicos de datos 4.5. Operadores 4.6. Sentencias básicas 4.7. Sentencias de control de flujo 4.7.1. Estructura secuencial 4.7.2. Sentencias condicionales 4.7.3. Sentencias repetitivas 4.7.4. Sentencias de salto 4.8. Entrada/salida básica |
|
Semana 6 | Unidad 5. Funciones 5.1. Introducción 5.2. Funciones en C++ 5.2.1. Declaración de funciones 5.2.2. Definición de funciones 5.2.3. Funciones de librería 5.2.4. Funciones en línea 5.3. Parámetros 5.3.1. Parámetros formales 5.3.2. Parámetros actuales 5.3.3. Paso de parámetros por valor 5.3.4. Paso de parámetros por referencia 5.3.5. Paso por dirección 5.3.6. Parámetros por omisión 5.4. Alcance y visibilidad 5.4.1. Definición de alcance 5.4.2. Variables locales 5.4.3. Variables globales 5.4.4. Variables estáticas 5.4.5. Resumen del modo de almacenamiento de variables 5.5. Recursividad 5.6. Sobrecarga de funciones |
|
Semanas 7 y 8 | Unidad 6. Tipos avanzados de datos y librerías 6.1. Introducción 6.2. Vectores y Matrices 6.3. Punteros 6.4. Cadenas 6.5. Estructuras y uniones 6.6. Definición de tipos 6.7. Tipos enumerados 6.8. Librerías 6.8.1. Cadenas de caracteres 6.8.2. Librerías de entrada/salida 6.8.3. Librería cstdlib 6.8.4. Librería cmath 6.8.5. Librería ctype 6.8.6. Errores 6.8.7. Librerías limits.h y float.h 6.8.8. Librería stl |
|
Semana 9 | Unidad 7. Metodología de desarrollo de programas 7.1. Concepto de metodología de programación 7.2. La metodología de desarrollo de programas por diseño descendente ("top-down") 7.2.1. Diseño descendente ("top-down"): descomposición de tareas o subtareas 7.2.2. Descripción 7.3. Principios y propiedades generales de un diseño descendente 7.3.1. Modularidad de un programa 7.3.2. Acoplamiento entre módulos 7.3.3. Número de aspectos a considerar en cada momento 7.3.4. Cohesión interna de un módulo 7.3.5. Complejidad de un módulo 7.3.6. Otros principios 7.4. Características básicas de "buen estilo" en programación 7.4.1. Indentación 7.4.2. Nombres de identificadores 7.4.3. Comentarios 7.5. La recursión 7.5.1. Concepto de recursión y función recursiva 7.5.2. Ejemplo de función factorial: implementación iterativa y recursiva 7.5.3. Recursividad bien construida. Funciones parciales y totales 7.5.4. Tipos de recursión: recursión final y no final 7.5.5. Cuándo no utilizar la recursión |
|
Semana 10 | Unidad 8. La programación orientada a objetos 8.1. El modelo orientado a objetos 8.2. Conceptos fundamentales de la programación orientada a objetos 8.3. La abstracción de datos 8.4. Los objetos 8.4.1. Características que definen un objeto 8.4.2. Representación gráfica de un objeto 8.5. Las clases 8.5.1. Estructura de una clase 8.5.2. Representación gráfica de una clase 8.6. Las relaciones 8.6.1. Relación de asociación 8.6.2. Relación de agregación 8.6.3. Relación de generalización/especialización 8.7. Los mensajes 8.8. El poliformismo 8.9. La herencia 8.10. Estructura de una aplicación orientada a objetos 8.11. La reutilización y la extensibilidad 8.12. Metodología básica de desarrollo orientado a objetos 8.12.1. Captura de requisitos 8.12.2. Análisis 8.12.3. Diseño 8.12.4. Implementación 8.12.5. Pruebas |
|
Semanas 11 y 12 | Unidad 9. Lenguajes orientados a objetos, utilidades E/S y genéricos 9.1. Introducción a Java 9.2. El entorno de desarrollo Java 9.3. Mi primer programa 9.4. Sintaxis básica de Java 9.5. Expresiones y operadores 9.6. Sentencias y bloques 9.7. Estructuras de control de flujo 9.8. Conversión de tipos (casting) 9.9. Programación orientada a objetos con Java 9.10. Utilidades de entrada/salida 9.11. Genéricos en Java |
|
Semanas 13, 14 y 15 | Unidad 10. Programación orientada a eventos e interfaces gráficas de usuario 10.1. Modelos de programación 10.2. La programación dirigida por el control 10.3. La programación dirigida por los datos 10.4. La programación dirigida por los eventos 10.5. Modelo manejador de eventos por componente en Java 10.6. Modelo de delegación 10.7. Eventos de Swing 10.8. Método para el tratamiento de eventos en el modelo de delegación 10.9. Introducción a AWT 10.10. Implementación de interfaces gráficas 10.11. Componentes básicos de AWT 10.12. Contenedores y distribución de componentes visuales 10.13. Eventos 10.14. Swing |
|
Resto de semanas hasta finalización del semestre | Estudio y preparación para el examen final, celebración del examen final y cierre de actas. |
Durante el estudio de esta asignatura, el proceso de evaluación del aprendizaje es continuo y contempla la realización de:
- Una evaluación continua a lo largo del curso a través de acciones didácticas que supone el 40% de la nota final. Incluye la realización de los diferentes tipos de actividades de evaluación, de aprendizaje y controles.
- Un examen final presencial que supone el 60% de la nota final. Está dirigido a la valoración de las competencias y conocimientos adquiridos por el estudiante. El examen se evaluará de 0 a 10, tendrá una duración estimada de 90 minutos y será de tipo mixto, con una parte tipo test con 10 preguntas de opción múltiple (4 puntos) y una parte de desarrollo teórico-práctica con dos preguntas (6 puntos). Dentro de la parte tipo test, los errores penalizan con el objetivo de corregir las respuestas acertadas por azar.
Para poder presentarse al examen final presencial, en cualquiera de las convocatorias, es imprescindible cumplir los siguientes requisitos relacionados con la evaluación continua: realizar la totalidad de los controles contemplados en el apartado de “Contenidos y programación” de la asignatura y alcanzar una calificación mínima de 2 puntos sobre cuatro en la evaluación continua del curso.
El estudiante que se presenta al examen sin cumplir los requisitos para ello, será calificado con un cero en el examen final presencial y consumirá convocatoria.
Tipo de actividad | Actividades planificadas | Peso clasificación |
---|---|---|
Actividades de aprendizaje | 4 | 10% |
Actividades de Evaluación Continua (AEC) | 4 | 20% |
Controles | 4 | 10% |
Examen final | Si | 60% |
Total | 100% |
Para aprobar la asignatura, es necesario obtener una calificación mínima de 5 en el examen final presencial, así como en la calificación total del curso, una vez realizado el cómputo ponderado de las calificaciones obtenidas en las actividades didácticas y en el examen final presencial.
Si un estudiante no aprueba la asignatura en la convocatoria ordinaria podrá examinarse en la convocatoria de septiembre.
Las fechas previstas para la realización de todas las actividades se indican en el aula virtual de la asignatura.
Originalidad de los trabajos académicos
Según la Real Academia Española, “plagiar” significa copiar en lo sustancial obras ajenas dándolas como propias. Dicho de otro modo, plagiar implica expresar las ideas de otra persona como si fuesen propias, sin citar la autoría de las mismas. Igualmente, la apropiación de contenido puede ser debida a una inclusión excesiva de información procedente de una misma fuente, pese a que esta haya sido citada adecuadamente. Teniendo en cuenta lo anterior, el estudiante deberá desarrollar sus conocimientos con sus propias palabras y expresiones. En ningún caso se aceptarán copias literales de párrafos, imágenes, gráficos, tablas, etc. de los materiales consultados. En caso de ser necesaria su reproducción, esta deberá contemplar las normas adecuadas para la citación académica.
Los documentos que sean presentados en las actividades académicas podrán ser sometidos a diferentes mecanismos de comprobación de la originalidad (herramientas antiplagios que detectan coincidencias de texto con otras fuentes, comparación con trabajos de otros estudiantes, comparación con información publicada en Internet, etc). El profesor valorará si el trabajo presentado cuenta con los criterios de originalidad exigidos o, en su caso, se atribuye adecuadamente la información no propia a las fuentes correspondientes. La adjudicación como propia de información que corresponde a otros autores podrá suponer el suspenso de la actividad.
Los documentos presentados en las actividades académicas podrán ser almacenados en formato papel o electrónico y servir de comparación con otros trabajos de terceros, a fin de proteger la originalidad de la fuente y evitar la apropiación indebida de todo o parte del trabajo del estudiante. Por tanto, podrán ser utilizados y almacenados por la universidad, a través del sistema que estime, con el único fin de servir como fuente de comparación de cualquier otro trabajo que se presente.
Sistema de calificaciones
El sistema de calificación de todas las actividades didácticas es numérico del 0 a 10 con expresión de un decimal, al que se añade su correspondiente calificación cualitativa:
0 - 4.9: Suspenso (SU)
5.0 - 6.9: Aprobado (AP)
7.0 - 8.9: Notable (NT)
9.0 - 10: Sobresaliente (SB)
(RD 1125/2003, de 5 de septiembre, por lo que se establece el sistema europeo de créditos y el sistema de calificaciones en las titulaciones universitarias de carácter oficial y con validez en todo el territorio nacional).