Codingassignmenthelper | Home Codingassignmenthelper | Samples

COM709 2020 AE1 Final assessment

COM709

COM709 2020 AE1 Final assessment

		andy
Table of Contents
1. Requirements specification for "Student Grade System"
1.1. Overview
1.2. What you need to do
1.3. Minumum to pass
1.4. High grade
1.5. Non functional requirements (constraints)
2. Formal (Functional) Requirements
2.1. Development of Feature 1
2.2. Development of Feature 2
2.3. Development of Feature 3
2.4. Development of Feature 4

1. Requirements specification for "Student Grade System"
This is the requirements specification for course COM709 2020 AE1 Final assessment. It describes
a program you must write for the assessment. Please refer to AE-1 Breif document for more details
on the marking criteria, hand in dates, and regulations.

1.1. Overview
You are to write: An application for a university to keep track of students grades It must allow
the user to enter the names and grades from a class of students It must store, analyse or
present these for later reference.

1.2. What you need to do
You will develop a program in Python 3. This task is presented as four (4) steps, each asking for
"feature requests". Each is more difficult than the previous. Finish and fully test each step before
proceeding to the next. When you have finished as many features as you can, zip and submit your
program for grading. The deadline for this is now 4pm on January 8th 2021.

1.3. Minumum to pass
To obtain a bare pass on this course you must complete features 1 and 2, and your code must be
well commented and robust.

1.4. High grade
To obtain a high grade, above C, you will need to complete most or all of the features. You should
submit well commented and rigorously tested code that is elegant and demonstrates a deep
knowledge of the theories and programming language features we have explored in the lessons.

1.5. Non functional requirements (constraints)
•

You may use any built-in Python 3 capabilities

•

You may use only the following external libraries:
•

matplotlib
1

•

numpy

•

csv and json

•

sqlite3

IMPORTANT: Do not use other data processing or graphic visualisation libraries. Write your own
functions if need be,
You must submit a single file called program.py in a zip file named according to your student
number, such as Q12345678.zip
Your program should be in a single file
Your program must work when launched from the command line
It must not use any other files, except those it creates for storage.

2. Formal (Functional) Requirements
2.1. Development of Feature 1
Create a program that prompts the user to enter a student name and a grade.
Store these in an appropriate data structure.
Allow the user to enter more pairs, of names and grade, or indicate they are finished.
When the use is finished, print out the folowing:
•

A list of students and their grades in a nicely formatted text table

•

The name of the student with the highest grade, and their score

•

The grade average of the whole class

Notes and guidance:
•

choose sensible defaults and checking for the length of the name string

•

think carefully about how to store the grade as a number, so sorting and calculations can be
performed

•

marks will be awarded for use of functions and good commenting

2.2. Development of Feature 2
Add to your program the ability to store the name and grade information in an external file.
Add the ability to load and print out, as above, from a previously stored file.
You will need to implement some kind of simple text based menu to make this work.
As a minimum, allow one storage file with a fixed name.
Additionally you may prompt the user for a filename to save or load, thus allowing multiple files to
be kept.
Notes and guidance:
•

you may use any storage method, plain text, csv, json, sql

•

think about file extensions

•

think how the user might browse stored files if there is more than one

•

consider what happens if the user loads the wrong type of file (or a corupt one)
2

•

make sure your menu system handles bad input gracefully

•

marks will be awarded for good testing and robustness

2.3. Development of Feature 3
Develop a feature to add a student number and course code, in addition to the previous two datums.
Add a menu feature to sort the data set by:
•

student number

•

grade

•

alphabetical name

•

course code

Notes and guidance:
•

at this point you should have a few test data files so that you do not need to keep entering
data manually

•

marks will be awarded for showing a good understanding of data sorting using well
commented code

2.4. Development of Feature 4
Add a menu feature to display the data in its presently sorted order graphically using a 2D bar graph
(histogram).
Allow the user to save the graph as a .png
Bonus marks: (Only do this if you have done everything else and are satisfied that your program is
robust, well commented, elegantly written, and more or less perfect) You may research standard
deviations, median, mode and other basic statistical values. Use "candlesticks" in place of bars to
annotate some statistical properties of each students grade.
Notes and guidance:
•

marks will be awarded for good graphical presentation

•

consider use of colour, good spacing, axes labels

3


		
To Download Click Here > COM709 2020 AE1 Final assessment.pdf
Codingassignmenthelper | Home Codingassignmenthelper | Home