Familiarizar al estudiante con las técnicas de Programación Concurrente, los conceptos y los algoritmos correspondientes al manejo de procesos cooperantes, con ambiente propio (threads) o sin él. Introducir los principios de diseños de algoritmos cooperativos usando un lenguaje de programación y los recursos de sincronización como mensajes, semáforos, monitores, regiones críticas condicionales y barreras. Introducir al estudio de las Redes de Petri. Introducción a los problemas de concurrencia de transacciones distribuidas.
Principios de la programación concurrente. Sección crítica. Exclusión Mutua, Sincronización y comunicación. Semáforos, Monitores. Problemas clasicos y su solución con diversos recursos de sincronización y comunicacón. Paso de mensajes. Redes de Petri. Transacciones distribuidas.