Introduction
This project is proposed to students in order to evaluate their skills for the fundamental period of Java Programming and UML.
This goal is achieved through the realization of a console application (+ GUI as possible bonus), which aims at managing digital quiz preparation and execution.
Specifications
The usual problem while preparing and running an evaluation, is to :
- Constitute an appropriate evaluation corresponding of the required level
- Reuse former questions
- Organize sample evaluations
- Correct automatically the MCQ questions.
Types of question
To handle the most of the possible cases, there are several types of question to consider.
- MCQ Questions
- Open Questions
- Associative Questions
The MCQ questions
The MCQ questions are composed of a question text and a set of possible choices, each choice can be right or wrong.
It can also be interesting to add a extra content, like some code extract, some picture or some other kind of media (video, music etc.).
The Open Questions
The open questions are composed only by a question, and some hints, additionaly they can be completed by a exta media content.
Associative questions
The associative questions are questions where it necessary to assign some propositions to some descriptions, like in the following.
Common questions attributes
Each question has a some extra attributes to describe the topic (tag) and the difficulty of the question. Those two fields help to balance the overall exam complexity, and the topics coverage.
Those attributes can be taken in account for automatic exam assembly.
Realization
Main features
The produced application should be a console application. The scope that you should cover by this application is to :
- be able to operate CRUD on Open Questions and MCQ Questions (questions and valid answers are stored in a database or an XML file or a JSON file)
- be able to search questions based on topics
- be able to assemble automatically a quiz (a quiz is a set of questions) that gathers all the questions covering a given list of topics.
- export this quiz under a plain text format
- run the evaluation and provide the automatic mark in the end of this execution
Bonus
- Do the same using a desktop GUI (JavaFX is preferred)
- Export a quiz as PDF
- Write an algorithm (or use an existing one) that will allow to get quiz based on a complexity rate. This overall complexity required by the user can be calculated on the difficulty property.
Example of realization
The quiz running part should run the quiz and get the answers from the user.
All the answers should be recorded and at the end of the quiz the global result is displayed to the user.
You can take an example on the following website :
Evaluation
This application will be evaluated using the grid below:
Goal | Technical content | Evaluation |
---|---|---|
First level : defining Java Classes and use it in an application | ||
This is what we should have seen during the first courses: the goal is to initiate you to the Java ecosystem: manipulate basics of the language as much as discovering java tools such as Eclipse | To achieve this point you should have:
|
20 |
Second level : Find a way to persist a POJO | ||
This is the most common problem in computer science, for achieving this part fully, you must be able to store a list of Questions in an XML file or in a Data Base | To achieve this point you should have:
|
40 |
Level three: Be professional | ||
This point will stand for all the Quality and Documentation in the project, all your classes should contain appropriate javadoc and comments (a tool evaluating your code quality will be used) You also must provide a technical description of your architecture, this documentation should be in a standard format : odt, pdf, doc, docbook, dita, epub. This document is called Technical Specification You should provide a user guide on how to use the «public» part of your program. The public part of your program can either be a GUI or a set of APIs depending if you achieved to make a working GUI. This document is called the User guide. This user guide should be readable by someone who doesn’t know about your program internal architecture. |
To achieve this point you should have:
|
40 |
Total | 100 | |
Bonus points | ||
Make everything configurable: This configuration will avoid hardcoded parameter like connection strings or file path. This is always bad in any application | To achieve this point you should have:
|
10 |
Do a GUI allowing to use your Quiz / Question / Choice APIs as well as your serializers/deserializers (DAOs). | To achieve this point you should have:
|
20 |
Delivery
code delivery
Your code source delivery has to be under a git format (prefer bitbucket for delivery to avoid cheating). Your package should include:
- source code of the application
- User Guide
- Technical Guide
- Compilation & Installation notice (if I’m not able to compile or run your application, the realization mark is set to 0)
How to submit?
You have to send an email with the git url of your repository before the due date. The Subject of your mail should be under the format:
[${YEAR}_fund-${NAMES}][PROJECT_SUBMISSION]
the destination email is the following :
When to submit ?
The due date is set to be 3 weeks after the last lecture. If there are different groups, then it is 3 weeks after the last lecture for the last group.