General information


Subject type: Mandatory

Coordinator: Juan José Pons López

Trimester: Second term

Credits: 4

Teaching staff: 

Oscar Garcia Subirana

Academic year: 2025

Teaching course: 1

Languages ​​of instruction


  • Catalan
  • Spanish

Face-to-face classes, as well as communication through the forum and e-mail, will take place in Spanish or Catalan. The slides and materials of the virtual classroom will be provided mostly in English, using Catalan on some occasions.

Competencies / Learning Outcomes


Specific skills
  • E2. Design the mechanics, rules, structure and narrative of video games following the criteria of gameplay and balance to provide the best possible gaming experience.

  • E5. Write the specifications of a game and communicate them effectively to the team of artists and developers and other members involved in the creation and development of the game.

  • E6. Develop video games in high-level programming languages ​​in graphics engines based on specifications.

General competencies
  • G1. Demonstrate having and understanding advanced knowledge of their area of ​​study that includes the theoretical, practical and methodological aspects, with a level of depth that reaches the forefront of knowledge.

  • G2. Solve complex problems in their field of work, by applying their knowledge, developing arguments and procedures, and using creative and innovative ideas.

  • G5. Develop the learning skills needed to undertake further studies with a high degree of autonomy.

Transversal competences
  • T1. Communicate in a third language, preferably English, with an appropriate level of oral and written communication and in accordance with the needs of graduates.

  • T2. Work as a member of an interdisciplinary team either as an additional member or performing management tasks in order to contribute to developing projects with pragmatism and a sense of responsibility, making commitments and taking into account available resources.

Presentation of the subject


The objective of this course is to provide students with a deep understanding of the concepts and techniques of object-oriented programming (OOP), as well as the fundamental data structures and associated algorithms. Students will learn to break down complex problems into more manageable subproblems, use flowcharts to plan solutions, and implement efficient solutions using OOP, advanced data structures, and effective algorithms.

The subject combines lectures, practical workshops and projects. Lectures introduce theoretical concepts, while workshops allow students to apply these concepts in real-world situations. Projects encourage creativity and collaboration, providing students with the opportunity to work in small teams to solve complex problems.

safe spaces:

The classroom (physical or virtual) is a safe space, free of sexist, racist, homophobic, transphobic and discriminatory attitudes, either towards students or teachers. We trust that together we can create a safe space where we can make mistakes and learn without having to suffer the prejudices of others. 

Contents


Unit 1: Functional decomposition and top-down design

  • Decomposition of problems into subproblems
  • Flow charts
  • Tour vs Search
  • Pass parameters
  • Data structures
  • Programming concepts

Unit 2: Introduction and general concepts of object-oriented programming (OOP)

  • What is OOP?
  • Structured programming vs OOP
  • Why use OOP and its benefits
  • Characteristics of the OOP
  • Definition of object and class
  • Elements of a class: Attributes, methods, constructors, etc.

Unit 3: Basic concepts of object-oriented programming

  • Object attributes, class attributes and constants
  • Constructors and instantiating objects
  • Methods of a class and overloading
  • Unified Modeling Language (UML) diagrams
  • Keyword "this"
  • Classes vs static classes
  • Exception handling and debugging within a class
  • Operators

Unit 4: Inheritance, interfaces and polymorphism (class hierarchy)

  • Introduction, definition of inheritance and examples
  • Creation of base and derived classes
  • "sealed" and "abstract" classes
  • Interfaces
  • Polymorphism

Activities and evaluation system


Each student's final grade will be calculated by combining continuous assessment, based on group work, together with an individual final exam. The percentages for each activity are as follows:

  • A1. Laboratory practices 1: working with matrices and descending analysis (10%)
  • A2. Lab practices 2: implementing classes and working with objects (10%)
  • A3. Laboratory exercises 3: concepts of inheritance (10%)
  • A4. Exercises in class and at home: short practical activities linked to the first unit (5%)
  • A5. Exercises in class and at home: short practical activities linked to the second unit (5%)
  • A6. Exercises in class and at home: short practical activities linked to the third unit (5%)
  • A7. Exercises in class and at home: short practical activities linked to the fourth unit (5%)
  • A8. Final exam 50%
    • Multiple choice test
    • Practical activity or activities related to the course contents

Final grade = 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

General considerations:

  • It is necessary to obtain a grade higher than or equal to 5 in the final exam A8 to pass the subject.
  • An activity not delivered or delivered late and without justification (court summons or medical matter) counts as a 0.
  • The identification of plagiarism is considered a serious breach of academic integrity and may result in a failing grade for the affected activity. In these cases, the degree coordination will be informed to assess the relevant disciplinary measures.
  • Any form of academic fraud will be sanctioned in accordance with the center's assessment regulations. If signs of fraud are detected, including the improper use of generative artificial intelligence tools, the subject's teaching staff may call the student for an individual interview with the aim of verifying their authorship.

Considerations on the use of artificial intelligence tools:

  • Given the fundamental nature of this subject, the student is required not only to provide solutions to certain problems, but also to be able to generate them autonomously, without any external help. For this reason, the use of generative artificial intelligences (IAG) to resolve the problems posed in the subject, whether in exercises, practices or tests, is counterproductive, is strictly prohibited and will be considered a case of fraud by plagiarism. In this sense, the use of IAG to generate programming code is not allowed, not even in the form of fragments, even if this code is subsequently modified or customized.
  • The critical use of IAGs as a vehicle to resolve doubts about the subject is not considered a misuse of these mechanisms as long as this does not contradict what has been indicated in the previous point and the student does not lose sight of the fact that he may obtain incorrect answers or ones that do not fit the contents of the subject.

Recovery:

  • Only students who sit the final exam who do not pass the minimum grade (5) in the final grade or in the exam can be retaken.
  • Activities A1, A2, A3, A4, A5, A6 and A7 cannot be recovered.
  • The make-up exam grade replaces the A8 activity grade only. This theory grade must be higher than a 5.

Bibliography


Basic

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

Clark Dan (2011) Beginning C# Object-Oriented Programming. hurry up

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.

Complementary

StackOverflow forum

LeetCode

Microsoft .NET Documentation