Assignment 2
Introduction
Assignment Overview
The assignment is an individual assessment. It contributes 40% of your final marks. The assignment consists of a programming exercise and a skill-based test (viva).
qq1703105484
The due date for the programming exercises is on 9 May 2023, 11.59 pm (Sydney time).
The skill-based test will be held on weeks 12-13, refer to your own timetable for assessment time.
This is an assignment, and staff are not permitted to give guidance on your code or how to solve the specific problem. That is the purpose of the assessment that you are required to perform to achieve the grade. You may ask clarification 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 effort. |
Late submissions are not accepted unless an approved special consideration is granted. |
Restrictions
The following are not permitted to be used when completing this assignment: |
Keywords
for |
in |
global |
lambda |
nonlocal |
Built-in Functions
all() |
any() |
dir() |
eval() |
enumerate() |
filter() |
globals() |
locals() |
map() |
Imports
Only the following is allowed:
import math |
import datetime |
import sys |
import time |
import os |
import shutil |
import random |
import unittest |
any module you have written, e.g.
import shop |
ls -s --block-size=KB |
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 flowcharts, 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.
After each submission, you will be able to view all the previous submissions and their files 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 files given in the scaffold codes will be started by the auto-marker.
The marking system will automatically check your code against the public test cases.
Ensure that you have submitted your codes with the correct file name as given in the questions' scaffold. The auto-marker will only start the files that are specified in the given scaffold.
The Python version that is presently being used on the Ed system:
$ python3 --version Python 3.10.9 |
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.
Skill-based test
The maximum duration of the test is exactly 20 minutes. You will be asked questions to demonstrate, debug, trace and explain your work during the session. There will be sample questions provided for you to prepare and practice for the session. The examiner may ask questions that will not be included in this list of sample questions.
You must have your webcam turned on during the session and will be asked to show your Ed submission during the session. All sessions will be recorded and kept for documentation purposes in accordance with the university requirements regarding oral examinations.
Marking Criteria
Your marks for the assignment will be determined based on the number of test cases passed for each question as well as your performance during the skills-based test according to the following weights:
Automatic Tests (10/40)
Your marks for this component will be the ratio of the number of test cases passed to the sum of all the public test cases administered. It is important that you thoroughly test your own code.
Any attempts to deceive the automatic marking will result in an immediate zero for the entire assignment. Negative marks can be assigned if you do not properly follow the assignment description, or your code is unnecessarily or deliberately obfuscated. |
The public test cases for the PIAT questions will be released in stages over the upcoming weeks. It is recommended that you write your own test cases without relying on the public test cases to check that your program satisfies the given requirements. |
Skills-based Test (30/40)
This is broken down into two parts:
Viva test cases (10/40)
There will be public, hidden, and private test cases administered on your submission. The private test cases will only be applied after the deadline and will be different from the examples given. There will be public test cases 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.
Viva interview (20/40)
The examiner may ask you questions that require you to explain, trace and debug your codes. Marks will be awarded for each question based on the following descriptors:
No marks:
The candidate is unable to answer the question or the response is mostly incoherent.
Partial marks:
The candidate can respond to the question but after multiple attempt probes or some programming terminologies used in their explanation are incorrect.
Full marks:
The candidate is able to correctly respond to the question using the correct programming terminologies in their explanation.
Student 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 specifically acknowledged, the work contained in this assignment/project is my own work and has not been copied from other sources or been previously submitted for award or assessment.
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 may be imposed in cases where any significant portion of my submitted work has been copied without proper acknowledgement 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 realise that I may be 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 final 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 may be maintained by the service or the School of Computer Science for the purpose of future plagiarism checking.
Log of Fixes
A log of fixes made to Assignment 2. These consist of: Buggy test cases.
Typos in the question description.
The question description lacking sufficient detail.
If the example output in the question description and the output checked by test cases don't match, only the test cases will be changed to make it match. |
Pinned Fixes
4th April
This was originally in the assignment description.
Before we begin, let's train you up! Press "Enter" to start training or "skip" to Start Game: #^[ |
This has now been removed.
Entering ^[ when prompted to skip will not be tested. |
5th April
New information callouts have been added to the top of description.
8. PIAT: Something Blue |
import unittest |
who want to use this module. No part of the assignment is required to use this.
7. PIAT: "Improved" Full Game |
7th April
The following requirement has been removed from Q2:
question
If the user enters ESC+Enter , they are automatically given the Cardboard and Hook Trap , and the game immediately loads and players are taken to the game menu. |
9th April
Questions no longer have a requirement to be run in the
function apart from
in Q2
main |
train.py |
main |
name |
10th April:
is equal to
, so ideally you should have one anyway.
Added the following to 2. New Game Features .
Made quality of life changes in 2. New Game Features . The functions consume_cheese and hunt no longer return tuples of the updated cheese and its quantities. The functions should be modifying the cheese list in place. The change_cheese function has the e_flag parameter default to False . Although it already says this in the docstring, we have provided this. |
You must only run your code in train.py if the expression if name == ' main ' is True . All your code that executes must be inside a main function, as this is what will be used to test the additional feature in Section 2.1. |
14th April:
Changed 5.6 to make the requirements clearer.
If name is invalid, display Your new name is: {new_name} where {new_name} is the placeholder for the return value of the function call to generate_name with the appropriate argument. Else, if the name is valid, the program displays the following confirmation {name} is a valid name! |
19th April:
Added the example outputs to 7.1 Verify Installation.
run_setup |
Tampered and repair game files
for different scenarios leading towards the launch of the
<Output of verification indicating it is tampered> Do you want to repair the game? #Yes <Output indicating installation is done.> Launching game |
Tampered and proceed without repairing game files
<Output of verification indicating it is tampered> |
Do you want to repair the game? no Game may malfunction and personalization will be locked. Are you sure you want to proceed? yes You have been warned!!! Launching game |
Clarify parameters for function
personalization |
Implement the function