Guía Docente 2023-24 FUNDAMENTOS DE PROGRAMACIÓN |
DATOS BÁSICOS DE LA GUÍA DOCENTE:
Materia: | FUNDAMENTOS DE PROGRAMACIÓN | ||
Identificador: | 31806 | ||
Titulación: | DOBLE GRADO EN INGENIERÍA INFORMÁTICA Y DISEÑO Y DESARROLLO DE VIDEOJUEGOS | ||
Módulo: | INFORMÁTICA | ||
Tipo: | MATERIA BASICA | ||
Curso: | 1 | Periodo lectivo: | Segundo Cuatrimestre |
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 | G01 | Capacidad para utilizar estrategias de aprendizaje en forma autónoma para su aplicación en la mejora continua del ejercicio profesional. |
G02 | Capacidad para realizar el análisis y la síntesis de problemas propios de su actividad profesional y aplicarlos en entornos similares. | |
G03 | Capacidad para conseguir resultados comunes mediante el trabajo en equipo en un contexto de integración, colaboración y potenciación de la discusión crítica. | |
G04 | Capacidad para hacer un razonamiento crítico de la información, datos y líneas de actuación y su aplicación en temas relevantes de índole social, científico o ético. | |
G05 | Habilidad para comunicar en lengua castellana e inglesa temas profesionales en forma oral y escrita. | |
G06 | Capacidad para resolver los problemas o imprevistos complejos que surgen durante la actividad profesional dentro de cualquier tipo de organización y la adaptación a las necesidades y exigencias de su entorno profesional. | |
G07 | Capacidad para manejar diferentes modelos complejos de conocimiento mediante un proceso de abstracción y su aplicación al planteamiento y resolución de problemas. | |
G08 | Capacidad para comprender el papel del método científico en la generación de conocimiento y su aplicabilidad a un entorno profesional. | |
G09 | Capacidad para trabajar con respeto al medio ambiente y la sociedad mediante el uso adecuado de la tecnología y su aplicación en el fomento de una economía y ambiente sostenible. | |
G10 | Habilidad para dominar las tecnologías de la información y comunicación y su aplicación en su ámbito profesional. | |
Competencias Específicas de la titulación | E01 | Capacidad para la resolución de los problemas matemáticos que puedan plantearse en la ingeniería. Aptitud para aplicar los conocimientos sobre: álgebra; geometría; cálculo diferencial e integral; optimización y métodos numéricos |
E02 | Capacidad para comprender y dominar los conceptos sobre las leyes generales de la mecánica clásica, de campos, ondas y electromagnetismo y su aplicación para la resolución de problemas propios del desarrollo de videojuegos. | |
E03 | Capacidad para desarrollar el uso y la programación de ordenadores, sistemas operativos, bases de datos y programas informáticos y su aplicación en el desarrollo de videojuegos. | |
E04 | Capacidad para comprender y dominar los conceptos fundamentales 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. | |
E05 | Capacidad para programar aplicaciones de forma robusta, correcta, y eficiente, eligiendo el paradigma y los lenguajes de programación más adecuados, aplicando los conocimientos sobre procedimientos algorítmicos básicos y usando los tipos y estructuras de datos más apropiados. | |
E06 | Capacidad de conocer, comprender y evaluar la estructura y arquitectura de los computadores, así como los componentes básicos que los conforman. | |
E07 | Capacidad para realizar el diseño, análisis e implementación de aplicaciones fundamentadas en las características de las bases de datos. | |
E08 | Capacidad para conocer y dominar las características, funcionalidades y estructura de los Sistemas Distribuidos, las Redes de Computadores e Internet y diseñar e implementar aplicaciones basadas en ellas. | |
E09 | Capacidad para conocer y dominar las herramientas necesarias para el almacenamiento, procesamiento y acceso a los Sistemas de información, incluidos los basados en web. | |
E10 | Capacidad para conocer las características, funcionalidades y estructura de los sistemas operativos. | |
E11 | Capacidad para desarrollar juegos en red para múltiples jugadores/ as. | |
E12 | Capacidad para comprender y analizar la estructura, organización, funcionamiento e interconexión de los dispositivos y sistemas en las plataformas de videojuegos. | |
E13 | Capacidad para conocer, diseñar y evaluar los principios fundamentales y técnicas de interacción persona computador que garanticen la accesibilidad y usabilidad a los sistemas, servicios y aplicaciones informáticas incluyendo videojuegos. | |
E14 | Capacidad para aplicar los principios fundamentales y técnicas básicas de los sistemas inteligentes y su aplicación práctica en diversos entornos | |
E15 | Capacidad para aplicar los principios fundamentales y técnicas básicas de la programación en tiempo real. | |
E16 | Capacidad para gestionar y planificar de forma completa proyectos de software y manejar las herramientas adecuadas para hacerlo. | |
E17 | Capacidad para comprender y analizar la estructura y funcionamiento de los principales sistemas hardware y periféricos en el ámbito de los videojuegos | |
E18 | Capacidad para comprender y aplicar los principios de ergonomía y "Diseño para todos" con el fin de desarrollar interfaces y dispositivos accesibles de forma universal en el ámbito de los videojuegos. | |
E19 | Capacidad para conocer y aplicar los principios, metodologías y ciclos de vida de la ingeniería de software. | |
E20 | Capacidad para efectuar la generación y análisis de recursos expresivos y narrativos y su aplicación a los videojuegos. | |
E21 | Capacidad para realizar el arte de los videojuegos, crear personajes y ambientes. | |
E22 | Capacidad para manejar técnicas y herramientas de expresión y representación artística. | |
E23 | Capacidad para utilizar procesos creativos en el diseño y desarrollo de videojuegos. | |
E24 | Capacidad de visión espacial y conocimiento de las técnicas de representación gráfica, tanto por métodos tradicionales de geometría métrica y geometría descriptiva, como mediante las aplicaciones de diseño asistido por ordenador. | |
E25 | Capacidad para realizar el diseño y la creación de elementos gráficos y su aplicación en el desarrollo de videojuegos. | |
E26 | Capacidad para realizar el diseño y la creación de personajes animados y su aplicación en el desarrollo de videojuegos. | |
E27 | Capacidad para aplicar los métodos en la creación y preservación de imágenes sintéticas. | |
E28 | Capacidad para realizar el diseño y construcción de modelos con la información necesaria para la creación y visualización de imágenes interactivas. | |
E29 | Capacidad para conocer y aplicar las técnicas de visualización, animación, simulación e interacción sobre modelos. | |
E30 | Capacidad para diseñar, desarrollar, seleccionar y evaluar aplicaciones y sistemas informáticos, asegurando su fiabilidad, seguridad y calidad, conforme a principios éticos y a la legislación y normativa vigente. | |
E31 | Capacidad para realizar la evaluación de videojuegos desde sus diferentes enfoques. | |
E32 | Capacidad para realizar la evaluación, uso y extensión de motores de juegos. | |
E33 | Capacidad para elaborar desarrollos de producción en el campo de los videojuegos. | |
E34 | Capacidad para crear y analizar juegos en sus elementos fundamentales y desarrollar la compresión de cuáles son las claves que determinan su funcionamiento y desarrollo. | |
E35 | Capacidad para conocer y comprender el sector de los videojuegos desde el punto de vista empresarial | |
E36 | Capacidad para identificar y aplicar los aspectos legales y éticos del sector de los videojuegos | |
E37 | Capacidad para diseñar y crear sonidos y entornos sonoros y su aplicación en el desarrollo de videojuegos | |
E38 | Capacidad para realizar un proyecto original que integren las competencias adquiridas en su formación con su presentación y defensa ante un tribunal universitario y que se relacione en el ámbito del diseño y desarrollo de videojuegos. |
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 pseudocó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 será fijado en funciónde la disposición de los alumnos.
Volumen de trabajo del alumno:
Modalidad organizativa | Métodos de enseñanza | Horas estimadas |
Actividades Presenciales | ||
Clase magistral | 21 | |
Casos prácticos | 8 | |
Resolución de prácticas, problemas, ejercicios etc. | 13 | |
Exposiciones de trabajos de los alumnos | 2 | |
Prácticas de laboratorio | 14 | |
Actividades de evaluación | 4 | |
Trabajo Autónomo | ||
Asistencia a tutorías | 3 | |
Estudio individual | 37 | |
Preparación de trabajos individuales | 40 | |
Tareas de investigación y búsqueda de información | 4 | |
Lectura libre | 4 | |
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 |
* Guía Docente sujeta a modificaciones