Hoy en día no se puede pensar en tecnología ni en innovación sin tener presente el mundo de la programación. Casi todo lo que nos rodea, tanto los elementos físicos como los virtuales, necesita un conjunto de instrucciones que los gestione y les permita cobrar vida. Así, la programación resulta indispensable y es un concepto fundamental para todo ingeniero. En esta asignatura se aprenden las bases de este mundo, aplicadas en este caso a cualquier equipo informático. Desde el punto de vista práctico, se introduce el lenguaje de programación C. Esto se hace a través de multitud de ejemplos, los cuales ayudan al estudiante a profundizar en todos aquellos aspectos que se han tratado desde el punto de vista más teórico.
Profesores Titulares
Profesores Docentes
Ninguno
Los alumnos adquieren los conocimientos y desarrollan las habilidades que se indican a continuación:
1. Comprender un problema real con todos sus condicionantes y sus restricciones.
2. Abstraer los contenidos importantes de los problemas reales con el fin de analizarlos correctamente y poderlos explicar.
3. Descubrir soluciones correctas y concretas a problemas dados.
4. Escoger las soluciones más eficientes de entre todas las halladas.
5. Aprender un pseudocódigo para potenciar la reflexión sobre un lenguaje imperativo.
6. Secuenciar sentencias de forma correcta.
7. Interpretar el funcionamiento de un programa sin ser necesaria su ejecución.
8. Alcanzar los conocimientos básicos para llevar a cabo una programación estructurada y modular.
9. Tener las nociones de un lenguaje imperativo real (lenguaje C).
10. Diseñar y utilizar componentes ya existentes para así obtener algoritmos más complejos.
11. Conocer un entorno de programación real que permita ejercerse en la práctica de la programación.
12. Trabajar en equipo el análisis, diseño e implementación de software.
13. Adquirir hábitos de trabajo y estudio continuados.
Tema 1. Introducción
Tema 2. Algorítmica básica
Tema 3. Procedimientos y funciones
Tema 4. Tipos de datos estructurados
Tema 5. Ficheros y programación modular
Tema 6. Punteros y memoria dinámica
Tema 7. Estructuras de datos lineales
Tema 8. Introducción a la recursividad
Las clases de la asignatura de Programación quieren potenciar el aprendizaje activo del alumno mediante su implicación en el proceso de aprendizaje. En este sentido, desde el primer día, el alumno es un miembro activo de las clases y aprende a medida que desarrolla las tareas que se va planteando con su ordenador portátil y toma la iniciativa en el estudio y lectura de cierta documentación. Es pues, el ordenador, un elemento imprescindible para el alumno para alcanzar con éxito los resultados de aprendizaje de esta asignatura. Las clases de la asignatura están enfocadas a que el alumno codifique software cada día. De esta manera las clases con más conceptos se combinan con clases eminentemente prácticas donde puedan comprobar la fiabilidad de los conocimientos adquiridos. El alumno afianza los conocimientos adquiridos durante las clases realizando dos prácticas individuales en cada semestre, las cuales repasan los conceptos que se van introduciendo a lo largo del curso. Paralelamente, el alumno puede seguir la Evaluación Continua de la asignatura, consistente en la realización de sesiones de laboratorio que revisan los conceptos vistos en sesiones anteriores.
Las principales actividades de evaluación de la asignatura son: exámenes semestrales, prácticas (2 por semestre) y sesiones de evaluación continua. La nota del examen, junto con la evaluación continua, corresponde al 50% de la nota final del semestre. Las calificaciones de las 2 prácticas de cada semestre corresponden al 50% restante de la nota final del semestre. Es necesario superar el examen con una nota igual o superior a 4 para poder tener en cuenta la nota de evaluación continua. Se deben aprobar los dos semestres por separado.
Se valorará:
La capacidad de aplicar el pensamiento computacional en la resolución de ejercicios.
La comprensión y aplicación correcta de los conceptos de algoritmia básica.
El uso correcto del lenguaje C para la resolución de problemas y ejercicios.
La elaboración de documentación que explique de forma correcta y completa los programas desarrollados.
La capacidad de comprender los requisitos de un problema y proponer una solución en forma de algoritmo.
Kernighan, Brian W.; Ritchie, Dennis M. El lenguaje de programación C, Prentice-Hall Hispanoamericana, 1991.
Cormen, Thomas H.; Leiserson Charles E.; Rivest Ronald L; Stein Clifford. Introduction to Algorithms, The MIT Press, 2009.
García-Bermejo, J.R. Programación Estructurada en C, Pearson/Prentice-Hall, 2008.
Hanly, Jerry R.; Koffman, Elliot B.; Problem Solving and Program Design in C, Pearson Education, 2013.
Joyanes, L. Fundamentos de la programación. Algoritmos y Estructura de Datos, McGraw-Hill, 2008.
Kruse, Robert Leroy; Tondon, Clovis L.; Leung, Bruce P. Data structures and program design in C, Prentice-Hall, 1997.
Weiss, Mark Allen. Estructuras de datos y algoritmos, Addison-Wesley Iberoamericana, 1995.