Assignment 1
| Assessment Type |
Individual assignment (no group work). Submit online via Canvas/Assignments/Assignment 1.
Marks are awarded per rubric (please see the rubricon Canvas). Clarifications/updates may be made via announcements. Questions can be raisedvia the lectorial, practical sessions or Canvas discussion forum. Note the Canvas discussion forum is preferable. |
| Due Date |
End of Week 6 (exact timeis shown in Canvas/Assignments/Assignment 1) Deadline will not be advanced, but they may be extended. Please check Canvas/Assignments/Assignment 1 for the most up to date information regarding the assignment.
As this is a major assignment, a university standard late penalty of 10% per each day (e.g., 2 marks/day) applies, unless special consideration has been granted. |
| Weighting | 20 marks out of 100 |
1. Overview
The objective of this assignment is to develop your programming and problem-solving skills in a step- by-step manner. The different stages of this assignment are designed to gradually introduce different basic programming concepts.
You should develop this assignment in an iterative fashion (as opposed to completing it in one sitting). You can and should get started now (when this assignment specification is posted on Canvas) as there are concepts from previous lessons that you can employ to do this assignment. If there are questions, you can ask via the lectorial, practical sessions or the Canvas discussion forum (Canvas/Discussions/Discussion on Assignment 1). Note that the Canvas discussion forum is preferable as it allows other students to see your questions as well. Also, you should ask questions in a general manner, for example, you should replicate your problem in a different context in isolation before posting, and you must not post your code on the Canvas discussion forum.
2. Assessment Criteria
This assignment will determine your ability to:
3. Learning Outcomes
This assignment is relevant to the following Learning Outcomes:
Specifically, upon the completion of this assignment, you will be able to:
4. Assessment Details
Please ensure that you have read Sections 1-3 of this document before going further.

Requirements: Your code must meet the following functionalities, code, and documentation requirements. Your submission will be graded based on the rubric published on Canvas. Please ensure you read all the requirements and the rubric carefully before working on your assignment.
A – Functionalities Requirements:
There are 3 parts; please ensure you only attempt one part after completing the previous part.
———————————————— PART 1 (6 marks) ————————————————
In this part, your program can perform some simple interactions with users (i.e., the receptionists):

Receipt for <customer_name>

Books rented:
– <book_name> for <number_days> days (<price_per_day> AUD/day)

Original cost: <original_cost> (AUD) Discount: <discount> (AUD)
Total cost: <total_cost> (AUD)
| Book category | Books | Rental prices per day |
| Fantasy | Harry Potter 1, The Hobbit | 0.5 / 0.4 |
| Crime | Gone Girl, Sherlock Holmes 1 | 0.5 / 0.4 |
| Classics | Pride and Prejudice | 0.3 / 0.25 |
| Modern Classics | To Kill a Mockingbird | 0.4 / 0.3 |
| History | The Diary of a YoungGirl | 0.4 / 0.3 |
| Philosophy | The Republic | 0.3 / 0.25 |
| Science | A Brief Historyof Time | 0.5 / 0.4 |
| Textbooks | Introduction to the Theoryof Computation | 0.75 / 0.6 |
| Art | The Story of Art | 0.5 / 0.4 |
| Other | ThinkingFast and Slow,Atomic Habits | 0.5 / 0.4 |
———- PART 2 (6 marks, please do not attempt this part before completing PART 1) ———–
In this part, your program can: (a) perform some additional requirements compared to PART 1, and
(b) be operated using a menu.
First, compared to the requirements in PART 1, now your program will be able to handle invalid inputs from users:
Second, your program will be operated using a menu. A menu-driven program is a computer program in which options are offered to the users via the menu. Your program will have the following options: rent a book, update information of a book category, update books of a book category, display existing customers, display existing book categories, and exit the program (please see Section 5 in this document regarding an example of how the menu program might look like). Below are the specifications of the options:
type, the prices but note that there could be multiple white spaces before and after the commas. You can also assume the book category, type, prices to be entered are valid values, i.e. the book category is an existing category, type is either Rental or Reference, and prices should be valid positive floating-point numbers.
Note that in your program, when a task (option) is accomplished, the menu will appear again for the next task.
———– PART 3 (5 marks, please do not attempt this part before completing PART 2) ———-
In this part, your menu program is equipped with some advanced features. Note, some features maybe very challenging.

Receipt for <customer_name>

Books rented:
………..

