Guías Docentes Electrónicas
1. General information
Course:
CONCURRENT AND REAL TIME PROGRAMMING
Code:
42317
Type:
CORE COURSE
ECTS credits:
6
Degree:
347 - DEGREE PROGRAMME IN COMPUTER SCIENCE ENGINEERING (CR)
Academic year:
2021-22
Center:
108 - SCHOOL OF COMPUTER SCIENCE OF C. REAL
Group(s):
20  21  22 
Year:
2
Duration:
C2
Main language:
English
Second language:
Spanish
Use of additional languages:
English Friendly:
N
Web site:
Virtual space of the subject available at https://campusvirtual.uclm.es
Bilingual:
Y
Lecturer: TOBIAS DIAZ DIAZ-CHIRON - Group(s): 22 
Building/Office
Department
Phone number
Email
Office hours
Fermín Caballero/Despacho de Asociados
TECNOLOGÍAS Y SISTEMAS DE INFORMACIÓN
Tobias.Diaz@uclm.es
Available at https://esi.uclm.es/categories/profesorado-y-tutorias

Lecturer: MIGUEL ANGEL REDONDO DUQUE - Group(s): 21 
Building/Office
Department
Phone number
Email
Office hours
Fermín Caballero / A 1.2
TECNOLOGÍAS Y SISTEMAS DE INFORMACIÓN
3717
miguel.redondo@uclm.es
Available at https://esi.uclm.es/categories/profesorado-y-tutorias

Lecturer: DAVID VALLEJO FERNANDEZ - Group(s): 20  22 
Building/Office
Department
Phone number
Email
Office hours
Fermín Caballero / 2.01
TECNOLOGÍAS Y SISTEMAS DE INFORMACIÓN
6494
david.vallejo@uclm.es
Available at https://esi.uclm.es/categories/profesorado-y-tutorias

2. Pre-Requisites

This subject relies on the competences and learning outcomes gained in the following courses:

  • Programming Fundamentals I
  • Programming Fundamentals II
  • Operating Systems I

The course Operating Systems I represents the most important prerequisite.

3. Justification in the curriculum, relation to other subjects and to the profession

Based on the evolution of modern operating systems and multi-processing, the course Concurrent and Real-Time Programming offers students the possibility of mastering the fundamental techniques of concurrency management, such as synchronization mechanisms and inter-process communication. Additionally, real-time programming is another relevant topic to be able to design and develop critical systems that plays an important role in our everyday's live.


4. Degree competences achieved in this course
Course competences
Code Description
BA04 Basic knowledge about the uses and programming of computers, operating systems, data bases, and digital programmes with applications in engineering.
CO06 Knowledge and application of basic algorithms in digital technologies for the development of solutions, analysing their appropriateness and complexity.
CO07 Knowledge, design, and efficient use of types of data and structures which arise as most appropriate in problem solving.
CO08 Ability to analyse, design, build and maintain applications in a strong, safe, and efficient manner by selecting the most appropriate paradigms and programming languages.
CO14 Knowledge and application of fundamental principles and basic techniques on parallel, converging, distributed, and real time programming.
INS01 Analysis, synthesis, and assessment skills.
INS04 Problem solving skills by the application of engineering techniques.
PER01 Team work abilities.
PER02 Ability to work in multidisciplinary teams.
PER04 Interpersonal relationship skills.
PER05 Acknowledgement of human diversity, equal rights, and cultural variety.
SIS01 Critical thinking.
SIS03 Autonomous learning.
UCLM02 Ability to use Information and Communication Technologies.
5. Objectives or Learning Outcomes
Course learning outcomes
Description
Resolution of complex problems and responses in real time by the use of concurrent programming concepts and tools, planning their tasks, as well as an efficient utilization of memory.
Additional outcomes
Not established.
6. Units / Contents
  • Unit 1: Basic concepts
    • Unit 1.1: The process concept
    • Unit 1.2: Foundations of concurrent programming
    • Unit 1.3: Foundations of real-time programming
  • Unit 2: Semaphores and shared-memory
    • Unit 2.1: Basic concepts
    • Unit 2.2: Implementation
    • Unit 2.3: Classical synchronization problems
    • Unit 2.4: Basic synchronization patterns
  • Unit 3: Message passing
    • Unit 3.1: Basic concepts
    • Unit 3.2: Implementation
    • Unit 3.3: Classical synchronization patterns
  • Unit 4: Other synchronization mechanisms
    • Unit 4.1: Introduction
    • Unit 4.2: Concurrency in Ada
    • Unit 4.3: Protected objects
    • Unit 4.4: Monitors
  • Unit 5: Scheduling in real-time systems
    • Unit 5.1: Introduction
    • Unit 5.2: The concept of real-time
    • Unit 5.3: Scheduling schemes
  • Unit 6: Reliability and fault tolerance
    • Unit 6.1: Basic concepts
    • Unit 6.2: Prevention and fault tolerance
    • Unit 6.3: Static and dynamic redundancy
    • Unit 6.4: Safety, reliability and dependability
