Implementation of scheduling algorithm using dynamic programming to calculate values and identify the critical path