Checking date: 29/04/2025 12:35:43


Course: 2025/2026

Concurrent and parallel programmming
(19484)
Academic Program of Computer Engineering via Bachelor in Computer Engineering (Study Plan 2023) (Plan: 509 - Estudio: 218)


Coordinating teacher: GARCIA SANCHEZ, JOSE DANIEL

Department assigned to the subject: Computer Science and Engineering Department

Type: Electives
ECTS Credits: 6.0 ECTS

Course:
Semester:




Requirements (Subjects that are assumed to be known)
Programming Techniques (Year 1 / Term 2) Sistemas Operativos (Year 2 / Term 2) Computer Architecture (Year 3 / Term 1)
Objectives
The main goal of this course is to acquire advanced knowledge on concurrent and parallel programming. To achieve this goal: + A deep knowledge on concurrent programming is acquired. + Typical problems in concurrent software development are considered. + Different design alternatives for concurrent data structures are discussed. + Different approaches to shared memory parallel programming are covered. + A special attention is devoted to data parallelism both in multi-core processors and accelerators. + Applications are optimized by means of parallel programming.
Learning Outcomes
K11: Knowledge and application of the fundamental principles and basic techniques of parallel, concurrent, distributed and real_time programming. KOPT_1: To know and understand in depth advanced technologies in a specific area related to computer engineering, which constitute the state of the art in their area of study, including emerging trends and recent developments. KOPT_2: To interpret scientific and technical information sources to deepen knowledge in a specific area related to computer engineering. S9: Ability to analyze and evaluate computer architectures, including parallel, distributed, mobile and decentralized platforms, under constraints such as performance, quality of service or consumption, as well as develop, validate and optimize software for them. SOPT_1: To identify, assess their technical feasibility, and apply advanced tools, methodologies, and technological solutions used in the degree field, in order to develop algorithms or systems that integrate cutting_edge and innovative technologies. SOPT_2: To apply analytical and design methodologies to solve advanced problems in the field of computer engineering, and evaluate the performance and limitations of different technological approaches, proposing improvements and alternatives. COPT_1: To conceive and develop projects that integrate advanced knowledge and provide innovative solutions in the field of study of computer engineering.
Description of contents: programme
1.- Introduction: concurrent and parallel programming 2.- Thread management and synchronization mechanisms. 3.- Concurrency memory models 4.- Synchronized and lock-free data structures design 5.- Parallel programming models and high performance computing 6.- Parallel programming in shared memory environments 7.- Data parallelism
Learning activities and methodology
** TEACHING ACTIVITIES ** AF1.THEORETICAL-PRACTICAL CLASSES. [25 hours with 100% attendance] Knowledge and concepts students must acquire. Student receive course notes and will have basic reference texts to facilitate following the classes and carrying out follow up work.Students partake in exercises to resolve practical problems and participate in workshops and an evaluation tests, all geared towards acquiring the necessary capabilities. AF2.TUTORING SESSIONS. [28 hours with 25% attendance] Individualized attendance (individual tutoring) or in-group (group tutoring) for students with a teacher. AF3.STUDENT INDIVIDUAL WORK OR GROUP WORK. [74 hours with 0% attendance] AF8.WORKSHOPS AND LABORATORY SESSIONS. [23,33 hours with 100% attendance] ** METHODOLOGIES ** MD1.THEORY CLASS. Classroom presentations by the teacher with IT and audiovisual support in which the subject`s main concepts are developed, while providing material and bibliography to complement student learning. MD2.PRACTICAL CLASS. Resolution of practical cases and problem, posed by the teacher, and carried out individually or in a group. MD3.TUTORING SESSIONS. Individualized attendance (individual tutoring sessions) or in-group (group tutoring sessions) for students with teacher as tutor. MD6.LABORATORY PRACTICAL SESSIONS. Applied/experimental learning/teaching in workshops and laboratories under the tutor's supervision.
Assessment System
  • % end-of-term-examination/test 0
  • % of continuous assessment (assigments, laboratory, practicals...) 100

Calendar of Continuous assessment


Extraordinary call: regulations

The course syllabus may change due academic events or other reasons.