ADDITIONAL COMMENTS, REMARKS

Labs

+ Process management

+ Semaphores and shared-memory

+ Message passing


7. Activities, Units/Modules and Methodology
Training Activity Methodology Related Competences ECTS Hours As Com Description
Class Attendance (theory) [ON-SITE] Lectures BA04 CO06 CO07 CO08 CO14 0.72 18 N N Teaching of the subject matter by lecturer (MAG)
Individual tutoring sessions [ON-SITE] BA04 CO06 CO07 CO08 CO14 0.18 4.5 N N Individual or small group tutoring in lecturer¿s office, classroom or laboratory (TUT)
Study and Exam Preparation [OFF-SITE] Self-study BA04 CO06 CO07 CO08 CO14 SIS01 SIS03 2.1 52.5 N N Self-study (EST)
Other off-site activity [OFF-SITE] Practical or hands-on activities BA04 CO06 CO07 CO08 CO14 INS01 INS04 SIS03 0.6 15 N N Lab practical preparation (PLAB)
Problem solving and/or case studies [ON-SITE] Problem solving and exercises BA04 CO06 CO07 CO08 CO14 INS04 PER01 PER04 PER05 SIS01 SIS03 0.6 15 Y N Worked example problems and cases resolution by the lecturer and the students (PRO)
Writing of reports or projects [OFF-SITE] Self-study BA04 CO06 CO07 CO08 CO14 INS01 INS04 PER02 PER04 PER05 0.9 22.5 Y N Preparation of essays on topics proposed by lecturer (RES)
Laboratory practice or sessions [ON-SITE] Practical or hands-on activities BA04 CO06 CO07 CO08 CO14 INS04 0.6 15 Y Y Realization of practicals in laboratory /computing room (LAB)
Other on-site activities [ON-SITE] Assessment tests BA04 CO06 CO07 CO08 CO14 INS01 INS04 0.3 7.5 Y Y Final test of the complete syllabus of the subject (EVA)
Total: 6 150
Total credits of in-class work: 2.4 Total class time hours: 60
Total credits of out of class work: 3.6 Total hours of out of class work: 90

As: Assessable training activity
Com: Training activity of compulsory overcoming (It will be essential to overcome both continuous and non-continuous assessment).

8. Evaluation criteria and Grading System
Evaluation System Continuous assessment Non-continuous evaluation * Description
Test 50.00% 50.00% Compulsory activity that can be retaken (rescheduling) to be carried out within the planned exam dates of the final exam call (convocatoria ordinaria).
Theoretical papers assessment 15.00% 15.00% Non-compulsory activity that can be retaken. To be carried out before end of teaching period
Laboratory sessions 25.00% 25.00% Compulsory activity that can be
retaken. To be carried out during lab sessions
Assessment of active participation 10.00% 0.00% Non-compulsory activity that cannot be retaken. To be carried out during the theory/lab sessions
Oral presentations assessment 0.00% 10.00% Non-compulsory activity that can be retaken. To be carried by students in the non-continuous assessment modality.
Total: 100.00% 100.00%  
According to art. 6 of the UCLM Student Evaluation Regulations, it must be provided to students who cannot regularly attend face-to-face training activities the passing of the subject, having the right (art. 13.2) to be globally graded, in 2 annual calls per subject , an ordinary and an extraordinary one (evaluating 100% of the competences).

