Información general


Tipo de asignatura: obligatoria

Coordinador: Juan José Pons López

trimestre: Segundo trimestre

Créditos: 4

Profesorado: 

Oscar Garcia Subirana

Curso académico: 2025

Curso de impartición: 1

Lenguas de impartición


  • Catalá
  • Castellano

Las clases presenciales, así como la comunicación a través del foro y correo electrónico, se llevarán a cabo en castellano o catalán. Las diapositivas y los materiales del aula virtual se proporcionarán mayoritariamente en inglés, utilizando el catalán en algunas ocasiones.

Competencias / Resultados de aprendizaje


Competencias específicas
  • E2. Diseñar las mecánicas, reglas, estructura y narrativa de videojuegos siguiendo los criterios de jugabilidad y balanceo para ofrecerle la mejor experiencia de juego posible.

  • E5. Escribir las especificaciones de un juego y comunicarlas eficazmente al equipo de artistas y desarrolladores y de otros miembros involucrados en la creación y desarrollo del juego.

  • E6. Desarrollar videojuegos en lenguajes de programación de alto nivel en motores gráficos a partir de sus especificaciones.

Competencias generales
  • G1. Demostrar tener y comprender conocimientos avanzados de su área de estudio que abarcan los aspectos teóricos, prácticos y metodológicos, con un nivel de profundidad que llega hasta la vanguardia del conocimiento.

  • G2. Resolver complejos problemas de su ámbito laboral, mediante la aplicación de sus conocimientos, la elaboración de argumentos y procedimientos, y el uso de ideas creativas e innovadoras.

  • G5. Desarrollar las habilidades de aprendizaje necesarias para acometer estudios posteriores con un alto grado de autonomía.

competencias transversales
  • 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.

  • T2. Trabajar como miembro de un equipo interdisciplinario ya sea como un miembro más o realizando tareas de dirección con el fin de contribuir a desarrollar proyectos con pragmatismo y sentido de la responsabilidad, asumiendo compromisos y teniendo en cuenta los recursos disponibles.

Presentación de la asignatura


El objetivo de esta asignatura es proporcionar a los estudiantes una comprensión profunda de los conceptos y técnicas de la programación orientada a objetos (POO), así como las estructuras de datos fundamentales y algoritmos asociados. Los estudiantes aprenderán a descomponer problemas complejos en subproblemas más manejables, a utilizar diagramas de flujo para planificar soluciones, ya implementar soluciones eficientes mediante el uso de la POO, estructuras de datos avanzadas y algoritmos efectivos.

La asignatura combina clases magistrales, talleres prácticos y proyectos. Las clases magistrales introducen los conceptos teóricos, mientras que los talleres permiten a los estudiantes aplicar estos conceptos en situaciones reales. Los proyectos fomentan la creatividad y la colaboración, proporcionando a los estudiantes la oportunidad de trabajar en equipos pequeños para resolver problemas complejos.

Espacios seguros:

El aula (física o virtual) es un espacio seguro, libre de actitudes machistas, racistas, homófobas, Transfobia y discriminatorias, ya sea hacia el alumnado o hacia el profesorado. Confiamos que entre todas y todos podamos crear un espacio seguro donde nos podamos equivocar y aprender sin tener que sufrir prejuicios otros. 

Contenidos


Unidad 1: Descomposición funcional y diseño descendente

  • Descomposición de problemas en subproblemas
  • Diagramas de flujo
  • Recorrido vs búsqueda
  • Paso de parámetros
  • Estructuras de datos
  • Conceptos de programación

Unidad 2: Introducción y conceptos generales de la programación orientada a objetos (POO)

  • ¿Qué es la POO?
  • Programación estructurada vs POO
  • ¿Por qué utilizar la POO y sus beneficios
  • Características de la POO
  • Definición de objeto y clase
  • Elementos de una clase: Atributos, métodos, constructores, etc.

Unidad 3: Conceptos básicos de la programación orientada a objetos

  • Atributos objetuales, atributos de clase y constantes
  • Constructores e instanciar objetos
  • Métodos de una clase y sobrecarga
  • Diagramas de lenguaje unificado de modelado (UML)
  • Palabra clave "this"
  • Clases vs clases estáticas
  • Gestión de excepciones y debug dentro de una clase
  • Operadores

