Assignment 01
Assignment 01
Please note that one of the objectives of this unit is to develop skills in self-
learning and research. This assignment deliberately includes questions that
require some independent research on your part in order to come up with an
answer.
The marks you will receive for this assignment depend on the following
two aspects:
How many required features are completed and are fully working
The quality of your work compared to other students
You will receive a top grade only if your assignments meet all requirements
with the outstanding quality compared to other students.
You should try each question as soon as the relevant topic is covered, not
wait until all relevant topics are covered. If you don't you may find that you
do not have enough time to complete the assignment. For example, the first
question relies on the materials covered in the first 6 topics. The second
question relies on the materials covered in the first 7 topics, and the last
question relies on the materials covered in the first 11 topics.
You should use a list to store the information about all students. In the list,
each list item is a dictionary containing one student record.
Question 2 (30%): Load student records from the file and saves them to the
file (Back to Beginning)
6. load student records from a CSV file. The program should prompt the
user to provide a file path. The student records from the file are added
to those student records already in the memory. Check for duplicates
of student records (ie, records with the same id): in case of duplicate,
the one from the file should be ignored.
7. save the student records in the current system to a CSV file. The
program should prompt the user to enter a file path. If the file exists,
warn the user and give the user the option of either changing the file
name, overwriting the file, or cancel the operation.
You may use Python's builtin module csv to handle CSV files.
For your convenience, I have created a file containing the data of 150
students. The information inside the file are completely fititious and
random. You are required to test your program using multiple and different
files, including this file.
to increase the system efficiency, replace the list used to store the
student records with an ndarray from the NumPy module..
to display the grade distribution using a piechart. The pie chart must
have a title and labels for each grade.
to display a bar chart showing the percentage of students in each of
the following marks ranges: 0-29, 30-39, 40-49, 50-59, 60-69, 70-79,
80-89 and 90-100. The bar chart must have a title and labels for x-
axis and y-axis.
To incorporate the above features, add two additional menu items to the
program menu:
You may use Python modules numpy and matplotlib for this question.
Your assignment must be submitted in the form of a single zip archive file
to the LMS. No other format will be accepted. The zip file must be named
in the following format:
<your last name>_<your first name>_<your student number>.zip
For example, the student, John Smith, with student number 12345678,
would name his zip file as Smith_John_12345678.zip
You must include all files for each question in a separate folder. If
you only include one folder containing all the files for one question,
you are deemed to have only submitted your solution to one
question, even though that solution may have satisfied the
requirements of each of the three questions. In that case, the
maximum mark you will receive is 30%.
1. Assignment Check List: you must complete this checklist and include
it in your PDF file.
2. Extension Granted: if you have been granted an extension, include the
email from your Unit Coordinator.
3. Table of Contents: listing of the page number of each question.
4. Documentation for each of the three questions. The documentation
for each question must include:
5.
1. The question number and the question title
2. Discussion of your solution: in particular, you should emphasise any
aspect of your solution that is novel or unusual. You should also
discuss the technical choices available to you, the consideration
behind your technical choice, and whether the result of your solution
meets your expectation. You should highlight the strength and
weaknesses of your solution and point out what improvements can be
made to the solution. This discussion should not exceed one page.
3. Self-diagnosis and evaluation: a statement giving the following
details for each requirement of the question: what features have been
fully completed, and are working, and what features have been
completed but not fully working, what features have not been fully
completed or not attempted. This statement is essential. You could
lose up to 50% of the mark allocated to the question if this statement
is missing, misleading, or too vague!
4. Test evidence: for each required feature of the question, you must
provide a sufficient number of test cases to demonstrate that your
solution meets the requirements of the question. The presentation of
each test case must include
1. which feature is to be tested,
2. the evidence of the test (which can be a copy of your terminal
output showing the command and output of the command),
3. the conclusion of the test, ie, whether the test evidence proves
that the tested feature meets the requirement.
5. A list of the file names: for your Python source code and data files
used by your program for the question.
The third party source code is fully identified, including the page
numbers and line numbers, in your source code and also in your
assignment documentation, and
The origin of the third-party code is fully disclosed and
acknowledged in your assignment submission, and
The third party source code is fully commented in your program
listing. All variables, functions and major control structures must be
commented to show clearly that you understand the logic of the code,
and
The third-party source code is less than 10% of your program (in
terms of the number of lines), excluding the code specifically allowed
to be used, and
The source code does not come from a student assignment, whether
from Murdoch University or not.
Failure to satisfy any one of the above conditions will result in 0 mark
being awarded to your entire assignment.
If unsure, you must seek clarification from your tutor or the unit
coordinator, and get his or her confirmation in writing.
The above policy will be rigorously enforced by the Unit Coordinator and
Tutors.
Once you have received your marked assignment, if you have any grievance
with the marking, you must raise it with your Unit Coordinator by email,
within 7 days of returning of your marked assignment to the LMS, or within
the announced deadline in the LMS, whichever is earlier. Otherwise the
marks awarded to you will be final and will be used to calculate your final
weighted average score for the unit.
This page is subject to change based on errors found. Any errors found and
corrected will be posted in the Announcements page of the LMS. If you
print out a copy of this page, please follow the news in the Announcements
page of the LMS for any updates.