Evaluation criteria for the final exam:
  • Continuous assessment:
    In compulsory activities, a minimum mark of 40% is required in order to pass that activity and have the possibility to therefore pass the entire subject. The evaluation of the activities will be global and therefore must be quantified by means of a single mark. In the case of the activities that may be retaken (i.e., rescheduling), an alternative activity or test will be offered in the resit/retake exam call (convocatoria extraordinaria).

    The final exam will be common for all the theory/laboratory groups of the subject and will be evaluated by the lecturers of the subject in a serial way, i.e., each part of the final exam will be evaluated by the same lecturer for all the students.

    A student is considered to pass the subject if she/he obtains a minimum of 50 points out of 100, taking into account the points obtained in all the evaluable activities, and also has passed all the compulsory activities.

    For students who do not pass the subject in the final exam call (convocatoria ordinaria), the
    marks of activities already passed will be conserved for the resit/retake examcall convocatoria extraordinaria). If an activity is not recoverable, its assessment will be preserved for the resit/retake exam call (convocatoria extraordinaria) even if it has not been passed. In the case of the passed recoverable activities, the student will have the opportunity to receive an alternative evaluation of those activities in the resit/retake exam call and, in that case, the final grade of the activity will correspond to the latter grade obtained.

    The mark of the passed activities in any call will be conserved for the subsequent academic year at the request of the student, provided that mark is equal or greater than 50% and that the activities and evaluation criteria of the subject remain unchanged prior to the beginning of that academic year.

    The failure of a student to attend the final exam will automatically result in her/him receiving a "Failure to attend" (no presentado). If the student has not passed any compulsory evaluation activity, the maximum final grade will be 40%.
  • Non-continuous evaluation:
    Students may apply at the beginning of the semester for the non-continuous assessment mode. In the same way, the student may change to the non-continuous evaluation mode as long as she/he has not participated during the teaching period in evaluable activities that together account for at least 50% of the total mark of the subject. If a student has reached this 50% of the total obtainable mark or the teaching period is over, she/he will be considered in continuous assessment without the possibility of changing to non-continuous evaluation mode.

    Students who take the non-continuous assessment mode will be globally graded, in 2 annual calls per subject , an ordinary and an extraordinary one (evaluating 100% of the competences), through the assessment systems indicated in the column "Non-continuous assessment".

    In the "non-continuous assessment" mode, it is not compulsory to keep the mark obtained by the student in the activities or tests (progress test or partial test) taken in the continuous assessment mode.

Specifications for the resit/retake exam:
Evaluation tests will be conducted for all recoverable activities.
Specifications for the second resit / retake exam:
Same characteristics as the resit/retake exam call.
9. Assignments, course calendar and important dates
Not related to the syllabus/contents
Hours hours

General comments about the planning: The subject is taught in 3 x 1,5 hour sessions per week
10. Bibliography and Sources
Author(s) Title Book/Journal Citv Publishing house ISBN Year Description Link Catálogo biblioteca
 
Burns, A., Wellings, A. Sistemas en tiempo real y lenguajes de programación Addison-Wesley 978-8478290581 2003  
Kernighan, B., Ritchie, D. El lenguaje de programación C Prentice-Hall 978-9688802052 1991  
Rochkind, M. Advanced Unix Programming Prentice-Hall 978-0131411548 2004  
Silberschatz, A., Galvin, P., Gagne, G. Operating Systems Concepts Mc Graw-Hill 978-1118093757 2013  
Vallejo, D., González, C., Albusac, J.A. Programación Concurrente y Tiempo Real (3ª Edición) Amazon CreateSpace 978-1518608261 2016 http://www.libropctr.com/ Ficha de la biblioteca



Web mantenido y actualizado por el Servicio de informática