As follows the outline for implementing this programming assignment: Write an algorithm for computing the ES, EF, LS, and LF for every task using the following data structures: The tasks are labeled 1,2,….n. The arrays ES[], EF[] ,LS[] , LF[], and T[] Where ES[i] represents the earliest start time of the task i; EF[i] represents the earliest finish time of i; LS[i] represents latest start time of the task i; LF[i] represents latest finish time of the task I; T[i] represents the required time to complete the task i. The graph of the project is represented by the incidence matrix (adjacency matrix) A[][], Where A[i][j]=1 iff the task j is an immediate successor of the task i. The array TS[] represents the sequence of the tasks listed according to the Topological soring. Note that If the task A has P1,P2,…Pk as immediate predecessor tasks, then ES of A=max (EF of P1 ,EF of P2,...., EF of Pk), and EF of A=ES + the time needed to complete the task A The parameters LS and LF are computed during a backward pass from the final task to the initial tasks as follows: If the task B has P1,P2,….,Pk as immediate successor tasks, then LF of B=min ( LS of P1,LS of P2,…. LS of Pk ), and LS of B= LF -the time needed to complete the task B.