0% found this document useful (0 votes)
31 views7 pages

Assignment 01

Uploaded by

bhattibaba118
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
31 views7 pages

Assignment 01

Uploaded by

bhattibaba118
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 7

Introduction (Back to Beginning)

This is an individual assignment and it must be completed independently.


The assignment consists of three questions, covering materials from Topic 1
to Topic 11. These questions are incremental in nature, ie, a later question
relies on a previous question. You should complete these questions in their
natural order.

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 assignment will be marked out of 100 marks, including 10 marks


allocated to the quality of presentation (including formatting and layout)
and adherence to Documentation and Submission Requirements. To achieve
good marks you must strictly adhere to the Documentation and Submission
Requirements.

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.

Deadline and Penalty for Late Submission (Back to Beginning)

The submission deadline for this assignment is specified on the Unit


Information Page of the LMS. If there is any change in the submission
deadline, it will be announced in the Announcements page of the LMS.

Assignments submitted on or before the deadline will be marked out of


100%.
Late submission of the assignment will have 10% of the full mark of the
assignment deducted per day (including weekend days and public holiday)
unless an application for an extension of the submission deadline is granted.
Submission that is late by more than 7 days will not be accepted (in fact the
LMS will stop accepting assignments 7 days after the published deadline).

Applications for extension of your assignment deadline can only be made


via email to the Unit Coordinator, normally prior to the specified due date
of the assignment. Before applying for an extension, you must read the
section "Application for extension of the deadline" in the Unit Information
and Learning Guide (page 13-14) carefully and understand what are the
accepted grounds for granting extension and the procedure of the
application.

If an extension is granted (also by email), you must attach a copy of the


email to your submission (see Documentation and Submission
Requirements). Applications for extension by phone or in person do not
count even if granted. The above policy will be rigorously enforced.

Question 1 (30%): A simple student management system (Back to Beginning)

Write a Python program to manage the students enrolled in a unit. The


program will display a menu that allows the user to perform different
operaions repeatedly. The menu must include the following items:

1. add the details of a student to the system, including the student


number, the student's surname, student's given name, and the unit
mark
2. search for students based on the student number or student name and
display the details of the matching students. The name search must be
case-insensitive and must allow for a partial match, for example, the
search key "john" would be matched by "John Smith" and "Elton
Johns"
3. display the names of the students with a given unit grade (HD, D, C,
P and N). Use Murdoch University's grade system to convert marks to
grades.
4. delete a student's record from the system
5. quit: to quit the program

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)

Revised your solution to Question 1 to add additional features: when the


program starts, it first loads the student records from the
file students.csv inside the current directory. In addition, the user can load
additional student records from a CSV file and save the student records
maintained by the system to a CSV file. Correspondingly, two more menu
items should be added to the menu:

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.

Question 3 (30%): Display grade distribution in charts (Back to Beginning)

Revised your solution to Question 2 by adding the following additional


features:

 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:

8. display grade distribution


9. display marks distribution

You may use Python modules numpy and matplotlib for this question.

Documentation and Submission Requirements (Back to Beginning)

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

Your zip archive file must contain the following files/folders:

 One PDF document named Assignment.pdf. See the detailed


requirements of this file later in this section.
 Three folders named q1, q2 and q3 for each of the three questions.
Each folder must contain all files for the question, including the
Python code and data files (if any).

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%.

The file Assignment.pdf

This file must contain the documents in the following order:

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 documentation and submission requirements described above will be


strictly enforced. Your assignment will not be marked, or your marks will
be significantly reduced if you fail to adhere to the above requirements.
Your mark will be substantially based on the test cases you presented.
You will not receive a pass mark if the test cases presented do not cover
enough required features, and/or do not convince us that your solution
satisfies the requirements of the question (regardless of how good your
program is).

Policy on the Reuse of the Third-Party Source Code (Back to Beginning)

Please read this section very carefully.

All students are encouraged to complete the assignment independently and


write their own source code. I understand, however, that occasionally there
may be justifiable reasons to use source code from a third party, including
the source code from the Internet and the source code generated by
ChatGPT. Please note that if you have used one or more pieces of third-
party source code in your program (this includes the situations where you
have made minor modifications to the third-party source code), your
assignment will be acceptable only if you have satisfied all of the following
conditions:

 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.

Grievance with Assignment Marking (Back to Beginning)

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.

Errata (Back to Beginning)

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.

You might also like