There will be three assignments. The objective of the first assignment is to find a nontrivial concurrent algorithm in the literature. In the second assignment, the aim is the implementation of the concurrent algorithm presented in the first assignment in Java. The focus of the third assignment is to apply tools to verify the concurrent Java program of the second assignment. More details can be found below.