INFO1110 Assignment
Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit
Assignment
Introduction
Overview
The assignment is an individual assessment. It contributes 30% of your Ònal marks.
The due date for the programming exercises is on 26 October 2023, 11.59 pm (Sydney time).
This is an assignment, and sta× are not permitted to give guidance on your code or how to solve the speciÒc problem. That is the purpose of the assessment that you are required to perform to achieve the grade.
You may ask clariÒcation questions about the assignment description. This is often necessary to implement functionality that is otherwise ambiguous.
If you have a question to ask on Ed please search before asking. However, remember that you should not be posting any assignment code publicly, as this would constitute academic dishonesty. Also, do not wait too long before starting. This assignment needs time and sustained e×ort.
Late submissions are not accepted unless an approved special consideration is granted.
Task Introduction and Summary
You are writing a program that allows students such as yourself to complete an online exam. The exam can contain multiple-choice questions (single or multiple answers) and short answer questions (numerical or text). The user interface of the program is text-based. In short, students have to type in commands into the terminal instead of'point and click'. You can see the rest of the description here: https://edstem.org/au/courses/12106/lessons/38968/slides/293370
Programming Exercises
All submissions must be made via Ed, including any supporting documentation that is produced during the planning of the program design such as Óowcharts, pseudocodes, and UML class diagrams.
To make a submission, you will need to press the "Mark" button. You may submit as many times as you wish before the due date.
Your submission will be marked using an auto-grader that checks the correctness of the program with the given speciÒcation. The marking system will automatically check your code against the public test cases after you make a submission by pressing the Mark button. If you attempt to deceive the auto-grader or do not answer the questions, 0 marks will be awarded for the question. After each submission, you will be able to view all the previous submissions and your Òles in the code submission section
The following rules apply to your submission:
Your submission must be able to compile and run within the Ed environment provided. Only the Ò les given in the sca×old codes will be started by the auto-marker.
Ensure that you have submitted your codes with the correct Òle name as given in the questions' sca×old. The auto-marker will only start the Ò les that are speciÒed in the given sca×old.
The Python version that is presently being used on the Ed system:
$ python3 --version
Python 3.11.3
Restrictions
The following must be read, as it says what you can and can't use.
Keywords
The following is not allowed:
for
in ( __contains__() )
global
lambda
nonlocal
Built-in Functions
The following is not allowed:
all()
any()
dir()
eval()
enumerate()
filter()
globals()
locals()
map()
Imports
Only the following modules are allowed:
import math
import datetime
import sys
import time
import os
import shutil
import random
import unittest
import io
any module you have written, e.g. import shop
Everything else is restricted.
Size restrictions
A submission containing a Òle longer than 3000 lines or larger than 500kB will not be accepted. To check the Ò le sizes of your Òles, use the bash command ls -s --block-size=KB
Help and feedback
You are encouraged to ask questions about the assignment during the Helpdesk and on the Ed
discussion board; however, remember that you should not be posting any assignment code
publicly, as this would constitute academic dishonesty. Also, you should not disclose your code or talk about your solutions in any of the PASS sessions.
Marking Criteria
Your marks for the assignment will be determined based on the number of test cases passed for each question as well as manual grading by your tutor. We will use the latest submission received before the due date for marking.
Automatic tests - 20/30
Your marks for this component will be the ratio of the number of test cases passed to the sum of all the test cases administered. There will be public (and hidden) testcases that are available for feedback purposes - to allow you to test the conformance of your program with respect to the description but these do not test all the functionalities described in the assignment. It is
important that you thoroughly test your own code. The private test cases will only be applied after the deadline and will be di×erent from the examples given.
Manual grading - 10/30
The manual grading from your tutor will consider the style, layout, and comments you provide in your test_program.py and your answers in test_plan.md . During marking, your tutor will not be debugging your code and will only run test_program.py according to the directions
you have given in the docstring of the Ò le. The marks for this component will be reported to this Canvas Assignment link:
https://canvas.sydney.edu.au/courses/51815/assignments/475131
The latest submission before the due date will be used for marking. Marks will only be reported based on this single submission. Request to grade Ò les and derive marks from a combination of di×erent submissions will not be accepted. It is your responsibility to check that your latest submission is complete, and that you pressed the "Mark" button!
Friendly note
Sometimes we Ònd typos or other errors in speciÒcations. Sometimes the speciÒcation could be clearer. Students and tutors often make great suggestions for improving the speciÒcation.
Therefore, this assignment speciÒcation may be clariÒed up to Week 10, 12th of October. No major changes will be made. Revised versions will be clearly marked in the Log of Changes slide and the most recent version will be in here.
Academic Declaration
By submitting this assignment, you declare the following:
I declare that I have read and understood the University of Sydney Student Plagiarism: Coursework Policy and Procedure, and except where speciÒcally acknowledged, the work contained in this assignment is my own work and has not been copied from other sources or been previously submitted for award or
assessment. I also did not use any generative AI tools (including ChatGPT) to assist in writing this assignment.
I understand that failure to comply with the Student Plagiarism: Coursework Policy and Procedure can lead to severe penalties as outlined under Chapter 8 of the University of Sydney By-Law 1999 (as amended). These penalties maybe imposed in cases where any signiÒcant portion of my submitted work has been copied without proper acknowledgment from other sources, including published works, the
Internet, existing programs, the work of other students, or work previously submitted for other awards or assessments.
I realize that I maybe asked to identify those portions of the work contributed by me and required to
demonstrate my knowledge of the relevant material by answering oral questions or by undertaking
supplementary work, either written or in the laboratory, in order to arrive at the Ònal assessment mark.
I acknowledge that the School of Computer Science, in assessing this assignment, may reproduce it entirely, may provide a copy to another member of faculty, and/or communicate a copy of this
assignment to a plagiarism checking service or in-house computer program, and that a copy of the
assignment maybe maintained by the service or the School of Computer Science for the purpose of future plagiarism checking.
Exam Program
At the end of this assignment, you should have a program allowing students like yourself to
complete an online exam. The exam can contain multiple-choice questions (single or multiple
answers) and short answer questions (numerical or text). The user interface of the program is text- based. In short, students have to type in commands into the terminal instead of'point and click'.
Command Line Arguments
The program expects the administrator to provide the details of the exam to the program, in the order of appearance, as command line arguments:
An absolute path to the directory containing two Òles - an exam contents and a student list Ò le. The Òles in this directory must be correctly labeled. See below for File Formats.
A number indicating the duration of the exam in minutes (as an integer).
[optional] A Óag -r to indicate that the answers are to be shuÖed. If this is not provided, the answers are displayed as-is.
If more command line arguments are supplied than needed, the program will ignore the remaining
arguments. If users do not provide suÕcient arguments during the running of the program, the program will display the message Check command line arguments to the terminal and it
terminates.
The content of Week 6 is required for this part of the assignment.
File Formats
The program expects the exam contents and student list to be provided by the administrator in Ò les labeled as follows:
questions.txt to denote this as the Ò le containing the exam contents.
students.csv to denote this as the Ò le containing the list of students registered for the exam.
Additional Òles found in the directory are ignored. If any of these two Òles are not found, the program displays the message Missing files to the terminal and it terminates.
questions.txt
The program must parse the Ò le to extract these Òelds for each question:
Type : data representing the question type. This is case-insensitive and can take on these three values: short , single or multiple .
Question : data representing the question itself.
Possible Answers : data representing the answer options that candidates can choose from when it is a multiple-choice question. It is restricted to the choice of A , B , C , and D . The Òeld
should be set to None for short answer questions and must not be None for multiple-choice questions. Multiple answers must be separated by a comma.
Expected answer : data representing the correct answer. This will be used by the auto-grader for marking.
Marks : data representing the total marks awarded for a question.
To aid the program in parsing, administrators are advised to prepare each question in the Ò le in this format:
Question -
Possible Answers:
A.
B.
C.
D.
The contents presentation must match the speciÒed question type. These conditions must be fulÒ lled:
Short-answer questions must not have Possible Answers following the Question Òeld.
These are examples of content presentation for each question type:
Single type question - single answer
*********************************
B. print("I" "love" "INFO1110")
Multiple choice questions - multiple answers
This question is based on the program below:
*********************************
name = input("What 's your name?: ")
*********************************
dependent on the presentation sequence of the question itself in the Ò le. For example, the
*********************************
B. print("I" "love" "INFO1110")
Question 2 - Multiple Answers[2]
Select all the animals that are mammals:
This question is based on the program below:
*********************************
name = input("What 's your name?: ")
These are some examples of invalid content presentation for each question type:
Invalid number of answer options for Single question
This question is based on the program below:
*********************************
name = input("What 's your name?: ")
*********************************
B. print("I" "love" "INFO1110")
Invalid Marks for Multiple question
Short question with answer options
How can you generate random numbers in python?
SID : represent the student'sidentiÒcation number
Name : represents the student's full name
The Òrst row is the header. Each row after that represents a candidate that will be doing the exam.
The contents from Week 7 is required for this part of the assignment.
The program must support the entire examination process which covers these stages:
Assign the exam to candidates.
Administer the exam and auto-marking.
Your job is to write Python codes to support both administrators and candidates for each stage.
This part of the assignment requires all contents from Week 1 to Week 10.
The exam contents must be loaded into the program using specially formatted Ò les. See Exam
want to preview the exam [Y |N]? until they enter N or n . If a response other than y / Y or n
qtype : A string representing the type of question. It will always be one of these values:
single , multiple , short and end which represent questions of type multiple choice
2023-10-24