Guía Docente 2023-24 FUNDAMENTOS DE LA PROGRAMACIÓN |
DATOS BÁSICOS DE LA GUÍA DOCENTE:
Materia: | FUNDAMENTOS DE LA PROGRAMACIÓN | ||
Identificador: | 30042 | ||
Titulación: | GRADUADO EN INGENIERÍA INFORMÁTICA. PLAN 2008 (BOE 15/12/2008) | ||
Módulo: | PROGRAMACION Y DESARROLLO | ||
Tipo: | MATERIA BASICA | ||
Curso: | 1 | Periodo lectivo: | Anual |
Créditos: | 6 | Horas totales: | 150 |
Actividades Presenciales: | 62 | Trabajo Autónomo: | 88 |
Idioma Principal: | Castellano | Idioma Secundario: | Inglés |
Profesor: | Correo electrónico: |
PRESENTACIÓN:
La asignatura supone la primera toma de contacto del alumno con la programación informática en la universidad. Se trata de un pilar fundamental para el buen desarrollo académico y profesional. En el mundo profesional, se trata de uno de los campos en el mundo de la informática de mayor dimensión tanto social como económicamente.
El alumno aprenderá a analizar y resolver problemas de tratamiento de información de complejidad baja o media y a construir algoritmos que los resuelvan. Para ello el alumno deberá aprender a representar la información asociada a cada problema y deberá ser capaz de diseñar y documentar las acciones algorítmicas que los resuelvan de forma eficaz y eficiente.
El alumno aprenderá a codificar los algoritmos utilizando para ello el lenguaje de programación C.
COMPETENCIAS PROFESIONALES A DESARROLLAR EN LA MATERIA:
Competencias Generales de la titulación | G02 | Capacidad innovadora para proponer y encontrar formas nuevas y eficaces de realizar cualquier tarea y/ o función dentro de su entorno profesional con una elevada motivación por la calidad |
G05 | Capacidad para adaptarse a diferentes entornos con una actitud positiva y optimista y orientar su conducta a la consecución de metas | |
G06 | Capacidad para analizar y resolver los problemas o imprevistos complejos que puedan surgir durante la actividad profesional dentro de cualquier tipo de organización socio-económica | |
G08 | Habilidad para comunicarse eficazmente sobre distintos temas en una variedad de contextos profesionales y con los diferentes medios disponibles | |
G09 | Capacidad para tomar decisiones de manera imparcial y desde un punto de vista racional | |
G10 | Capacidad crítica y analítica en la evaluación de información, datos y líneas de actuación | |
G13 | Capacidad para utilizar estrategias de aprendizaje individuales orientadas a la mejora continúa en el ejercicio profesional y para emprender estudios posteriores de forma autónoma | |
G14 | Capacidad de abstracción para manejar diferentes modelos complejos de conocimiento y aplicarlos al planteamiento y resolución de problemas | |
Competencias Específicas de la titulación | E03 | Capacidad para reconocer los principios teóricos y aplicar satisfactoriamente los métodos prácticos apropiados para el análisis y la resolución de problemas de ingeniería |
E04 | Capacidad para mantener una actitud abierta a la innovación y la creatividad en el marco de la profesión de ingeniería | |
E08 | Capacidad para comunicarse productivamente con clientes, usuarios y colegas, tanto de modo oral como por escrito, con el fin de transmitir ideas, resolver conflictos y alcanzar consensos | |
E09 | Capacidad para mantener las competencias profesionales mediante el aprendizaje autónomo y la mejora continua | |
E11 | Capacidad para mantenerse al día en el mundo tecnológico y empresarial en el ámbito de las tecnologías de la informática y comunicaciones | |
E12 | Capacidad para gestionar la complejidad a través de la abstracción, el modelado, las “best practices”, los patrones, los estándares y el uso de herramientas apropiadas | |
E13 | Capacidad para identificar, evaluar y usar tecnologías actuales y emergentes, considerando su aplicabilidad en función de las necesidades de individuos y organizaciones | |
E16 | Capacidad para comprender un dominio de aplicación hasta el punto de ser capaz de desarrollar aplicaciones IT adecuadas para el mismo | |
E17 | Capacidad para identificar y analizar las necesidades de los usuarios con el objetivo de diseñar soluciones IT efectivas y usables que puedan integrarse en el entorno operativo del usuario. | |
E18 | Capacidad para identificar y definir los requisitos que deben ser satisfechos por los sistemas IT para satisfacer las necesidades planteadas por organizaciones o individuos | |
E27 | Capacidad para elaborar y mantener documentación descriptiva de la génesis, producción y operatividad de los sistemas informáticos | |
Resultados de Aprendizaje | R01 | Crear algoritmos que cumplan unas necesidades establecidas |
R02 | Implementar de manera eficiente algoritmos utilizando lenguaje C | |
R03 | Comentar código fuente | |
R04 | Documentar correctamente trabajos de programación | |
R05 | Utilizar el lenguaje técnico escrito | |
R06 | Comprobar errores de implementación en lenguaje C. | |
R07 | Manejar el entorno de desarrollo de lenguaje C | |
R08 | Manejar el lenguaje oral en un entorno técnico |
REQUISITOS PREVIOS:
No es necesario poseer ningún requisito previo. Es recomendable tener un buen conocimiento de los contenidos matemáticos elementales.
PROGRAMACIÓN DE LA MATERIA:
Contenidos de la materia:
1 - Introducción |
1.0 - Introducción |
1.1 - Origen del lenguaje |
1.2 - Características del lenguaje |
1.3 - Compilación y ejecución |
1.4 - Estructura de un programa |
2 - Variables y operadores |
2.1 - Variables y datos |
2.2 - Constantes |
2.3 - Palabras clave |
2.4 - Comentarios |
2.5 - Operadores |
2.6 - Entrada/Salida |
2.7 - Directivas |
2.8 - Variables y memoria |
3 - Control de flujo |
3.1 - if |
3.2 - for |
3.3 - while/do...while |
3.4 - switch |
4 - Algoritmia y seudocódigo |
4.1 - Fases de desarrollo |
4.2 - Diagramas |
4.3 - Estructuras básicas |
4.4 - Traza |
5 - Funciones |
5.1 - Introducción |
5.2 - Ventajas |
5.3 - Carcaterísitcas |
5.4 - Ámbito |
5.5 - Modos de almacenamiento |
6 - Array y punteros |
6.1 - Arrays |
6.2 - Punteros |
6.3 - Arrays y punteros |
6.4 - Operaciones con vectores |
6.5 - Vectores como parámetros |
6.6 - Cadenas |
7 - Estructuras y memoria dinámica |
7.1 - Introducción |
7.2 - Estructuras |
7.3 - Uniones |
7.4 - Enumeracioes |
7.5 - Datos propios |
7.6 - Memoria dinámica |
8 - Funciones complejas |
8.1 - Recursividad |
8.2 - Estructuras y funciones |
8.3 - Punteros a funciones |
8.4 - Preprocesado |
9 - Entrada y salida |
9.1 - Entrada y salida formateada |
9.2 - Ficheros |
La planificación de la asignatura podrá verse modificada por motivos imprevistos (rendimiento del grupo, disponibilidad de recursos, modificaciones en el calendario académico, etc.) y por tanto no deberá considerarse como definitiva y cerrada.
METODOLOGÍAS Y ACTIVIDADES DE ENSEÑANZA Y APRENDIZAJE:
Metodologías de enseñanza-aprendizaje a desarrollar:
a) Sesiones teóricas
El profesor expondrá apoyado en recursos TIC (portátil, proyector, Internet) y la pizarra la mayor parte teórica básica de la asignatura. El material utilizado en cada sesión estará siempre en la PDU con antelación para que los alumnos puedan realizar una lectura previa. Se aconseja encarecidamente a los alumnos leer con anterioridad los temas a tratar en clase.
b) Aprendizaje basado en resolución de ejercicios y problemas
Los contenidos teóricos se apoyan en la resolución de problemas que serán propuestos por el profesor y resueltos por los alumnos. Estos problemas serán solucionados, en su mayoría, por los alumnos como parte de su trabajo autónomo en horario fuera de las clases lectivas. De forma puntual algunos problemas se resolverán en las clases presenciales previa petición de los alumnos.
c) Aprendizaje basado la solución de prácticas y proyectos
Una parte muy importante del aprendizaje de la asignatura, y de la nota, se conseguirá con la resolución de las cuatro prácticas a resolver de manera individual por los alumnos. Se proporcionará a los alumnos los enunciados de las prácticas y se solicitará su entrega en un tiempo prudencial. Cada práctica estará centrada en un bloque de la temática de la asignatura, sin olvidar el carácter continuo del aprendizaje de la misma. La resolución correcta de estas prácticas, junto con los problemas citados en el apartado b, preparará al alumno para adquirir con una gran eficiencia las competencias propias de la asignatura.
d) Sesiones de tutoría
Los estudiantes podrán preguntar al profesor aquellas dudas que no han podido ser resueltas durante las clases o que hayan surgido en su tiempo dedicado al trabajo autónomo. Para las sesiones de tutoría se podrán utilizar los distintos medios tecnológicos útiles para dicho fin.
El horario de tutorías se fijará acorde a la disponibilidad de los alumnos al inicio de las clases.
Volumen de trabajo del alumno:
Modalidad organizativa | Métodos de enseñanza | Horas estimadas |
Actividades Presenciales | ||
Clase magistral | 20 | |
Casos prácticos | 5 | |
Resolución de prácticas, problemas, ejercicios etc. | 28 | |
Exposiciones de trabajos de los alumnos | 2 | |
Prácticas de laboratorio | 2 | |
Actividades de evaluación | 5 | |
Trabajo Autónomo | ||
Asistencia a tutorías | 3 | |
Estudio individual | 33 | |
Preparación de trabajos individuales | 37 | |
Realización de proyectos | 6 | |
Tareas de investigación y búsqueda de información | 5 | |
Lecturas obligatorias | 1 | |
Lectura libre | 3 | |
Horas totales: | 150 |
SISTEMA DE EVALUACIÓN:
Obtención de la nota final:
Pruebas escritas: | 40 | % |
Trabajos individuales: | 40 | % |
Prueba final: | 10 | % |
Participación y evaluación continua: | 10 | % |
TOTAL | 100 | % |
*Las observaciones específicas sobre el sistema de evaluación serán comunicadas por escrito a los alumnos al inicio de la materia.
BIBLIOGRAFÍA Y DOCUMENTACIÓN:
Bibliografía básica:
Kerningham, N.B., Ritchie, M.D. El lenguaje de programación C. ISBN: 9688802050 |
Joyanes Aguilar, L., Zahonero Martínez Ignacio. Programación en C. ISBN: 8448198441 |
Bibliografía recomendada:
Byron Gottfrieg. Programación en C. ISBN: 8448198468 |
Kerningham, N.B., Pick, R. La práctica de la programación |
G. Brassard, P. Bratley. Fundamentos de Algoritmia ISBN: 848966000X |
Javier García de Jalón y otros, Aprenda lenguaje ANSI C como si estuviera en primero |
Andrés Marzal, Introducción al lenguaje C |
Carlos López, Programación en C |
Páginas web recomendadas:
Site con información sobre programación en C ý C | http://www.cprogramming.com/ |
Página con compiladores de C ý C | http://www.thefreecountry.com/compilers/cpp.shtml |
Todo tipo de información relacionada con el lenguaje C | http://www.elrincondelc.com/nuevorincon/index.php |
* Guía Docente sujeta a modificaciones