General Data

Code: V05G301V01306
Type of credits: ECTS
Number of credits: 6.00
ISCED-F: Software and applications development and analysis
Status: Optional
Type: Course
Academic Year:
Term:
Languages: Spanish
Available for Mobility Students: No
Restricted to alliance: No

Coordination

García Duque, Jorge
jgd@det.uvigo.es

Description

The main goal of this subject is to provide the foundations of the synchronisation and communication among processes in centralised and distributed systems.

Requirements

Subjects that it is recommended to have taken before:

  • Programming I (V05G301V01105)
  • Programming II (V05G301V01110)

Instructors

García Duque, Jorge

Contents

  • Introduction to Concurrent Programming
    • Concepts of concurrence, parallelism and multitasking
    • Interleaving of atomic instructions
    • Precedence graphs
  • The critical section problem
    • Definition of the problem
    • Busy waiting
    • Starvation
    • Deadlock
    • Dekker’s algorithm
    • Peterson’s algorithm
  • Concurrent Programming Constructs
    • Semaphores
    • Producer-consumer problem
    • Dining philosophers problem
    • Monitors
    • Condition variables
    • Readers-writers problem
  • Deadlock
    • Introduction and definition
    • Necessary conditions
    • Deadlock prevention
    • Deadlock avoidance
    • Detection and recovery
  • Communication among processes
    • Message passing
    • Remote Procedure Call (RPC)
  • Distributed Programming
    • Introduction to distributed systems
    • Distributed mutual exclusion
    • Ricart-Agrawala algorithm
    • Token ring algorithms
    • Consensus:
      • Crash failures
      • Byzantine failures

Learning Outcomes

  • B3
    CG3: The knowledge of basic subjects and technologies that enables the student to learn new methods and technologies, as well as to develop versatility to adapt to new situations
  • B4
    CG4: The ability to solve problems with initiative, make creative decisions, and communicate and transmit knowledge and skills, understanding the ethical and professional responsibility of a Technical Telecommunication Engineer
  • B9
    CG9: The ability to work in multidisciplinary and multilingual environments, and to communicate (written and oral) knowledge, procedures, results, and ideas related to Telecommunications and Electronics
  • C33
    CE33/TEL7: The ability to program network and distributed applications and services
  • D2
    CT2: Understanding Engineering within a framework of sustainable development
  • D3
    CT3: Awareness of the need for lifelong learning and continuous quality improvement, with a flexible, open, and ethical attitude toward diversity and respect for fundamental rights
  • D4
    CT4: Encouraging cooperative work and developing skills such as communication, organization, planning, and responsibility in multilingual and multidisciplinary environments, promoting equality, peace, and respect for fundamental rights

Planned Activities

  • Workshops
    Each group of students designs and implements a medium-complexity software project. The task is developed in successive steps, which are discussed and validated during face-to-face sessions. Continuous feedback is provided to improve proposed solutions when needed.
    This methodology is aimed at acquiring competences CG4, CG9, and CT4
  • Practices through ICT
    Students solve practical problems in laboratory sessions under the supervision of the teaching staff.
    This methodology is aimed at acquiring competences CE33/TEL7 and CT3
  • Lecturing
    Presentation of ideas, concepts, techniques, and algorithms for each topic in the syllabus.
    This methodology is aimed at acquiring competences CG3 and CT2

 

Assessment Methods and Criteria

Evaluation methods, qualification and learning results:

  • Objective questions exam
    • Assessment of theoretical contents covered in lectures
    • Qualification: 12.5%
    • Learning results: B3, B4, C33, D2
  • Laboratory practice
    • Evaluation of work carried out during each laboratory session
    • Includes personalised questions to assess each student individually
    • Qualification: 20%
    • Learning results: B3, B4, C33, D2, D3
  • Essay (Project presentation)
    • Final workshop session: students present and defend their project design and solution
    • Includes debate with classmates and teachers
    • Individual evaluation through personalised questions
    • Qualification: 30%
    • Learning results: B9, C33, D3, D4
  • Objective questions exam (additional tests)
    • Three additional tests assessing theoretical contents from lectures
    • Qualification: 12.5% each
    • Learning results: B3, B4, C33, D2

Other comments on evaluation:

  • Assessment options
    • Continuous Assessment (default)
    • Option to switch to exam-only (global assessment) until the beginning of the final exam
  • Students following continuous assessment are considered present in the workshop component

Continuous assessment details:

  • Final grade is the sum of three components:
    • 1. Four test exams
      • Evaluate lecture contents
      • Conducted during lecture sessions (last one in workshop session)
      • Score: up to 1.25 points each
    • 2. Six practical tests
      • Conducted at the end of each lab session
      • Based on validation of obtained results
      • Score: up to ~0.33 points each
    • 3. Project presentation
      • Workshop project presentation
      • Score: up to 3 points

Requirements to pass via continuous assessment:

  • Score ≥ 2 points مجموع in test exams
  • Score > 0 in at least 4 out of 6 practical tests
  • Attend all workshop sessions and obtain > 0 in project presentation
  • If any condition is not met → maximum final grade = 4.9 (fail)

Global assessment:

  • Single final exam worth 10 points
  • Scheduled according to the official calendar

Extraordinary exam and end-of-program exam:

  • Same rules as global assessment