FIT9136 Algorithms andProgramming Foundations in PythonAssignment 2
Last Updated: 4 September 2023, 3:00PM Table of Contents
1. Key Information
Purpose This assignment will develop your skills in designing, constructing, testing, anddocumenting a Python program according to specific programming standards.This assessment is related to the following learning outcome (LO):
● LO2 - Restructure a computational program into manageable units of
modules and classes using the object-oriented methodology
● LO3 - Demonstrate Input/Output strategies in a Python application andapply appropriate testing and exception handling techniques
Your task This assignment is an individual task where you will work independently. Yourtask is to develop a simple car purchase advisor system using Python code, basedon the provided specifications.
Value 45% of your total marks for the unit.Due Date Friday, 22 September 2023, 4:30 PM (AEST)Submission ● Via Moodle Assignment Submission.
● FIT GitLab check-ins will be used to assess the history of development
● JPlag will be used for similarity checking of all submissions.
AssessmentCriteriaThis assessment includes a compulsory interview with your tutor following thesubmission date. At the interview you will be asked to explain yourcode/design/testing, modify your code, and discuss your design decisions andalternatives. Marks will not be awarded for any section ofcode/design/functionality that you cannot explain satisfactorily.
2. Instruction
For this assignment, your goal is to create a Car Purchase Advisor System that utilises files”stock.txt” and“order.txt”located in the “data” folder. The application will feature a textinterface to act as the advisor system for a car retailer. The functionalities include:Functionality 1:When the program starts, test data needs to be automatically generated. Thegenerated test data needs tobereflected in the“stock.txt”file and also loaded in theprogram memory. For the format of the test data, you can refer to theprovided
example“stock.txt”. Please ensure that the test data presents acertain degree ofrandomness.Functionality 2:After generating the test data, a menu should be presented to the user with thefollowing options:
a) Look for the nearest car retailer
b) Get car purchase advice
c) Place a car order
d) Exit
Functionality 3:If the user selects the option for checking the nearest car retailer, the programshould ask for the user’s postcode to identify the nearest car retailer (here weassume that suburbs with smaller differences in postcodes are geographically closer,for more information please refer to section 2.3.6).Functionality 4:If the user selects the option for getting car purchase advice, the program needs to:
3. Git Management
GIT STORAGEYour work MUST be saved in your local working directory (local repository) in theAssignment 2 folder and regularly pushed to the FIT GitLab server (remote repository) tobuild a clear history of development of your application. Any submission with less than fourpushes to the FIT GitLab server will incur a grade penalty. Pleasenote fourpushes is aminimum, in practice wewouldexpectsignificantly more. All commits must include ameaningful commit message which clearly describes what the particular commit is about.Students must regularly check that their Git pushes have been successful by logging in to theweb interface of the FIT GitLab server; you mustnotsimplyassume they are working. Beforesubmission, via Moodle, you mustlog in to the web interface of the GitLab server andensure yoursubmission files are present on the GitLab server.GIT automatically maintains a history of all files pushed to theserver,you MUST not add aversion name to your files, please ensureyou use the same name for all versions of aparticular file.If you have problems in pushing to the remote repository, you should make a backup of yourwork by moving your current local repository to a new folder, and then re-clone yourrepository.
4. Do and Do NOT
Do Do NOT
● Maintain appropriate citing and referencing1
● Get support early from this unit and other
services within the university,
● Apply for special consideration or for
extensions2 early if needed.
● Leave your assignment in draft mode(assignments in draft mode will not bemarked),
● Submit late (10% daily penalty applies)3
● Attempt to submit after 7 days of the due
date (they will not be accepted), unless
you have special consideration.
5. Submission Requirements
The assignment must be submitted by Friday, 22nd September 2023, 4:30 pm (AEST).The following files are to be submitted and must exist in your FIT GITLab server repo:
● A series of .py files (i.e., order.py, car.py, retailer.py, car_retailer.py and main.py)o A template, RENAME-ME.zip, is available on the Moodle Assessments page.You have to use this template.
● A userManual_studentID.pdf file.The above files must be compressed to a .zip file named ass2_studentID.zip and submittedvia Moodle. The .py files must also have been pushed to your remoterepository (at FITGitLab server) with an appropriate history as you develop your solutions. Please ensure yourcommit messages are meaningful. You are NOT required to push the history of the manualfile to the FIT GitLab server. DO NOT push the .zip file.
● No submissions will be accepted via email.
● Please note we cannot mark any work on the GitLab Server, you need to ensure thatyou submit correctly via Moodle since it is only in this process that you complete therequired student declaration without which work cannot be assessed.
● It is your responsibility to ENSURE that the submitted files are the correct files. Westrongly recommend after uploading a submission, and prior to actually submitting inMoodle, that you download thesubmission and double-check its contents.
● Please carefully read the documentation under the“Special Consideration”and”Assignment Task Submission” on the Moodle Assessments page which c