W1008 Merlin Mission Manager
The Merlin Mission Manager is your personal control center to Merlin's Challenge Evaluation System. Challenges provide both you and your guide with objective evidence of your skill level as you develop expertise in a particular topic. As such, Missions serve both to provide you with valuable feedback as you are developing your skills and as a demonstration of mastery.
At various points along your pathway you'll be asked to complete one or more missions. Missions provide a logical grouping of one or more challenges, generally about a particular subject area or, alternatively, a summary of multiple topics. Just as wiki experiences are labelled using the Wnnnn scheme, missions follow similar rules. Missions will always begin with Mnnnn where the nnnn of the mission usually matches the nnnn of the wiki. Missions also have a two digit suffix, ss. Lower-numbered suffixes generally assist you with skill development, while higher-numbered suffixes provide demonstration of mastery.
At any given time, a Mission will be in one of the following states:
- Not yet eligible - Your guide will provide you with missions at an appropriate pace, so not all missions are available at any given time. You may see a mission name appear in your mission list with an eligible date in the future. If so, the mission will become available to you on that date.
- Eligible, but not yet accepted - On the eligible date you'll be permitted to accept the mission.
- Accepted - Once you've accepted a mission you'll be able to view a list of all included challenges and begin working on solutions. From this point until you either submit the mission or until the mission expires, you'll be able to work on the challenges of the mission.
- Completed - After you've completed all of the required challenges (and as many optional challenges as you'd like) you'll be able to complete the mission. At this point, you'll receive credit for the challenges.
- Expired - Missions are available for a limited time. The Merlin Mission Manager will let you know how much time you have until a mission expires. After this point, you'll no longer be able to complete the mission.
A single mission is comprised of one or more challenges. Each challenge is an opportunity to improve a particular skill and evaluate your mastery of that skill. In almost all cases the Merlin Mission Manager will provide you with instantaneous feedback regarding your results, enabling you to continuously improve your skills.
Within any given mission, challenges will be marked as either required or optional. Of course, it's to your own benefit to complete every available challenge even if it's not strictly required.
The Merlin Mission Manager is available as an easy-to-use command line interface. To get started, open a secure shell client and log on to the codermerlin server using your connection string:
After you’re connected, you’ll be prompted to enter your password. After a successful logon, you'll land in the "shell". Be sure you're in your home directory. (Remember that you can always get back to your home directory using the "cd" command without any arguments.)
If we ever need a quick reminder of the available commands for the Merlin Mission Manager , we can obtain the list by simply invoking the Merlin Mission Manager without any command or by using the help command. Try it now.
The Merlin Mission Manager is aware of the context in which it's been invoked, and will respond accordingly. If we're outside of the required directory hierarchy, Merlin Mission Manager will let us know. Let's see what happens when we invoke the Merlin Mission Manager from our home directory:
We need to be inside the Merlin directory to obtain useful information from Merlin. Let's create that directory now and then enter the directory:
Now, try the list command again:
Let's dissect the output at this level. Merlin will output a table similar to the following:
- Mission: This column contains the identifier (e.g. M1008-10) and the name (e.g. "Basic Addition") for the missions that have been assigned to you. The identifier of the mission generally begins with the same four digits that the wiki experience begins with. (Note that this wiki page's identifier is W1008, and the mission is M1008.)
- Eligible: Sometimes your guide may assign missions to which you are not yet eligible. The date at which you'll be eligible to accept the mission is listed in this column.
- Accepted: This is the date that you've accepted the mission. (We'll cover how a mission is accepted below.)
- Due: This is the date (and time) that you'll need to complete the mission by in order to receive the maximum number of points. In addition to the date and time, Merlin Mission Manager will include a count of days (d), hours (h), minutes (m), and seconds (s) remaining.
- Expiration: This is the date (and time) that you'll need to complete the mission by in order to receive any points. In addition to the date and time, Merlin Mission Manager will include a count of days (d), hours (h), minutes (m), and seconds (s) remaining.
- Completed: After a mission is completed, this column will contain that date of completion.
Prepare the Mission List
Before beginning work on a mission we'll need to do two things. The first is to ensure that the directory for the mission exists. The easiest way to accomplish this is to issue a prepare command to Merlin Mission Manager from with the "Merlin root" directory, but before doing so, let's take a peak at what's there:
Now, ask Merlin Mission Manager to prepare the directory:
Finally, have another look at the directory's contents:
Now, enter the mission directory.
Either use the above hint, or type:
The first step when beginning any mission is to accept the mission. This command can only be executed from the root directory of a mission.
Let's use the list command again, but this time, from within a mission.
As a reminder, the Merlin Mission Manager is context-aware, that is, it's behavior depends upon the current directory. Now that we're inside of a mission directory, if we ask for a list, we'll receive a list of challenges rather than a list of missions.
Let's dissect the output at this level. Merlin will output a table similar to the following:
- Challenge - This column contains the identifier (e.g. C100) and the name (e.g. "Basic Addition I") for the challenges that are available in this mission. While the numerical identifiers of the challenge are generally the recommended order that you should proceed through the challenges, in most cases this is not strictly required. In some cases, however, there's a dependency between challenges. For example, you may be required to complete C120 before beginning C130. If that's the case, Merlin Mission Manager will let you know when you attempt to prepare the dependent challenge. After the challenge name there may be a word or two in square brackets. This will indicate the language to be used for a programming challenge or "Evaluation" in the case of an assessment.
- Required - This column will let you know if the challenge is required or optional.
- Earned - This column indicates how many points have been earned on the challenge.
- Available - This column indicates how many points would currently be received if the challenge were to be completed successfully. Depending on the scoring mode in effect this value may decrease based on the number of attempts at submission, the due date and expiration date, and the elapsed time since the mission was assigned. (Ask your guide for more information.) However, in all cases, if the number of points is highlighted in green (e.g. 30), then Merlin Mission Manager believes that it's worthwhile for you to make another attempt.
- Original - This column indicates how many points were originally available when the mission was first assigned.
- Attempts - Some challenges may limit the number of submissions which may be attempted. If so, this column will indicate the number of submission attempts so far out of the total number permitted.
- Eligibility - This column will indicate whether or not you remain eligible to attempt another submission, and if not, will usually provide a brief explanation.
Begin Work on a Challenge
Again, Merlin Mission Manager is sensitive to context. In order to begin work on a challenge, we'll need to be in the correct directory, specifically, a challenge directory. We'll first need to create the challenge directories, if we haven't yet done so. At mission level, execute:
You can verify that all of the challenge directories have been created:
Note that this is the same command that we used to prepare the mission directories. The Merlin Mission Manager knows how to do the right thing based upon the current working directory.
Now, enter the challenge directory. (Remember that you can use the hint referenced above for entering the mission directory.)
Let's have a look at the contents of this directory:
Note the current contents. Then, have Merlin Mission Manager prepare the directory:
Let's take a closer look at the files that are available in this challenge:
There are four files with a ".txt" extension. They are:
- instructions.txt - This file will always contain the instructions describing what needs to be done. This is always the starting point in any challenge.
- evaluations.txt - This file will be present for evaluations and provides general information regarding evaluation requirements. It won't be present if the challenge is not an evaluation.
- questions.txt - This file will be present for evaluations. It will contain a numbered list of questions that will need to be answered. Be sure to follow the instructions in instructions.txt and evaluations.txt before proceeding.
- answers.txt - This file will usually be present for evaluations. (If not, simply create a new file.) This is the file that Merlin Mission Manager will evaluate for an assessment.
There are two additional files with a ".sh" extension. They are:
- make.sh - Merlin Mission Manager uses this file when building your challenge. Unless instructed otherwise, do not modify this file.
- run.sh - Merlin Mission Manager used this file when executing your challenge. Unless instructed otherwise, do not modify this file.
At this point, you can begin work on your challenge. Some explorers prefer the following workflow:
- Use cat to read evaluations.txt:
- Use cat to read instructions.txt:
- Use emacs to open answers.txt and questions.txt:
After answering all of the questions, we're ready to test.
Testing a Challenge
A challenge may be tested by using the test command. If testing is available, Merlin Mission Manager will provide you with a line-by-line comparison of what was expected vs. what was actually provided, clearly marking correct and incorrect lines. (It's important to note that not all challenges are eligible for testing, but there's never a penalty for trying.) This will enable you to obtain immediate feedback to evaluate your answer, make any required adjustments, and then test again before submitting your challenge for a score.
Let's look at an example:
At a glance, we're able to easily see that we provided that correct answer for every line except the third. On the third line, Merlin Mission Manager was expecting 85 but we provided 84 as our answer. We'll need to go back and correct this error, and then test again.
Submitting a Challenge
When we're ready to receive a score, we use the merlin submit command. When we issue this command, we'll receive a score based on how closely our actual output matches the expected output. Let's try it now:
We'll receive output very similar to that of a test, but the results of the evaluation will be scored. To see a detailed description of our score, we can use the list command:
The Merlin Mission Manager is providing us with details regarding:
- The number of submissions that we've made so far
- The number of submissions (attempts) remaining
- The maximum score that we've received so far
- The maximum score that we would receive upon a subsequent successful submission
Completing a Mission
We follow the cycle above for each challenge in the mission:
- Prepare the challenge
- Answer the challenge questions or complete the required coding
- Test the challenge (if testing is available)
- Submit the challenge
When we've completed all of the challenges in the mission, in order to receive credit, we have one last step to take at the mission level. (Remember that the mission level will be a directory that begins with an "M".)
Note that the Merlin Mission Manager will warn us if we attempt to mark a mission as complete if we haven't yet completed all of the required challenges.
Newly Assigned Missions
After completing a mission Merlin Mission Manager may assign you a new mission. If so, Merlin will let you know:
If this is the case, return to the Merlin directory and ask Merlin for a list of available missions.