Original cost: <original_cost> (AUD)
Discount: <discount> (AUD)
Total cost: <total_cost> (AUD)
| Books &Borrowing days | Original Cost | Discount | Final Cost | |
| Rental 1 | Harry Potter1: 7 days, Gone Girl:12 days | 8.30 | 0.83 | 7.47 |
| Rental 2 | A BriefHistory of Time:20 days | 8.00 | 0.80 | 7.20 |
| Rental 3 | The Republic: 30 days, The Hobbit: 5 days | 10.00 | 1.00 | 9.00 |
B – Code Requirements:
The program must be entirely in one Python file named ProgFunA1_<Your Student ID>.py. For example, if your student ID is s1234567, then the Python file must be named as ProgFunA1_s1234567.py. Other names will not be accepted.
Your code needs to be formatted consistently. You must not include any unused/irrelevant code (even inside the comments). What you submitted must be considered as the final product.
You should use appropriate data types and handle user inputs properly. You must not have any redundant parts in your code.
You must demonstrate your ability to program in Python by yourself, i.e., you should not attempt to use external special Python packages/libraries/classes that can do most of the coding for you. The onlyPython library allowed in this assignment is the sys module.
Note that in places where this specification may not tell you how exactly you should implement a certain feature, you need to use your judgment to choose and apply the most appropriate concepts from our course materials. You should follow answers given by your “client” (or “supervisor” or the teaching team) under Canvas/Discussions/Discussion on Assignment 1.
C – Documentation Requirements:
You are required to write comments (documentation) as a part of your code. Writing documentation is a good habit in professional programming. It is particularly useful if the documentation is next to the code segment that it refers to. Note that you don’t need to write an essay, i.e., you should keep the documentation succinct.
Your comments (documentation) should be in the same Python file. Please DO NOT write a separate file for comments (documentation).
At the beginning of your Python file, your code must contain the following information:
Besides, the comments (documentation) in this assignment should serve the following purposes:
D – Rubric:
Overall:
| Part | Points |
| Part 1 | 6 |
| Part 2 | 6 |
| Part 3 | 5 |
| Others (codequality, modularity, comments/reflection) | 3 |
More details of the rubric of this assignment can be found on Canvas (here). Students are required to look at the rubric to understand how the assignment will be graded.
5. Example Program
We demonstrate a sample program that satisfies the requirements specified in Section 4. Note that this is just an example, so it is okay if your program looks slightly different, but you need to make sure that your program satisfies the requirements listed in Section 4.
As an example, this is how the output screen of our sample program looks like for PART 1. In this example, the customer has the name Huong (who is also a member), rent the book Harry Potter 1 for 6 days. Note that in this test, we use the values Huong, Harry Potter 1, and 6 as examples only. You should test your program with different test cases, e.g., when a new customer (e.g., James) rents another book with another number of borrowing days, to make sure your program satisfies the requirements in Section 4.

As an example, this is how the output screen of our sample program looks like for a menu with all the options described in PART 2.

When the user (the receptionist) enters an option, the corresponding functionality will appear. For example, if the user chooses option 1, which is to rent a book, then the output screen of our sample program is as follows.

Other requirements in PART 2 (update information of a book category, update books of a book category, display existing customers, display existing book categories) can also be displayed in a similar manner.
As an example, this is how the output screen of our sample program looks like for a menu with all the options described in PART 3.

This is an example showing the output screen of our sample program when we select option 1 and rent multiple books.

6. Submission
As mentioned in the Code Requirements, you must submit only one file named ProgFunA1_<Your Student ID>.py via Canvas/Assignments/Assignment 1. It is your responsibility to correctly submit your file. Please verify that your submission is correctly submitted by downloading what you have submitted to see if the file includes the correct contents. The final .py file submitted is the one that will be marked.
All assignments will be marked as if submitted on time. Late submissions of assignments without special consideration or extension will be automatically penalised at a rate of 10% of the total marks available per day (or part of a day) late. For example, if an assignment is worth 20 marks and it is submitted 1 day late, a penalty of 10% or 2 marks will apply. This will be deducted from the assessed mark.
If you are applying for extensions for your assessment within five working days after the original assessment date or due date has passed, or if you are seeking extension for more than seven days, you will have to apply for Special Consideration, unless there are special instructions on your Equitable Learning Plan.
In most cases you can apply for special consideration online here. For more information on special consideration, visit the university website on special consideration here.
7. Referencing Guidelines
What: This is an individual assignment, and all submitted contents must be your own. If you have used any sources of information (e.g., websites, tools) other than the course contents directly under Canvas/Modules, you must give acknowledgement of the sources, explaining in detail how you use the sources in this assignment, and give references using the IEEE referencing format.
Where: You can add a code comment near the work (e.g., code block) to be referenced and include the detailed reference in the IEEE style.
How: To generate a valid IEEE style reference, please use the citethisforme tool if you’re unfamiliar with this style.
8. Academic Integrity and Plagiarism (Standard Warning)
Academic integrity is about honest presentation of your academic work. It means acknowledging the work of others whilst developing your own insights, knowledge, and ideas. You should take extreme care that you have:
If you do not acknowledge the sources of your material, you may be accused of plagiarism because you have passed off the work and ideas of another person without appropriate referencing, as if they were your own.
RMIT University treats plagiarism as a very serious offence constituting misconduct. Plagiarism covers a variety of inappropriate behaviors, including:
For further information on our policies and procedures, please refer to the University website (link).
9. Assessment Declaration:
Essay Writing Service Features
Our Experience
No matter how complex your assignment is, we can find the right professional for your specific task. Custom Essay Writing Services for Students Worldwide is an essay writing company that hires only the smartest minds to help you with your projects. Our expertise allows us to provide students with high-quality academic writing, editing & proofreading services.Free Features
Free revision policy
$10Free bibliography & reference
$8Free title page
$8Free formatting
$8How Our Essay Writing Service Works
First, you will need to complete an order form. It's not difficult but, in case there is anything you find not to be clear, you may always call us so that we can guide you through it. On the order form, you will need to include some basic information concerning your order: subject, topic, number of pages, etc. We also encourage our clients to upload any relevant information or sources that will help.
Complete the order form
Once we have all the information and instructions that we need, we select the most suitable writer for your assignment. While everything seems to be clear, the writer, who has complete knowledge of the subject, may need clarification from you. It is at that point that you would receive a call or email from us.
Writer’s assignment
As soon as the writer has finished, it will be delivered both to the website and to your email address so that you will not miss it. If your deadline is close at hand, we will place a call to you to make sure that you receive the paper on time.
Completing the order and download