Unidad 4: Herencia, interfaces y polimorfismo (jerarquía de clases)

  • Introducción, definición de herencia y ejemplos
  • Creación de clases base y derivadas
  • Clases "sealed" y "abstract"
  • interfaces
  • Polimorfismo

Actividades y sistema de evaluación


La nota final de cada alumno se calculará combinando la evaluación continua, basada en trabajos grupales, junto a un examen final individual. Los porcentajes de cada actividad son los siguientes:

  • A1. Prácticas de laboratorio 1: trabajar con matrices y análisis descendente (10%)
  • A2. Prácticas de laboratorio 2: implementar clases y trabajar con objetos (10%)
  • A3. Prácticas de laboratorio 3: conceptos de herencia (10%)
  • A4. Ejercicios en clase y en casa: actividades prácticas breves vinculadas a la primera unidad (5%)
  • A5. Ejercicios en clase y en casa: actividades prácticas breves vinculadas a la segunda unidad (5%)
  • A6. Ejercicios en clase y en casa: actividades prácticas breves vinculadas a la tercera unidad (5%)
  • A7. Ejercicios en clase y en casa: actividades prácticas breves vinculadas a la cuarta unidad (5%)
  • A8. Examen final 50%
    • Test de respuesta múltiple
    • Actividad o actividades prácticas relacionadas con los contenidos del curso

Nota final = A1 x 0.10 + A2 x 0.10 + A3 x 0.10 + A4 x 0.05 + A5 x 0.05 + A6 x 0.05 + A7 x 0.05 + A8 x 0.50

Consideraciones generales:

  • Es necesario obtener una nota superior o igual a 5 en el examen final A8 para aprobar la asignatura.
  • Una actividad no entregada o entregada con retraso y sin justificación (citación judicial o asunto médico) cuenta como un 0.
  • La identificación de plagio se considera una infracción grave de integridad académica y puede comportar una calificación de suspenso a la actividad afectada. En estos casos, se informará a la coordinación del grado para valorar las medidas disciplinarias pertinentes.
  • Cualquier forma de fraude académico será sancionada de acuerdo a la normativa de evaluación del centro. En caso de que se detecten indicios de fraude, incluido el uso indebido de herramientas de inteligencia artificial generativa, el profesorado de la asignatura podrá convocar al estudiante a una entrevista individual con el objetivo de verificar su autoría.

Consideraciones sobre el uso de herramientas de inteligencia artificial:

  • Dada la naturaleza fundamental de esta asignatura, se requiere al estudiante no sólo que proporcione soluciones a determinados problemas, sino que sea capaz de generarlas de forma autónoma, sin ningún tipo de ayuda externa. Por este motivo, el uso de inteligencias artificiales generativas (IAG) para la resolución de los problemas planteados en la asignatura, ya sea en ejercicios, prácticas o pruebas, es contraproducente, queda estrictamente prohibido y será considerado un caso de fraude por plagio. En este sentido, no se permite el uso de IAG para generar código de programación, ni siquiera en forma de fragmentos, aunque éste sea posteriormente modificado o personalizado.
  • El uso crítico de IAGs como vehículo para resolver dudas sobre la materia no se considera mal uso de estos mecanismos siempre que esto no entre en contradicción con lo indicado en el punto previo y el estudiante no pierda de vista el hecho de que puede obtener respuestas incorrectas o no ajustadas a los contenidos de la materia.

recuperación:

  • Sólo se pueden presentar a la recuperación los estudiantes que se presenten en el examen final que no superen la calificación mínima (5) en la nota final o en el examen.
  • Las actividades A1, A2, A3, A4, A5, A6 y A7 no pueden recuperarse.
  • La nota del examen de recuperación sustituye sólo a la nota de la actividad A8. Esta nota de teoría debe ser superior a un 5.

Bibliografía


Básico

Chaudhary Harry (2014). C# Programming: Step By Step Beginner's To Experts Edition. Createspace LLC USA.

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 (2000) Object-Oriented Software Construction (2nd ed). Prentice Hall.

Complementaria

Foro StackOverflow

Código Leet

Documentación de Microsoft .NET