This course provides an overview of the fundamental principles behind distributed systems. Covered topics include distributed programming, distributed interprocess communication and coordination, distributed transactions, replication, distributed file systems, and distributed applications such as the web and peer-to-peer systems. An introduction to advanced topics such as Cloud Computing, Grid Computing, and Mobile Computing will be also provided.
Teachers
Person in charge
Jordi Guitart Fernandez (
)
Weekly hours
Theory
2
Problems
0
Laboratory
2
Guided learning
0
Autonomous learning
6
Competences
Technical Competences
Common technical competencies
CT5 - To analyse, design, build and maintain applications in a robust, secure and efficient way, choosing the most adequate paradigm and programming languages.
CT5.6
- To demonstrate knowledge and capacity to apply the fundamental principles and basic techniques of parallel, concurrent, distributed and real-time programming.
CT6 - To demonstrate knowledge and comprehension about the internal operation of a computer and about the operation of communications between computers.
CT6.4
- To demonstrate knowledge and capacity to apply the characteristics, functionalities and structure of the Distributed Systems and Computer and Internet Networks guaranteeing its use and management, as well as the design and implementation of application based on them.
Technical Competences of each Specialization
Information technology specialization
CTI1 - To define, plan and manage the installation of the ICT infrastructure of the organization.
CTI1.3
- To select, deploy, integrate and manage information system which satisfy the organization needs with the identified cost and quality criteria.
CTI3 - To design solutions which integrate hardware, software and communication technologies (and capacity to develop specific solutions of systems software) for distributed systems and ubiquitous computation devices.
CTI3.1
- To conceive systems, applications and services based on network technologies, taking into account Internet, web, electronic commerce, multimedia, interactive services and ubiquitous computation.
CTI3.2
- To implement and manage ubiquitous systems (mobile computing systems).
CTI3.4
- To design communications software.
Transversal Competences
Third language
G3 [Avaluable] - To know the English language in a correct oral and written level, and accordingly to the needs of the graduates in Informatics Engineering. Capacity to work in a multidisciplinary group and in a multi-language environment and to communicate, orally and in a written way, knowledge, procedures, results and ideas related to the technical informatics engineer profession.
G3.1
- To understand and use effectively handbooks, products specifications and other technical information written in English.
Objectives
Understand the definition of distributed system and its possible applications, as well as challenges to be faced to design and implement it.
Related competences:
CTI3.1,
CTI3.4,
CT6.4,
CTI1.3,
Subcompetences:
Know the possible applications of a distributed system
Put examples of distributed systems
Understand the challenges to design and implement a distributed system: heterogeneity, lack of global view, security, coordination, asynchrony, openness, transparency, fault tolerance, scalability
Understand the definition of distributed system
Understand the basic system architectures in distributed systems.
Related competences:
CTI3.1,
CTI3.4,
CT6.4,
CT5.6,
Subcompetences:
Know the basic system architectures in distributed systems: centralized (client-server), decentralized (peer-to-peer), hybrid
Understand the basic mechanisms of communication in a distributed system: invocation of remote operations, message-based communication, event-based communication and channel-based communication (streams), and write distributed applications that communicate by sending messages.
Related competences:
CTI3.1,
CTI3.4,
CT6.4,
CTI1.3,
CT5.6,
Subcompetences:
Know the basic communication paradigms in distributed systems: remote procedure call, message passing, message queuing, group communication, publish/subscribe, shared data spaces, shared-memory, mobile code, stream-oriented
Write distributed applications that communicate by sending messages
Know the communication mechanism based on streams: transmission modes, quality of service
Know the event-based communication mechanism: publish/subscribe systems
Know the different types of communication in a distributed system: direct vs. indirect (space and time uncoupling), persistent vs. transient, synchronous vs. asynchronous, discrete vs. continuous
Know the communication mechanism based on messages: transient (Sockets) vs. persistent (MOM)
Know the communication mechanism by invoking remote procedures (RPC): basic operation, parameter passing, extensions of the basic model, failure handling, remote method invocation (RMI)
Understand the problem of time and events ordering in a distributed system and explain and implement the mechanisms of logic clocks to attack this problem and algorithms to synchronize physical clocks in a distributed system.
Related competences:
CTI3.1,
CT6.4,
CTI1.3,
CT5.6,
Subcompetences:
Understand the problem of time and events ordering in a distributed system
Explain and implement algorithms to synchronize physical clocks in a distributed system: Cristian (NTP), Berkeley
Explain and implement logical clocks mechanisms to attack this problem: happened-before relation, Lamport logical clocks (scalar, vector)
Describe, compare and implement algorithms for the coordination of processes in a distributed system, including the coordination necessary to ensure mutual exclusion, leader election, multicast group communication and consensus.
Related competences:
CTI3.1,
CT6.4,
CTI1.3,
CT5.6,
Subcompetences:
Describe, compare, and implement algorithms for the coordination of processes in a distributed system to ensure mutual exclusion: permission-based algorithms (centralized, Lin's, Maekawa's, Ricart & Agrawala's), token-based algorithms (token ring)
Describe, compare, and implement algorithms for the coordination of processes in a distributed system for multicast group communication: basic reliable multicast, scalable reliable multicast, ordered multicast (FIFO, causal, total), atomic multicast
Describe, compare, and implement algorithms for the coordination of processes in a distributed system for the election of leader: Bully, Ring
Understand the application of replication in a distributed system, as well as the consistency problems introduced, and describe the corresponding consistency models and their implementation.
Related competences:
CTI3.1,
CT6.4,
CTI1.3,
CTI3.2,
CT5.6,
Subcompetences:
Describe specific implementations of consistency models: primary-based protocols (remote-write, local-write) and replicated-write protocols (active replication, quorum-based protocols)
Understand the application of replication in a distributed system, in addition to the consistency problems introduced
Describe the data-centric relaxed consistency models: usage of synchronization variables
Know the implementation details of consistency models in relation to the replica placement (permanent, initiated by the server, initiated by the client) and the propagation of updates (push-pull protocols)
Describe the data-centric strong consistency models: strict, sequential, causal, FIFO
Understand and compare basic features of name resolution services for flat, structured and attribute-based names, and implement and evaluate one of these systems.
Related competences:
CTI3.1,
CT6.4,
CTI1.3,
CTI3.2,
Subcompetences:
Implement and evaluate a simple DNS service
Know and compare the basic features of name resolution services for flat names: broadcasting, forwarding pointers, home-based solutions, DHTs
Know and compare the basic characteristics of name resolution services for structured names: name spaces, iterative resolution, recursive resolution, DNS
Know and compare the basic features of name resolution services for attribute-based names: directory services (LDAP)
Understand and compare the basic characteristics of distributed filesystems (e.g. NFS).
Related competences:
CTI3.1,
CT6.4,
CTI1.3,
CTI3.2,
Subcompetences:
Understand the semantics of file sharing: UNIX semantics, session semantics, immutable files, transactional semantics
Understand and compare the basic features of the NFS distributed file system
Understand and compare the basic characteristics of the distributed filesystem Coda
Know the architectures of distributed file systems: remote access model, upload / download model, the basic idea of clustered architectures (stripping + replication)
Understand and compare the basic characteristics of Web-based distributed systems: web servers, application servers, Web Services, Content Distribution Networks (CDN), and implement and evaluate one of these systems.
Related competences:
CTI3.1,
CTI3.4,
CT6.4,
CTI1.3,
CT5.6,
Subcompetences:
Implement and evaluate a simple web server
Know the synchronization mechanisms in distributed Web-based systems
Know the communication protocols in distributed Web-based systems: HTTP, SOAP, WSDL
Know the mechanisms of replication and caching in distributed Web-based systems: Proxies, Content Distribution Networks (CDN): Akamai, redirection schemes (URL Rewriting, DNS redirection)
Know the architectures of distributed Web-based systems: client/server, servlets, server clusters, Web Services
Know the name services in distributed Web-based systems: URL, DNS, UDDI
Understand the Peer-to-Peer (P2P) computing model, compare the characteristics of non-structured P2P systems and structured systems based on DHTs, and implement and evaluate one of these systems.
Related competences:
CTI3.1,
CT6.4,
CTI1.3,
CT5.6,
Subcompetences:
Understand the Peer-to-Peer (P2P) computing model, its advantages, and its applications
Compare the characteristics of non-structured centralized P2P systems: BitTorrent
Compare the characteristics of structured P2P systems based on DHTs: Chord: organization of the ring, inserting items, searching items with finger tables, inserting nodes
Implement and evaluate a structured P2P system
Compare the characteristics of non-structured hierarchical P2P systems: FastTrack
Compare the characteristics of non-structured decentralized P2P systems with flooding-based search: Gnutella
Know the most important distributed computing paradigms (volunteer computing, Grid and Cloud) and their characteristics.
Related competences:
CTI3.1,
CT6.4,
CTI1.3,
Subcompetences:
Know the Cloud paradigm for distributed computing, its characteristics, and its applications: Utility Computing, type of Clouds (public, private, community, hybrid), differences with Grid computing, Cloud Services (IaaS, PAAS, SaaS), base technologies for implementation, Cloud infrastructure (datacenters), obstacles to the consolidation of the Cloud
Know the Grid paradigm for distributed computing, its characteristics and its applications: Virtual Organizations (VO), OGSA architecture, difference from the cluster and distributed computing
Know the volunteeer distributed computing paradigm: BOINC
Know the paradigms of Mobile and Ubiquitous Computing and their problems.
Related competences:
CTI3.1,
CT6.4,
CTI3.2,
Subcompetences:
Know the paradigms of Mobile and Ubiquitous Computing and their problems: volatility, association, interoperability, sensors and context-awareness, adaptation
Understand articles, assignments, and any source of technical information written in English
Related competences:
G3.1,
Contents
Concepts underlying distributed systems
Definition of a distributed system. Potential applications of a distributed system. Examples of distributed systems. Challenges to design and implement a distributed system: heterogeneity, lack of global view, security, coordination, asynchrony, openness transparency, fault tolerance, scalability. Basic system architectures in distributed systems: centralized (client-server), decentralized (peer-to-peer), hybrid
Interprocess communication
Types of communication in a distributed system: direct vs. indirect (space and time uncoupling), persistent vs. transient, synchronous vs. asynchronous, discrete vs. continuous. Basic communication paradigms in distributed systems: remote procedure call, message passing, message queuing, group communication, publish/subscribe, shared data spaces, shared-memory, mobile code, stream-oriented. Invocation of remote procedures (RPC): basic operation, parameter passing, extensions of the basic model, failure handling, remote method invocation (RMI). Message-oriented communication based on : transient (Sockets) vs. persistent (MOM). Event-based communication: publish/subscribe systems. Stream-based communication: transmission modes, quality of service
Time and order
Time and events ordering in a distributed system. Logical clocks: happened-before relation, Lamport logical clocks (scalar, vector). Algorithms to synchronize physical clocks in a distributed system: Cristian (NTP), Berkeley.
Coordination and agreement
Coordination of processes in a distributed system to ensure mutual exclusion: permission-based algorithms (centralized, Lin's, Maekawa's, Ricart & Agrawala's), token-based algorithms (token ring). Coordination of processes in a distributed system for the election of leader: Bully, Ring. Coordination of processes in a distributed system for multicast group communication: basic reliable multicast, scalable reliable multicast, ordered multicast (FIFO, causal, total), atomic multicast.
Consistency and replication
Replication and consistency in a distributed system. Data-centered strong consistency models: strict, sequential, causal, FIFO. Data-centric relaxed consistency models: usage of synchronization variables. Client-centric consistency models: eventual, monotonic-read, monotonic-write, read-your-writes, writes follow-reads. Replica placement (permanent, initiated by the server, initiated by the client) and propagation of updates (push-pull protocols). Implementations of consistency models: primary-based protocols (remote-write, local-write) and replicated-write protocols (active replication, quorum-based protocols)
Naming systems
Name resolution services for flat names: broadcasting, forwarding pointers, home-based solutions, DHTs. Name resolution services for structured names: name spaces, iterative resolution, recursive resolution, DNS. Name resolution services for attribute-based names: directory services (LDAP)
Distributed file systems
Architectures of distributed file systems: remote access model, upload / download model, the basic idea of clustered architectures (stripping + replication). Semantics of file sharing: UNIX semantics, session semantics, immutable files, transactional semantics. Basic features of the NFS distributed file system. Basic features of the Coda distributed file system
Distributed Web-based systems
Architectures of distributed Web-based systems: client/server, servlets, server clusters, Web Services. Communication protocols in distributed Web-based systems: HTTP, SOAP, WSDL. Name services in distributed Web-based systems: URL, DNS, UDDI. Synchronization mechanisms in distributed Web-based systems. Replication and caching in distributed Web-based systems: Proxies, Content Distribution Networks (CDN): Akamai, redirection schemes (URL Rewriting, DNS redirection)
Peer-to-Peer (P2P) systems
Peer-to-Peer (P2P) computing model, its advantages, and its applications. Non-structured centralized P2P systems: BitTorrent. Non-structured decentralized P2P systems with flooding-based search: Gnutella. Non-structured hierarchical P2P systems: FastTrack. Structured P2P systems based on DHTs: Chord: organization of the ring, inserting items, searching items with finger tables, inserting nodes; Kademlia: organization of the tree and node state, node lookup and join, finding and storing items.
Distributed computing systems
Volunteeer distributed computing paradigm: BOINC. Grid paradigm for distributed computing, its characteristics and its applications: Virtual Organizations (VO), OGSA architecture, difference from the cluster and distributed computing. Cloud paradigm for distributed computing, its characteristics, and its applications: Utility Computing, type of Clouds (public, private, community, hybrid), differences with Grid computing, Cloud Services (IaaS, PAAS, SaaS), base technologies for implementation, Cloud infrastructure (datacenters), obstacles to the consolidation of the Cloud
Mobile and ubiquitous systems
Mobile and ubiquitous systems: volatility, association, interoperability, sensors and context-awareness, adaptation
Activities
ActivityEvaluation act
Developing the lesson "Concepts underlying distributed systems"
Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
Theory: Definition of a distributed system. Potential applications of a distributed system. Examples of distributed systems. Challenges to design and implement a distributed system: heterogeneity, lack of global view, concurrency, lack of a single point of control, security, asynchrony, openness transparency, fault tolerance, scalability. Basic architectural styles in distributed systems: layered, object-based, data-centered, event-based, shared data spaces. Basic system architectures in distributed systems: centralized (client-server), decentralized (peer-to-peer), hybrid
Autonomous learning: Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
Preparation of the seminar with the help of the support material. Implementation and analysis of the requested mechanism. Making of a report of the seminar explaining the work done and the conclusions drawn
Laboratory: Implementation and analysis of the requested mechanism.
Read of the proposed article. Understanding and assimilation of the contents of the article. Making of a reading report Objectives:12313 Week:
2
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
3h
Developing the lesson "Interprocess communication"
Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
Theory: Types of communication in a distributed system: persistent vs. transient, synchronous vs. asynchronous. Invocation of remote procedures (RPC): basic operation, parameter passing, extensions of the basic model, failure handling, remote method invocation (RMI). Communication based on messages: transient (Sockets) vs. persistent (MOM). Communication based on streams: transmission modes, quality of service
Autonomous learning: Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
Preparation of the seminar with the help of the support material. Implementation and analysis of the requested mechanism. Making of a report of the seminar explaining the work done and the conclusions drawn
Laboratory: Implementation and analysis of the requested mechanism.
Making of a report of the seminar explaining the work done and the conclusions drawn Objectives:12313 Week:
3
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
4h
Developing the lesson "Time and order"
Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
Theory: Time and events ordering in a distributed system. Logical clocks: happened-before relation, Lamport logical clocks (scalar, vector). Algorithms to synchronize physical clocks in a distributed system: Cristian (NTP), Berkeley.
Autonomous learning: Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
Read of the proposed article. Understanding and assimilation of the contents of the article. Making of a reading report Objectives:413 Week:
4
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
3h
Developing the lesson "Coordination and agreement"
Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
Theory: Coordination of processes in a distributed system to ensure mutual exclusion: permission-based algorithms (centralized, decentralized using a P2P system, Ricart and Agrawal's distributed system using totally ordered multicast), token-based algorithms (token ring). Coordination of processes in a distributed system for the election of leader: Bully, Ring. Coordination of processes in a distributed system for multicast group communication: basic reliable multicast, scalable reliable multicast, ordered multicast (FIFO, causal, total), atomic multicast.
Autonomous learning: Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
Preparation of the seminar with the help of the support material. Implementation and analysis of the requested mechanism. Making of a report of the seminar explaining the work done and the conclusions drawn
Laboratory: Implementation and analysis of the requested mechanism.
Making of a report of the seminar explaining the work done and the conclusions drawn Objectives:4513 Week:
5
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
4h
Reading assignment #3
Read of the proposed article. Understanding and assimilation of the contents of the article. Making of a reading report Objectives:5613 Week:
6
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
3h
Developing the lesson "Consistency and replication"
Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
Theory: Replication and consistency in a distributed system. Data-centered strong consistency models: strict, sequential, causal, FIFO. Data-centric relaxed consistency models: usage of synchronization variables. Client-centric consistency models: eventual, monotonic-read, monotonic-write, read-your-writes, writes follow-reads. Replica placement (permanent, initiated by the server, initiated by the client) and propagation of updates (push-pull protocols). Implementations of consistency models: primary-based protocols (remote-write, local-write) and replicated-write protocols (active replication, quorum-based protocols)
Autonomous learning: Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
Preparation of the seminar with the help of the support material. Implementation and analysis of the requested mechanism. Making of a report of the seminar explaining the work done and the conclusions drawn
Laboratory: Implementation and analysis of the requested mechanism.
Making of a report of the seminar explaining the work done and the conclusions drawn Objectives:5613 Week:
8
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
6h
Reading assignment #4
Read of the proposed article. Understanding and assimilation of the contents of the article. Making of a reading report Objectives:78913 Week:
8
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
3h
Developing the lesson "Naming systems"
Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
Theory: Name resolution services for flat names: broadcasting, forwarding pointers, home-based solutions, DHTs, hierarchical solutions. Name resolution services for structured names: name spaces, iterative resolution, recursive resolution, DNS. Name resolution services for attribute-based names: directory services (LDAP)
Autonomous learning: Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
Assimilation of the concepts of the course and conduct of the examination Objectives:1234567 Week:
10
Theory
1.5h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
7.5h
Developing the lesson "Distributed file systems"
Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
Theory: Architectures of distributed file systems: remote access model, upload / download model, the basic idea of clustered architectures (stripping + replication). Semantics of file sharing: UNIX semantics, session semantics, immutable files, transactional semantics. Basic features of the NFS distributed file system. Basic features of the CIFS/SMB distributed file system
Autonomous learning: Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
Preparation of the seminar with the help of the support material. Implementation and analysis of the requested mechanism. Making of a report of the seminar explaining the work done and the conclusions drawn
Laboratory: Implementation and analysis of the requested mechanism.
Making of a report of the seminar explaining the work done and the conclusions drawn Objectives:5613 Week:
11
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
6h
Reading assignment #5
Read of the proposed article. Understanding and assimilation of the contents of the article. Making of a reading report Objectives:1013 Week:
11
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
3h
Developing the lesson "Distributed Web-based systems"
Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
Theory: Architectures of distributed Web-based systems: client/server, servlets, server clusters, Web Services. Communication protocols in distributed Web-based systems: HTTP, SOAP, WSDL. Name services in distributed Web-based systems: URN, URL, DNS, UDDI. Synchronization mechanisms in distributed Web-based systems: WebDAV. Replication and caching in distributed Web-based systems: Proxies, Content Distribution Networks (CDN): Akamai, redirection schemes (URL Rewriting, DNS redirection)
Autonomous learning: Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
Developing the lesson "Peer-to-Peer (P2P) systems"
Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
Theory: Peer-to-Peer (P2P) computing model, its advantages, and its applications. Non-structured centralized P2P systems: BitTorrent. Non-structured decentralized P2P systems with flooding-based search: Gnutella. Structured P2P systems based on DHTs: Chord: organization of the ring, inserting items, searching items with finger tables, inserting nodes.
Autonomous learning: Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
Preparation of the seminar with the help of the support material. Implementation and analysis of the requested mechanism. Making of a report of the seminar explaining the work done and the conclusions drawn
Laboratory: Implementation and analysis of the requested mechanism.
Making of a report of the seminar explaining the work done and the conclusions drawn Objectives:7913 Week:
13
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
4h
Developing the lesson "Distributed computing systems"
Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
Theory: Volunteeer distributed computing paradigm: BOINC. Grid paradigm for distributed computing, its characteristics and its applications: Virtual Organizations (VO), difference from the cluster and distributed computing, architecture and implementation: OGSA, WSRF, GT. Cloud paradigm for distributed computing, its characteristics, and its applications: Utility Computing, Service Level Agreements (SLA), type of Clouds (public, private), differences with Grid computing, Cloud Services (IaaS, PAAS, SaaS) architecture and implementation: virtualization, HDFS, Map-Reduce, Cloud infrastructure (datacenters), obstacles to the consolidation of the Cloud
Autonomous learning: Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
Read of the proposed article. Understanding and assimilation of the contents of the article. Making of a reading report Objectives:111213 Week:
14
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
3h
Developing the lesson "Mobile and ubiquitous systems"
Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
Theory: Mobile and ubiquitous systems: volatility, association, interoperability, sensors and context-awareness, adaptation
Autonomous learning: Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
Preparation of the seminar with the help of the support material. Implementation and analysis of the requested mechanism. Making of a report of the seminar explaining the work done and the conclusions drawn Objectives:1013 Week:
15
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
6h
Final Exam
Assimilation of the concepts of the course and conduct of the examination Objectives:123456789101112 Week:
15 (Outside class hours)
Theory
3h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
9h
Teaching methodology
During the course there will be two types of activities:
a) Activities focused on the acquisition of theoretical knowledge.
b) Activities focused on the acquisition of knowledge through experimentation by implementing and evaluating empirically in the laboratory the mechanisms explained at a theoretical level.
The theoretical activities include participatory lecture classes, which explain the basic contents of the course, besides the reading of articles/reports, either as preparation for lectures or as to facilitate the subsequent development of important concepts. In order to work the transversal competence the articles will be written in English.
The practical activities include seminar laboratories where students implement (in groups of 2) the mechanisms described in the lectures. The seminars require a preparation by reading the statement and supporting documentation, and a further elaboration of the conclusions in a report. In order to work the transversal competence the seminar documentation will be written in English.
Evaluation methodology
A) Individual written mid-term exam.
B) Individual written final exam.
-- B1) Evaluation of contents included in the mid-term exam, for the students that failed.
-- B2) Evaluation of contents not included in the mid-term exam, for all the students.
C) Assessment of reading reports and article discussion.
D) Evaluation of the laboratory seminars.
For the students that have passed the mid-term exam (A>=5) and do not perform the B1 part of the final exam, the final grade will be calculated in the following way:
Final Grade = 0.25 x A + 0.25 x B2 + 0.2 x C + 0.3 x D
Otherwise, the final grade will be calculated as follows:
Final Grade = 0.25 x B1 + 0.25 x B2 + 0.2 x C + 0.3 x D
In any case, the arithmetic mean of the grades of the mid-term (A or B1) and the final (B2) exams must not be lower than 3.5. If this condition is not fulfilled, the Final Grade will be calculated as the arithmetic mean of the grades of these two exams, ignoring the rest of activities.
The grading of the transversal competence will be done through the evaluation of the activities C and D, which provide the supporting documentation in English.