CIS-123 Home http://www.c-jump.com/bcc/c123c/c123syllabus.htm
It is useful to have a program that works like a quiz. For example, people come for an interview to a company. They could take a short test on a computer to demonstrate their knowledge in a specific area. The results of the test could help to evaluate technical skills of a potential candidate for a job.
Sometimes quiz may serve as an effective learning tool. Often people need to become familiar with a set of new terminology, or keep practicing word spelling of a foreign language. Quiz is a valid option for such exercise, plus it is also a bit like a game.
We need to design a program that performs basic functions of a quiz application.
The quiz application provides a list of subjects. Each subject maintains a list of questions. Questions are randomly displayed. Two major modes of operation will be available. The first mode acts strictly as an exam environment. The second mode is a training exercise with some additional features: ability to display answers, repeat questions, and keep score of the correct and wrong answers.
The program needs to maintain basic user accounts. New users must register before they can start using the application. There needs to be two types of accounts supported by the system: an interviewee, who is allowed only to choose a subject and take the exam, and a trainee user, who can initiate either exam or a training session.
Internally the should keep a log of the user activity. Each exam needs to be logged. If user completes the exam, the results must be encrypted and stored in a local file. A privileged computer user will then use a separate utility program to decrypt the file and access the data.
First version of the system will be a simple PC desktop application. All user-specific accounting information can be stored in a text file on a local computer. For example, when users register with the system, they must choose their nickname and password, which then will be stored in a local user file.
Information about the subjects will be prepared outside of the application by the company personnel and stored in a simple format in a text file. The information will include the subject name and a list of questions with answers in a fixed format. For example,
question True or false: Unformatted input means input of individual characters. Your answer: answer true
The quiz application should rely on quiz configuration parameters to locate its subject and user files in the "application directory".
The application will expect new interviewee users or register. Previously registered users can log in into the system using their credentials. The list of trainee users is predefined by the system administrator; no new users will have an authority to register themselves as a trainee.
Once in the system, the user must select a subject. An interviewee will automatically enter an exam session. A trainee will have the following choices:
In the exam mode any user has only two choices: complete the test by answering all questions, or quit the application. At the end of a complete exam the results for the current user must be saved.
During the training session additional functions will be:
The interface of the interviewee user is very limited. For example, interviewee cannot lookup answers or change subjects. The only mode available to interviewee is "exam".
Both modes of operation must manage a randomly populated queue of questions. While some questions may be repeated in training mode, all exam questions must be unique. The user interface will support "free text", "true/false", and "multiple choice" types of answers.
Incorrect answers are silently accepted in exam mode, but rejected in training. Training algorithm must define a strategy for learning. Its goal is to teach the user to answer all questions correctly. If user gives the wrong answer, the program might ask to re-enter the information. The final version of the learning algorithm will be determined after some experimentation with a number of users.