CPT111: A Simple Quiz System

119 阅读9分钟

Computing
CPT111: Java Programming
Semester 1, 2024-25
Coursework 3: Programming Project – A Simple Quiz System
Read carefully — no dispensation will be given for lack of awareness of the rules
Assignment type This is a group programming assignment. You are required to work as a
group of 4 to 5 students, which will be allocated randomly.
(You should be able to find your group members’ information from
Learning Mall (LM), and should contact the instructors if there is any
problem.)
Weighing Total marks available: 100, accounting for 30% of overall module marks.
Release date 1pm CST Wednesday 6 November 2023
Due date 11:59pm CST Sunday 1 December 2024
Learning outcomes
(A) Understand and appreciate the principles of using object-oriented programming techniques
for the construction of professional robust, maintainable programs deployed to meet real
world business goals;
(B) Design, write, compile, test, debug and execute object-oriented program using an Integrated
Development Environment (IDE);
(C) Effectively develop object-oriented programs as a member or a leader of a software
development team with continuous development strategy supported by AI technology;
(D) Implement object-oriented programming to represent, display, and manipulate data while
mitigating security risks;
(E) Evaluate legal, social, environmental, ethical, diversity, inclusion, and intellectual property
issues related to object oriented program development;
(F) Apply knowledge of engineering management principles, commercial context, project and
change management in object-oriented program.
Submission platform Each group is required to submit an electronic copy of your assignment
via LM.
You are allowed ONE submission only. It is your responsibility to upload
the correct document.
Late submissions Penalties will apply for any work submitted after the due date unless you
have obtained a formal extension prior to the date for submission. The
penalty applied will be 5% of the available marks for the assignment for
each working day or part thereof that the assignment is late. The penalty
will be capped at five working days (120 hours) from the assignment
deadline. Work submitted after five working days will receive a grade of
zero.
Continued on next page
CPT111: Java Programming Semester 1, 2024-25
Submission
confirmation
We strongly advise you to double check that you have submitted the
correct document / final version of your answer.
Submission of incorrect file
If you have submitted the incorrect file, you should email the correct file
to the instructors prior to the deadline. Submitting the incorrect file can
result in failure.
Special consideration Requests for an extension due to illness, misadventure, or other
extenuating circumstances beyond your control will only be considered
via a formal application for special consideration through e-Bridge.
Report format ALL answers must be written in English.
The report must:
• be submitted as a .doc, .docx (do not submit PDF or Apple Pages)
• contain headings and subheadings
• have 3 cm margins
• use a legible font (e.g., Calibri, Arial or Times New Roman)
• be presented in 11 point font size with 1.5 line spacing
• be paginated
Plagiarism and
academic misconduct
It is assumed that you are thoroughly familiar with the policies of XJTLU
regarding academic misconduct and plagiarism. Ignorance of the rules is
not an acceptable defence against an allegation of academic misconduct.
There are no excuses for engaging in plagiarism. Assignment answers
will be checked for plagiarism. Impermissible similarities between student
answers (current and former) can be detected by academic integrity
software and by instructor, and will be referred to the School’s Examination
Officer for investigation. Penalties will follow those of the University’s
Academic Integrity Policy on e-Bridge and can ranged from capped marks
to expulsions from the university.
For use of Generative Artificial Intelligence (AI), see below.
Use of Generative
Artificial Intelligence
(AI)
Simple Editing Assistance
For this assessment task, you may use standard editing software but
not generative AI. You are permitted to use the full capabilities of the
standard editing software, such as Microsoft Office suite, Grammarly, and
Integrated Development Environments (IDEs) for coding. If the use of
generative AI such as ChatGPT is detected, it will be regarded as serious
academic misconduct and subject to the penalties mentioned above.
Tips • Read the questions carefully.
• Write succinctly,代写 CPT111: A Simple Quiz System and avoid repetition.
• Avoid being overly descriptive.
• Remember to save/back up your work regularly. XJTLU provides all
students free access to XJTLU Box. It may be prudent to save your
work to your XJTLU account so that you can access it from multiple
devices in case you encounter hardware issues.
• You are encouraged to post administrative/procedural questions
about the assignment on the LM Q&A Forum. The instructors will
answer for the benefit of all students.
Coursework 3: Programming Project – A Simple Quiz System 2
CPT111: Java Programming Semester 1, 2024-25
Coursework 3: Programming Project – A Simple Quiz System
The purpose of this assignment is to design and develop an application that can be used to facilitate
educational quizzes, allowing users to select topics of interests, take quizzes related to those topics,
and view their quiz scores on a personal dashboard. The primary aim is to create a user-friendly
and interactive platform that enhances the learning experience through topic selection and question
assignment.
1 Functional requirements
As this is a programming assignment, not a software design one, here is a skeleton to guide you in
the creative part.
1.1 At startup
• The program should load data, such as user information, questions, etc., from selected files,
and store it in memory (using relevant variables and data structure).
– You may assume that all user information are stored in a comma-separated values (CSV)
file1
, as illustrated in resources user.csv, where the 1st, 2nd, and 3rd columns of the
file represent the user id, user name, and password of the user, respectively.
– You can assume that all questions are stored in some XML files, as illustrated in folder:
resources questionsBank. A Java class ReadQuestions has been provided to
you in the src folder demonstrating how the questions can be read from the XML files
into the memory, and the Javadoc of the classes used can be found under the folder
repositories javadoc xjtlu.cpt111.assignment.quiz.
Note: You need to add the library:
repositories xjtlu cpt111 xjtlu.cpt111.assignment.quiz
0.0.1 xjtlu.cpt111.assignment.quiz-0.0.1.jar
to the class path (of your IDE) first before running the ReadQuestion class.
• The program should:
– show information about data loaded.
– validate the questions read. That is, in our case, a question is valid if it
(i) falls into a topic (either new or an existing one)
(ii) has a question statement,
(iii) has more than one answer available for selection, and
(iv) has one-and-only-one answer.
– show a menu that present a list of interactions possible.
• Besides, you may need to add more questions (under different topics) to the question bank
yourself.
1CSV file: a text file format that uses commas to separate values, and newlines to separate records.
Coursework 3: Programming Project – A Simple Quiz System 3
CPT111: Java Programming Semester 1, 2024-25
1.2 Menu — General behaviour
The application should support, at least, the following functions.
• User registration and authentication
• Topic selection
– The topics available should be based on the input from the questions.
• Quiz taking
– You can decide the number of questions in a quiz. However, each quiz should contains
questions at different level of difficulties.
– The questions should be shown to the user one-by-one!
– The order of answers available for selection should be shuffled every time before a
question is shown to the user.
• The score of the quiz should show to the user immediately after the quiz has been finished
and the results should be saved into a score file
– You should design the structure (and format) of the score file on your own, and make
sure that you can read its content back when the program start!
• User dashboard for viewing quiz results of each topic and history of the previous 3 tests
attempted.
• Leaderboard for showing the names of the users with the highest score in each topic.
1.3 Technical requirements
The objective of this assignment is for you to program a simple quiz system so it should be interactive
in the form of showing text to the user and requesting their answer and data update through user
input as well as reading data from different file types. If you fail to do so, your submission will
automatically attract a penalty of 50%.
1.4 Concept requirements
Your code must feature and make use of the following elements.
• All your code must be divided in relevant/meaningful functions and classes.
• Declare/define and use variables with the appropriate data types and meaningful names.
• Input will always be converted into proper data type.
• The program should prevent crash in any situation, thus make sure you test your program
properly.
1.5 Constraints
Dependencies Using libraries or modules that are NOT covered in this course is strictly prohibited
and will result in zero (0) marks automatically in this assignment.
Internet connectivity The application is assumed to be run locally on a computer; hence no internet
connection is required.
Coursework 3: Programming Project – A Simple Quiz System 4
CPT111: Java Programming Semester 1, 2024-25
2 Important reminder
Documentation is also a critically important part of your software engineering. Your use of comment
(in Java source file) will be graded.
You must write the final version of the program totally on your own. Sophisticated plagiarism
detection system are in operation, and they are pretty good at catching copying! Re-read the policy
on the university home page, and note the University’s tougher policy this year regarding cheating.
Using libraries or modules that are NOT covered in this course is strictly prohibited and will
result in zero (0) marks automatically in this assignment.
Your programming style (how clearly and how well you speak a programming language, i.e.,
Java in this course) is what will be graded. Correct functioning of your program is necessary but
not sufficient; you must use the concepts covered in class and meet all requirements stated in this
assignment and as detailed in the marking rubrics (Section 4).
3 Submission requirements
Your assignment has to submit to Learning Mall (LM). You should submit the following:
A. A report (written using Microsoft Word) that includes the following items:

  1. A cover sheet stating the student number of your team members.
  2. A description of your project
  3. Information and explanation of how you add, store and handle users’ data (including the
    data structure that you used to store users’ data in memory), the algorithm that you used
    to identify the user names in the leaderboard, how to handle problems that appear in the
    questions (e.g., questions with more than one correct answers) and other parts of the program,
    etc.
  4. Tests performed to verify the correctness of the program.
  5. Printouts/screen capture of your program’s execution and tests. (This can be incorporated
    into Items 3 and 4 above)
  6. Peer evaluation form (Section A). (This will be used to adjust the final mark of individual
    students according to his/her contributions to the project.)
    B. ALL Java source codes and resource files (e.g., images, questions and users files, etc.) that are
    required to run the application.
    You should compresses all files into a single “.zip” file before submission. You should NOT include
    any files from the repositories folder or any files that are NOT relevant to the application into
    the submission file. Failure to follow this requirement will result in mark deduction.
    Coursework 3: Programming Project – A Simple Quiz System 5
    CPT111: Java Programming Semester 1, 2024-25
    4 Marking
    Commenting and naming
    convention (10 pts)
    Everything is
    appropriately
    commented and
    every variable is
    appropriately named
    A few comments
    or variable names
    are missing or
    inappropriate
    More than a few
    comments are missing
    or inappropriate but
    more than 50% of
    the elements are
    commented; OR more
    than a few variables
    are inappropriate
    There is less than 50%
    commented OR more
    than a few variables
    are not properly
    named
    Prevent crashes (10 pts)
    Program does not crash in any
    situation
    No program crash
    Minor error –
    program crash for
    some very uncommon
    case
    Major error – program
    crash in case of
    unexpected type
    of user input OR
    program crashes
    frequently
    Crashes most of the
    time (or always) when
    tested OR circumvent
    the requirement to
    handle wrong kind of
    user input
    Appropriate data structure
    and variables (10 pts)
    Users and scoring
    information is stored in
    memory in a relevant way
    and appropriately typed
    variables
    Users and scoring
    information are
    stored in memory in
    a relevant way and
    with appropriate data
    types
    Used more than
    necessary variables
    OR a few variables are
    not typed properly
    Does not use proper
    data structure OR
    data type to most
    variable (more than
    once)
    NO data structure
    (only simple data
    types used) OR more
    than one error
    Loading data (10 pts)
    Load data in memory and
    format data in file properly
    No issue found when
    loading data into
    memory
    A small number of
    data is not loaded (or
    improperly) or other
    minor error
    One type of data
    for all items is not
    loaded or the file is
    not formated properly
    or other major error
    Data is not loaded or
    more than one major
    error
    Menu (10 pts)
    Menu shows the required list
    of options, and execute the
    right the functionality based
    on user input, and show
    proper message to user in case
    of any problem
    The menu is shown
    correctly and all
    options can be
    selected without any
    error
    Some options are not
    shown to the user OR
    some options cannot
    be selected OR any
    other minor error
    Menu is not shown
    “infinitely” until the
    exit option is selected
    OR any other major
    error
    There is no menu OR
    it is shown only once
    OR more than one
    major error
    Show question (10 pts)
    Show the information about
    a question and with answers
    shuffled
    The questions are
    shown according to
    the topic selected and
    with different level
    of difficulties and
    answers shuffled
    The questions are
    shown according to
    the topic selected and
    with answers shuffled,
    but most questions
    are of the same level
    of difficulties
    The questions are
    shown according to
    the topic selected but
    without shuffled the
    answers or different
    level of difficulties
    The questions are
    shown arbitrary
    Scoring (10 pts)
    Accumulate the score
    correctly w.r.t. to users’
    input
    The score is updated
    correctly in all cases
    The score is updated
    correctly in most cases
    but not in all cases
    The score is updated
    correctly occasionally
    The score is updated
    incorrectly in most
    cases or not update at
    all
    User dashboard (10 pts)
    User dashboard shows the
    user’s achievement in each
    topic and history of the
    previous 3 tests correctly
    All information are
    shown correctly,
    especially after scores
    update
    One or two
    information are
    shown incorrectly,
    or with some minor
    error
    Most information are
    not shown correctly
    OR with major error
    Several major errors
    OR no information is
    shown on the user
    dashboard
    Leaderboard (10 pts)
    Leaderboard shows the name
    of user with the highest score
    in each topic correctly
    All information are
    shown correctly,
    especially after scores
    update
    One or two
    information are
    shown incorrectly,
    or with some minor
    error
    Most information are
    not shown correctly
    OR with major error
    Several major errors
    OR no information
    is shown on the
    leaderboard
    Save data (10 pts)
    Save data to file with proper
    formats
    All data are saved in a
    proper format
    A small number of
    data is not saved (or
    improperly) or other
    minor error
    One type of data
    for all items are not
    saved OR file is not
    formated properly OR
    it overrides original
    data OR other major
    error
    Several major errors
    or there is no saved
    information in the
    new file
    Criteria
    Ratings
    10 to > 8pts 8 to > 5pts 5 to > 0pts 0 pts
    Coursework 3: Programming Project – A Simple Quiz System 6
    CPT111: Java Programming Semester 1, 2024-25
    A Peer evaluation form
    Individual contribution for Group Programming Assignment
    Name Student Id Task(s) Contribution
    (%) Signature
    Coursework 3: Programming Project – A Simple Quiz System 7

  WX:codinghelp