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: 2024

Curso de impartición: 1

Lenguas de impartición


  • 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
  • E6. Desarrollar videojuegos en lenguajes de programación de alto nivel en motores gráficos a partir de sus especificaciones.

Competencias generales
  • 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.

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.

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

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

Unidad 5: Estructuras de datos

  • Arrayes bidimensionales y multidimensionales
  • diccionarios

Actividades y sistema de evaluación


La nota de cada alumno se calculará siguiendo los siguientes porcentajes:

  • 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 (15%)
  • A4. Ejercicios en clase: cuestionarios teóricos (5%)
  • A5. Ejercicios en casa: ejercicios prácticos cortos (10%)
  • A6. Examen final 50%

Nota final = A1 x 0,1 + A2 x 0,1 + A3 x 0,15 + A4 x 0,05 + A5 x 0,1 + A6 x 0.50

Consideraciones:

  • Es necesario obtener una nota superior o igual a 5 en el examen final A6 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 circunstancia grave que puede acarrear una calificación de suspenso a una actividad. En caso de detección de plagio se informará a la coordinación del grado a fin de que se puedan tomar las medidas disciplinarias correspondientes.

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 y A5 no pueden recuperarse.
  • La nota del examen de recuperación sustituye sólo a la nota de la actividad A6. Esta nota 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.

Complementaria

Meyer Bertrand (2000) Object-Oriented Software Construction (2nd ed). Prentice Hall.