Degree in Digital Arts - Minor in Concept Art

Boost your inner artist with the most advanced technology

Methodology and technology of programming

Nowadays one cannot think of technology or innovation without taking into account the programming world. Almost everything surrounding us, both physical and virtual elements, require a set of instructions to manage them and to allow them to "be alive". Thus, programming is indispensable and is a key concept for every engineer. In this subject, we learn the fundamentals of this world, applied in this case to any computer. The subjects’ practical work will introduce the C programming language. To do that, this subject uses a multitude of examples, which help the student to deepen in all those aspects taught in a more theoretical way.
Type Subject

Titular Professors

Previous Knowledge



The students acquire the knowledge and develop the following abilities:

1. To understand a real problem with all their conditions and their limitations.
2. To withdraw the important contents from the real problems in order to analyze them correctly and to be able to make them explicit.
3. To find out adequate and precise solutions for the real problems.
4. To choose, among all the possible solutions, the most efficient one.
5. To learn a pseudocode to improve the reflection about an imperative language.
6. To order different sentences correctly.
7. To understand how a program works without being necessary to execute it.
8. To reach the basic knowledge to carry out a structured and modulated programming.
9. To master the notions of a real imperative language (C language).
10. To design and use existent components in order to obtain more complex algorithms.
11. To know a real program environment that allows putting into practice the daily programs.
12. To work as a team in the domain of analysis, design and the software implementation.
13. To acquire continued work and study habits.


Chapter 1. Introduction
Chapter 2. Introduction to algorithms
Chapter 3. Functions and procedures
Chapter 4. Structured data types
Chapter 5. Files
Chapter 6. Pointers and Dynamic memory
Chapter 7. Modular programming and linear data structures
Chapter 8. Introduction to recursion


The Programming classes want to promote the students’ active learning through their involvement in the learning process. From the first day, the student is an active member and learns as the student carries out the different activities on their laptop. To solve these activities, the student must take the initiative, study and read some documentation. As such, a computer is an essential tool for the student to successfully achieve the learning outcomes of this subject.

The classes are designed for the student to code software every day. The theoretical classes are combined with practical sessions where the student can validate the reliability of the acquired knowledge.

The student’s acquired knowledge is reinforced during the classes by performing three individual projects for every semester, which cover the concepts that are taught throughout the academic year. At the same time, the student can also do the Continuous Assessment of the course, which consists of a weekly exercise or test that examines the concepts learned during the previous week.


• Continuous evaluation: It consists of a set of exercises that will be published regularly. These exercises are INDIVIDUAL. The Continuous Evaluation has a weight of 20% in the final evaluation of the semester in regular period.

• Practical work: Each semester will have an INDIVIDUAL practice divided into 3 parts, which will correspond to each of the blocks of knowledge defined for that semester. Each phase of the internship consists of the following evaluable parts:

• Execution (50%)
• Code quality (10%)
• Interview and knowledge (40%)

Unless the entire practical project executes properly, the individual parts of the practice will not be graded.

If the Interview and Knowledge part is not successfully completed, then this part will have to be taken up in the Final Evaluation Phase.

Upon the delivery of the third part, a final report for the practical project must be included, which will be weighted by 10% of the final grade of the practice (once the grade of the 3 parts has been calculated and evaluated). The final grade will be 90% for the practice and 10% for the report.

• Final Evaluation Phase: This final phase will allow the student to complete the blocks of knowledge that were not passed during the Interview and Knowledge phase. If this phase is passed, then the grade obtained will substitute 40% of the Interview and Knowledge part of the respective block of the practical work. If any part is not successful, you will have to undergo the extraordinary call and retake in July.

For the extraordinary call (July), the previous regulations are no longer applicable and any student who is evaluated in the extraordinary call of any semester, his/her grade for that semester will be:

Final Grade: 60% Practice + 40% Final Evaluation Phase

The Final Evaluation Phase during the extraordinary call (July) will always include of ALL the knowledge blocks for that semester.

It is necessary, that for both the regular and extraordinary calls, to obtain a minimum grade of 5 for the Practice and the Final Evaluation Phase (if applicable) in order for the Final Grade to be computed and consequently pass the semester.

Evaluation Criteria
Basic Bibliography

Cormen, Thomas H.; Leiserson Charles E.; Rivest Ronald L; Stein Clifford. Introduction to Algorithms, The MIT Press, 2009.

García-Bermejo, J.R. Programación Estructurada en C, Pearson/Prentice-Hall, 2008.

Hanly, Jerry R.; Koffman, Elliot B.; Problem Solving and Program Design in C, Pearson Education, 2013.

Joyanes, L. Fundamentos de la programación. Algoritmos y Estructura de Datos, McGraw-Hill, 2008.

Kernighan, Brian W.; Ritchie, Dennis M. El lenguaje de programación C, Prentice-Hall Hispanoamericana, 1991.

Kruse, Robert Leroy; Tondon, Clovis L.; Leung, Bruce P. Data structures and program design in C, Prentice-Hall, 1997.

Weiss, Mark Allen. Estructuras de datos y algoritmos, Addison-Wesley Iberoamericana, 1995.

Additional Material