Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / Languages / C#

AKnowledge - Auditing the Knowledge

4.89/5 (8 votes)
23 Jun 2011CPOL5 min read 24.2K   900  
AKnowledge - Auditing the Knowledge
ak_001.png

Introduction

Imagine you are a SCRUM master - just to align yourself to the nowadays working trend all over the world - getting busy with your team striving to get used to being agile. Or you may be a trainer in some business area, ranging from school to corporate level. That might be a dream of yours. What happens if your budget for the current training and assessment needs is not as generous as you would like, not allowing you to get fancy tools for supporting that kind of activity? Would you not want to prevent your dream from turning into a nightmare? Would you not go for a tool that will let you keep the costs at a minimum when tracking the knowledge level of your people? Not asking for extra funds will make your management love you!

AKnowledge is a tool, which you might want to try. All you have to do is to place it on each of the network computers used by your team or training class, while keeping your questionnaires right on your machine. Make sure you share your printer with the team or the trainees, and the results of your audit will show up next to you. AKnowledge is not as fancy as you may expect, but it does the job it is intended to do.

The idea for the tool came to me while taking a quiz from Leading Answers. I also want to thank Bruno Maia for the icon I used as application icon, and which can be downloaded from Veryicon under the CC Attribution-Noncommercial 3.0 license.

Working with AKnowledge

Suppose you use three (or as many as you need) computers as trainee stations. Place the following three files (which you will download from the article's site)...

ak_002.png

...on each of those stations, in a folder of your choice. From the three files, only AKnowledge.exe is mandatory. The image file there is only to provide you with a header when printing the results. Replace it with your own one but keep the name and the file format and extension. No such file means no header on the report.

ak_003.png

You will also have to copy one more file - Auditor.q - in the system directory of each of those machines. That file tells the tool where it takes the questionnaire from. Do not forget to change its content, so that it points to the actual location of the questionnaire!

ak_004.png

The questionnaires (Auditor.xml) may or may not be identical to each other regarding the questions and answers, but they will definitely contain different subject names. The knowledge area and the subject of the audit will appear in the caption bar of AKnowledge.

ak_005.png

On your machine, you will have to fill in your questionnaires. You will actually multiply a questionnaire and then change the subject's name (a person's name or simply the name of the trainee station, it is up to you) and the knowledge area. Group your questions in question groups and provide the answers to choose from, marking the right answer in the XML file. The attribute for the correct answer is either "yes" or "y" (case insensitive).

ak_006.png

At this point, AKnowledge is ready for use. The trainee or the subject of your auditing will navigate throughout the group of questions and will make a unique choice from a list of answers for each question. Depending on the value ("yes" or "no") of the interview attribute in the questionnaire (Mode node), the user of the tool is allowed or not to go forward and backward through the question groups, as well as be able or not to see the audit results either during the answering process or only at the end of it. By choosing the non-interview mode, AKnowledge can be used for practicing, as the user can ask for the results while answering the questions and be able to make a new choice. Once all the questions are answered, a double-click on the results area of AKnowledge will show up a print dialog box allowing the choice of a printer in order to get the results printed on paper.

The Implementation Behind

The math behind is straight. For each group of questions, the values of the answers are assumed to be 1 in case of selecting the right answer and 0 otherwise. Those values are summed together and the result is divided by the number of questions in the group, then multiplied by 100 to show the result in percentage.

ak_007.png

For each question group, the questions are shown together in the client area of AKnowledge, having the answers reachable through comboboxes. The controls associated with the current question group are created dynamically and the size of application's window adjusts itself depending on the number of controls to show and on the space needed for showing the results. For those leafing through the code, the ShowQuestionGroup() method implements that behavior. The graphical report uses a different System.Drawing.Graphics object depending on the drawing destination: either application's window or the printer.

Hints for Networking AKnowledge

  • Use level 4 to manage the level of access to the files containing your questionnaires (the Questionary folder). Those files will be shared for everyone to read on the network. All local users, including the Guest account, will be able to read the files. But they will not be able to modify the contents.

    That way, the local permissions will be:

    • Owner: Full Control
    • Administrators: Full Control
    • System: Full Control
    • Everyone: Read

    The network shared permissions will be:

    • Everyone: Read
  • Publish your printer in the Active Directory, so that users logged onto Windows domain will be able to search for and use it to print the report generated by AKnowledge. Set the printing security level to 'Print', so that a user can only connect to the printer and send documents to it.

History

  • 3rd May, 2011
    • Created
  • 27th May, 2011
    • Math.Ceiling correction for computing the merit for showing 100% scores
    • ASP.NET Security questionnaire provided
  • 23rd June, 2011
    • Correction of the null reference object when improper 'ok' attribute is provided for an answer
    • Disable the double-click action on results in interview mode as long as the interview is not finished yet

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)