Estudia
- Artes y humanidades
- Ciencias
- Ciencias de la salud
- Ciencias sociales y jurídicas
-
Ingeniería y arquitectura
- Doble Grado en Ingeniería Civil e Ingeniería de los Recursos Mineros y Energéticos
- Doble Grado en Ingeniería en Tecnologías y Servicios de Telecomunicación / Grado en Ciencia e Ingeniería de Datos
- Doble Grado en Ingeniería Informática del Software / Grado en Matemáticas
- Doble Grado en Ingeniería Informática en Tecnologías de la Información / Grado en Ciencia e Ingeniería de Datos
- Grado en Ciencia e Ingeniería de Datos
- Grado en Ingeniería Civil
- Grado en Ingeniería de los Recursos Mineros y Energéticos
- Grado en Ingeniería de Organización Industrial
- Grado en Ingeniería de Tecnologías Industriales
- Grado en Ingeniería de Tecnologías Mineras
- Grado en Ingeniería Eléctrica
- Bachelor´s Degree in Industrial Electronics and Automatics Engineering
- Grado en Ingeniería en Geomática
- Grado en Ingeniería en Tecnologías y Servicios de Telecomunicación
- Grado en Ingeniería Forestal y del Medio Natural
- Grado en Ingeniería Forestal y del Medio Natural (En extinción)
- Grado en Ingeniería Informática del Software
- Grado en Ingeniería Informática en Tecnologías de la Información
- Grado en Ingeniería Mecánica
- Grado en Ingeniería Química
- Grado en Ingeniería Química Industrial
- Grado en Marina
- Grado en Náutica y Transporte Marítimo
- Información, acceso y becas
Tecnologías y Paradigmas de la Programación
- Prácticas de Aula/Semina (7 Hours)
- Prácticas de Laboratorio (21 Hours)
- Tutorías Grupales (2 Hours)
- Clases Expositivas (28 Hours)
The module Technologies and Paradigms of Programming (TPP) is taught in the second semester in the second Degree course. It is part of the subject of Programming (PR), Software Application (SA), and six more modules: Fundamentals of Informatics (FIN), Introduction to Programming (INP), Programming Methodology (PM), Data Structures (DS), Algorithmics (ALG) and Concurrent and Parallel Programming (CPP). In the PR module, the main content which is covered by the module TTP are other paradigms which are different from the object oriented programming and imperative. The content of this module is fundamental for other modules. By and large, for most modules in relation to software development, and especially for ALG and DS modules. This is due to the fact that the module provides methodological and technological tools which complement naturally and integrate with the object oriented paradigm which is also studied by students. The modules INP, PM are basic in order to be able to do the module TPP successfully.
It is expected that the student can learn with this module the following competences from the Bachelor’s Degree in Informatics Engineering in Information Technology: Specific Competences ECR8 y ECR14.3.
Although, there are not requirements in this module, it can be made a series of recommendations which will facilitate the learning process of the content of this module.
In this module is relevant the acquired knowledge from the modules of Programming from the first course. Those modules allow students to design and develop correct programs in the object oriented paradigm. It is also taken the computation principles and automata theory from the module Automata Theory and Discrete Mathematics, because some techniques from this module are based on part of their content.
This module covers the competences ECR8 and ECR14.3. In the competence ECR8 demands to develop in the students the capacity to analyse, design, build and maintain applications in a robust, safe and efficient, choosing the most appropriate paradigms and programming languages. The learning goals for this competence can be summarised in four Software perspectives (or subcompetences):
- Robustness (ECR8.1)
- Know and learn good design and implementation software practices in order to alleviate and prevent software errors.
- Know and learn how to apply mechanisms for controlling errors in execution time.
- Security (ECR8.2)
- Know security mechanisms in the studied programming paradigms.
- Develop an application according to the specification of a given problem in order to guarantee the security conditions in the process and in the environment.
- Efficiency (ECR8.3)
- Know the evaluation mechanisms of software performance.
- Evaluate software performance according to a paradigm, a language and an environment.
- Paradigms and Languages (ECR8.4)
- Know paradigms of logical and functional programming.
- Know formal bases of logical and functional programming.
- Develop a solution based on logical programming for a given specification of a problem.
- Develop a solution based on functional programming for a given specification of problem.
- Know what a deductive data base is.
- Know the notion of pattern design.
- Know the basic pattern designs.
- Apply a pattern design to a given specification of a problem.
- Evaluate the programming paradigm, and the most appropriate language to a given specification of a problem.
- Choose the programming paradigm, and the most appropriate language to a given specification of a problem.
This competence is shared by a big number of modules from the Programming degree. Specifically, this module highlights the Declarative Language and the introduction of Design Patterns as a tool for the Software Development Engineer.
The competence ECR14.3 is focused on guiding the student in the understanding and application of fundamental principles and basic techniques for real time programming. The learning results covered by this competence are as follows:
- Know the objectives of real time programming.
- Know and apply basic techniques (static and dynamic) for scheduling tasks: RM, DM, ESDF.
- Know and apply the viability analysis techniques of a set of tasks.
- Know and apply the synchronization mechanisms of tasks: locks with priority ceiling.
- Know the notion of soft real time and quality of service.
- Develop a basic application using the Object Oriented Paradigm which obeys some real time restrictions according to a given specification.
Specifically, this module extends the Object Oriented Paradigm with the notions of programming orientated towards events and the introduction to programming with temporal restrictions.
Theoretical contents:
T1. Declarative paradigm.
T2. Design orientated towards patterns.
T3. Paradigm orientated towards events.
T4. Real time paradigm.
Practical contents:
P1. Exercises with the declarative paradigm.
P2. Exercises with design patterns.
P3. Exercises with paradigms orientated towards events.
P4. Exercises with real time paradigm.
The proposed model for the teaching activity of the module and the personal students work are summarised in the following tables. It is included the corresponding percentages according to the total number of European credits in the module:
CLASSROOM TEACHING | NOT CLASSROOM | ||||||||
Topics | A | B | C | D | E | F | T | G | T |
T1 | 24,5 | 11 | 0,5 | 1 | 12,5 | 12 | 12 | ||
T2 | 24,5 | 6 | 0,5 | 1 | 7,5 | 17 | 17 | ||
T3 | 21,5 | 7 | 0,5 | 1 | 8,5 | 13 | 13 | ||
T4 | 2,5 | 1 | 0,5 | 1,5 | 1 | 1 | |||
P1 | 27 | 1 | 10 | 11 | 16 | 16 | |||
P2 | 14 | 3 | 1 | 0 | 4 | 10 | 10 | ||
P3 | 34 | 4 | 10 | 14 | 20 | 20 | |||
P4 | 2 | 1 | 0 | 1 | 1 | 1 | |||
Total | 150 | 28 | 7 | 20 | 2 | 3 | 60 | 90 | 90 |
A. Total hours | D. Lab practice | G. Autonomous work |
MODALITIES | Hours | % | Total | |
Classroom | Classroom teaching | 28 | 18,67 | 60 (40%) |
Classroom practice | 7 | 4,67 | ||
Lab practices | 20 | 13,33 | ||
Group tutorials | 2 | 1,33 | ||
Evaluation sessions | 3 | 2,00 | ||
Not classroom | Autonomous work | 90 | 60,00 | 90 (60%) |
The module has two blocks: theory and practices, which will be evaluated independent one from another. The theory block has a weight of 30% from final mark, and the practice block the remaining 70%.
Ordinary call
In the ordinary call will be evaluated in-person and individually, both theory and practice, according to the following table:
Blocks | ||
Contents | Theory | Practice |
The declarative paradigm | BT1 | BP1 |
Design orientated towards patterns | B2 | |
Paradigm orientated towards events. The real time paradigm. | BT3* | BP3* |
|
The total number of hours scheduled to the study of the different blocks are, approximately, a third part of the time that the student has to dedicate to the module, i.e., 50h per block. Therefore, the final mark will be worked out according to the following formulas:
B1 = (BT1 * 0'3 + BP1 * 0'7)
B3 = (BT3 * 0'3 + BP3 * 0'7)
Global_Mark = MEAN( B1, B2, B3 )
It is necessary to pass every block (B1, B2 and B3) in an independent manner.
Extraordinary calls
In the extraordinary calls, the evaluation will be equivalent to the one performed in the ordinary call, but only one exam has to be done for both theory and practice.
Differentiated assessment
The evaluation for students with a differentiate evaluation approved will be the same procedure that the one for extraordinary calls.
- Declarative Programming:
- How to Design Programs, An Introduction to Computing and Programming, Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi, MIT Press, 2003. http://www.htdp.org/
- Oliver Sturm. Functional Programming in C#: Classic Programming Techniques for Modern Projects. Wiley. 2011.
- Prolog Programming in Depth. Covington Nute & Vellino. Prentice Hall, 1997
- Programming based on events:
- Event-Driven Programming. Frederic P Miller, Agnes F Vandome, John McBrewster. VDM . Publishing House Ltd., 2009.
- Iniciación a la programación utilizando lenguajes visuales orientados a eventos. Adolfo Lozano Tello. Ed.Bellisco Ediciones Técnicas y Científicas, 2001.
- Design Patterns:
- Patrones de diseño "Elementos de sofware orientado a objetos reutilizable". Gamma, Erich Helm, Richard; Johnson, Ralph E. Addison Wesley Publishers, 2002.
- Programming in Real Time:
- Alan Burns & Andy Wellings. Real-Time Systems and Programming Languages. 4th ed. Addison-Wesley, 2009. ISBN 978-0-321-41745-9.