Your program must take in a list of dependent tasks and output a valid order in which to perform them.
Your program will accept a number of lines of textual input (via standard input). Do not open a named
file. Instead, always read from standard input.
That text input will contain a non-zero but even number of lines. Every two lines represent a pair of
tasks. The first line gives the name of a task, the second line gives the name of a task that it depends on.
This text input is also called the task list.
The task list will contain only standard ASCII characters (no UTF-8 Unicode or special accents). The goal is
to test programming and program language concepts, not your internationalization abilities.
Each task name starts at the beginning of the line and extends all the way up to (but not including) the
end of that line. So, the newline or carriage return characters,
or
, are not part of the task name.
Each task name is at most 60 characters long. (This limit is to make implementation faster and easier.)
Example task list:
learn Cool
read the Cool tutorial
do Project
learn Cool
The interpretation is that in order to learn Cool one must first read the Cool tutorial and that
in order to do Project one must first learn Cool. Desired output for this example:
read the Cool tutorial
learn Cool
do Project
You must turn in a zip file containing two source files. Use the following names:
task-organizer.cl — Cool implementation
task-organizer.py — Python implementation
testcase.txt — a valid task list that you made up.
readme.txt — your README file
The readme.txt file should be a plain ASCII text file (not a Word file, not an RTF file, not an HTML file)
describing your design decisions. Which language did you start with? Which language was the hardest?
One or two English paragraphs should suffice.