Que estás buscando?
Algunos materiales se proporcionarán en inglés.
E6. Desarrollar videojuegos en lenguajes de programación de alto nivel en motores gráficos a partir de sus especificaciones.
G3. Reunir e interpretar datos relevantes (normalmente dentro de su área de estudio) para emitir juicios que incluyan una reflexión sobre temas relevantes de índole social, científica o ética.
G5. Desarrollar las habilidades de aprendizaje necesarias para acometer estudios posteriores con un alto grado de autonomía.
T1. Comunicar en un tercer idioma, que será preferentemente el inglés, con un nivel adecuado de forma oral y por escrito y acorde con las necesidades que tendrán los graduados y graduadas.
La asignatura Programación I supone la primera aproximación al diseño de algoritmos utilizando las bases de la programación orientada a objetos en el marco de la materia de Desarrollo. Se trabajan problemas de cierta complejidad, tanto para diseñar algoritmos nuevos como para testear y depurar adecuadamente algoritmos implementados. La asignatura consta de sesiones teóricas y sesiones de práctica. Para alcanzar los conocimientos de la asignatura se evalúa por un lado tres prácticas y por otro los conocimientos teóricos de manera individual.
Esta asignatura dispone de recursos metodológicos y digitales para hacer posible su continuidad en modalidad no presencial en el caso de ser necesario por motivos relacionados con la Covidien-19. De esta forma se asegurará la consecución de los mismos conocimientos y competencias que se especifican en este plan docente.
El Tecnocampus pondrá al alcance del profesorado y el alumnado las herramientas digitales necesarias para poder llevar a cabo la asignatura, así como guías y recomendaciones que faciliten la adaptación a la modalidad no presencial.
Al finalizar la asignatura los estudiantes deben ser capaces de:
E6.1. Diseñar la arquitectura del software de un videojuego de acuerdo a unas especificaciones.
La asignatura utiliza las siguientes metodologías de trabajo:
Clase magistral, cápsulas de vídeo, resolución de problemas, laboratorio en grupo reducido y aprendizaje colaborativo, y tutorías no presenciales.
Tema 1: Introducción y conceptos generales de la programación orientada a objetos (POO)
1.1. ¿Qué es la POO?
1.2. Programación estructurada vs POO
1.3. Porque utilizar la POO y sus beneficios
1.4. Características de la POO
1.5. Definición de objeto y clase
1.6. Elementos de una clase
Tema 2: Descomposición funcional y diseño descendente
2.1. Descomposición de problemas en subproblemas
2.2. Diagramas de flujo
2.3. Recorrido vs búsqueda
2.4. Paso de parámetros: entrada, salida, referencia y valor
Tema 3: Conceptos básicos de la programación orientada a objetos
3.1. Atributos objetuales, atributos de clase y constantes
3.2. Constructores e instanciar objetos
3.3. Métodos de una clase y sobrecarga
3.4. Diagramas de lenguaje unificado de modelado (UML)
3.5. Palabra clave "this"
3.6. Clases vs clases estáticas
3.7. Gestión de excepciones y debug dentro de una clase
3.8. Operadores
Tema 4: Herencia, interfaces y polimorfismo (jerarquía de clases)
4.1. Introducción, definición de herencia y ejemplos
4.2. Creación de clases base y derivadas
4.3. Clases "sealed" y "abstract"
4.4. interfaces
4.5. polimorfismo
Tema 5: Estructuras de datos
5.1. listas dinámicas
5.2. Listas ordenadas (Key / value)
5.3. Colas (FIFO) y stacks (LIFO)
5.4. Tablas de hash
5.5. grafos
Con el objetivo de recoger evidencia del logro de los resultados de aprendizaje esperados se realizarán las siguientes actividades de carácter evaluativo (relacionadas con todas las competencias comunes):
A1. Prácticas de laboratorio 1: Trabajar con matrices y análisis descendente (Evidencia del resultado de aprendizaje E6.1)
En esta práctica el estudiante deberá aplicar los conceptos explicados en las clases teóricas sobre los temas 1 y 2, más concreto, la descomposición funcional y diseño descendente, además de la diferencia entre recorrido y búsqueda, será necesario diseñar el diagrama de flujo del juego. También aplicará los conceptos explicados en las clases teóricas introductorias sobre la orientación a objetos.
La actividad se realizará por parejas utilizando un repositorio Git con un proyecto inicial con clases creadas donde será necesario rellenar parte del código. Actividad no recuperable.
A2. Prácticas de laboratorio 2: Implementar clases y trabajar con objetos (Evidencia del resultado de aprendizaje E6.1)
En esta práctica el estudiante deberá aplicar los conceptos explicados en las clases teóricas sobre la programación orientada a objetos, más en concreto, los temas 2 y 3 del temario teórico. Además el estudiante utilizará clases de C # para la lectura y escritura de archivos guardados en el disco duro del ordenador. El estudiante deberá seguir un diagrama UML para la creación de las diferentes clases y deberá diseñar un diagrama de flujo del juego.
La actividad se realizará por parejas utilizando un repositorio Git con un proyecto inicial donde habrá un código inicial y además, habrá que añadir nuevas clases. Actividad no recuperable.
A3. Prácticas de laboratorio 3: Conceptos de herencia (Evidencia del resultado de aprendizaje E6.1)
En esta tercera práctica del curso, el estudiante tendrá que aplicar los conceptos de herencia, interfaces y polimorfismo (jerarquía de clases) explicados en los temas 4 y 5 del curso. El estudiante tendrá que diseñar un diagrama UML de las clases utilizadas y un diagrama de flujo del juego.
La actividad se realizará por parejas utilizando un repositorio Git con un proyecto inicial donde habrá un código inicial y además, habrá que añadir nuevas clases. Actividad no recuperable.
A4. Ejercicios en clase: Cuestionarios teóricos (Evidencia de todos los resultados de aprendizaje)
Al inicio de algunas clases se realizarán varios test individuales de preguntas cortas de los conceptos teóricos trabajados. Actividad no recuperable.
A5. Ejercicios en casa: Ejercicios prácticos cortos (Evidencia de todos los resultados de aprendizaje)
Varios ejercicios prácticos en el aula virtual, a realizar en pareja, de los conceptos teóricos trabajados. Actividad no recuperable.
A6. Examen práctico final (Evidencia de todos los resultados de aprendizaje)
Examen práctico individual a partir de un proyecto inicial será necesario resolver ejercicios o problemas de los conceptos teóricos y prácticos de toda la asignatura.
Criterios generales de las actividades:
La nota de cada alumno se calculará siguiendo los siguientes porcentajes:
A1. Prácticas de laboratorio 1: Trabajar con matrices y análisis descendente 12%
A2. Prácticas de laboratorio 2: Implementar clases y trabajar con objetos 12%
A3. Prácticas de laboratorio 3: Conceptos de herencia 12%
A4. Ejercicios en clase: Cuestionarios teóricos 5%
A5. Ejercicios en casa: Ejercicios prácticos cortos 9%
A6. Examen práctico final 50%
Nota final = A1·0,12 + A2·0,12 + A3·0,12 + A4·0,05 + A5·0,09 + A6·0.50
Consideraciones:
recuperación:
Clark, Dan (2011) Beginning C # Object-Oriented Programming. Apress.
Fagerberg, Jonas (2015) C # for Beginners: The Tactical Guidebook: Learn Csharp by Coding. CreateSpace Independent Publishing Platform.
Meyer, Bertrand (1997) Object-Oriented Software Construction. Prentice Hall, segunda edición.
Versión española: Construcción de software orientada a objetos, Prentice Hall Iberia, 1999.
Chaudhary, Harry H. (2014) C # Programming: Step By Step Beginner 's To Expertos Edition. CreateSpace LLC USA.