Scheduling is an important activity that encompasses many everyday activities (e.g., determining which classes to take each semester).

computer science


Project 4: Task Scheduling


Scheduling is an important activity that encompasses many everyday activities (e.g., determining which classes to take each semester).  It is also used to optimize performance of applications, services, and utilization of computer resources.  The scheduling problem covers important concepts and topics in computer science.     


Definitions and Specifications:


A task (e.g., A B C …) can be completed if it has no dependencies or all its dependencies are met.  A dependency: (A, B) indicates that A has to be completed before B.  A task list is a list of all tasks to be completed.  A dependency list is a list of all dependencies for all task.  The task list and dependency list will be read from a text file.  A time step is the event when all task that can be completed is completed.


The task list and the dependency list can be modified according to user input.  When a task is deleted, all dependencies for the deleted task are also deleted.

Given the data in the taskData.txt and any changes provided through user input, provide the following information:


1) A valid ordering of task if one exist.

2) If no valid ordering is possible, identify a cycle that prevents a valid ordering.

3) If a valid ordering exist, indicate whether or not the there is more than one.

4) Report the minimum number of time steps needed to complete all tasks.

5) For each time step, list all remaining tasks that can be completed during that time


The task  list and dependency list are read into your project from a single text file (“taskData.txt”).   The first line in the text file gives the task list.  Tasks are separated by a space.  The second line in the text file gives the dependency list.  The dependencies are separated by a space.


tastData.txt example:



(A,B) (A,C) (B,D) (C,D) (D,E) (E,F)



This project should also provide the option to (1) add new tasks, (2) delete a task, (3) add a dependency, and (4) quit.  When the task list or the dependency list is modified, the program will recalculate the information above and display the updated information.


Sample Interaction:


When the data in taskData.txt is

Related Questions in computer science category

The ready solutions purchased from Library are already used solutions. Please do not submit them directly as it may lead to plagiarism. Once paid, the solution file download link will be sent to your provided email. Please either use them for learning purpose or re-write them in your own language. In case if you haven't get the email, do let us know via chat support.