General information

Subject type: Mandatory

Coordinator: Juan José Pons López

Trimester: Second term

Credits: 4

Teaching staff: 

Marco Antonio Rodríguez Fernández

Teaching languages

  • Catalan
  • Spanish

Some materials will be provided in English.


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

General competencies
  • G3. Gather and interpret relevant data (usually within their area of ​​study) to make judgments that include reflection on relevant social, scientific, or ethical issues.

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


The subject Programming I supposes the first approach to the design of algorithms using the bases of the programming oriented to objects in the frame of the matter of Development. Problems of a certain complexity are worked on, both to design new algorithms and to properly test and debug implemented algorithms. The subject consists of theoretical sessions and practice sessions. In order to achieve the knowledge of the subject, three practices are evaluated on the one hand and the theoretical knowledge individually on the other.



Topic 1: Functional decomposition and top-down design

1.1. Decomposition of problems into subproblems

1.2. Flowcharts

1.3. Route vs search

1.4. Passing parameters: input, output, reference and value

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

2.1. What is OOP?

2.2. Structured programming vs. OOP

2.3. Why use OOP and its benefits

2.4. Characteristics of the OOP

2.5. Definition of object and class

2.6. Elements of a class

Topic 3: Basic concepts of object-oriented programming

3.1. Object attributes, class attributes, and constants

3.2. Builders and instantiate objects

3.3. Class one methods and overload

3.4. Unified Modeling Language (UML) diagrams

3.5. Keyword "this"

3.6. Classes vs static classes

3.7. Exception handling and debugging within a class

3.8. Operators

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

4.1. Introduction, definition of inheritance and examples

4.2. Creation of base and derivative classes

4.3. "Sealed" and "abstract" classes

4.4. Interfaces

4.5. Polymorphism

Topic 5: Data structures

5.1. Two-dimensional and multidimensional arrays

5.2. Dictionaries

Evaluation system

The grade of each student will be calculated following the following percentages:

A1. Laboratory practices 1: Work with matrices and top-down analysis 12%

A2. Laboratory practice 2: Implement classes and work with objects 12%

A3. Laboratory practices 3: Concepts of inheritance 12%

A4. Exercises in class: Theoretical questionnaires 5%

A5. Exercises at home: Short practical exercises 9%

A6. Final practical exam 50%

Final grade = A1 0,12 + A2 0,12 + A3 0,12 + A4 0,05 + A5 0,09 + A6 0.50


  • It is necessary to obtain a mark higher or equal to 5 in the final exam A6 to pass the subject.
  • An activity not delivered or delivered late and without justification counts as a 0.
  • It is the responsibility of the student to prevent plagiarism in all its forms. In the case of detecting a plagiarism, regardless of its scope, in some activity it will correspond to have a note of 0. In addition, the professor will communicate to the Head of Studies the situation so that measures applicable in matter of sanctioning regime are taken. .


  • Only students who sit the final exam who do not pass the minimum grade (5) in the final grade and/or the exam can be retaken.
  • Activities A1, A2, A3, A4 and A5 cannot be recovered.
  • The mark of the resit exam replaces only the mark of activity A6.



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.

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


Meyer Bertrand (1997) Object-Oriented Software Construction. Prentice Hall.