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