Semester 1, 2020
CAB301: Algorithms and Complexity
Assignment 1: Project (Applied)
Marking Criteria Sheet
Criteria /100
7 – High
Distinction
85-100%
6 – Distinction
75-84%
5 – Credit
65-74%
4 – Pass
50-64%
3 – Marginal Fail
40-49%
2 – Fail
25-39%
1 – Low Fail
25%
Data
structures
Weighting:
10%
• You have
used all the
equired data
structures
perfectly.
• You have
used all the
equired data
structures
with few
deficiencies.
• You have
used all the
equired data
structures
with some
issues.
• You have
used some of
the required
data
structures,
ut not all
the required
data
structures.
• You have
attempted to
use required
data
structures,
ut not
appropriately
.
• You have not
used the
equired data
structures.
You have
used some
inappropriate
data
structures.
• You have
not used any
data
structures at
all.
Algorithms • The logic of
your
algorithm is
co
ect.
• Your
• The logic of
your
algorithm is
co
ect.
• Your
• The logic of
your
algorithm is
co
ect.
• Your
• The logic of
your
algorithm is
asically
co
ect.
• The logic of
your
algorithm is
asically
co
ect.
• The logic of
your
algorithm is
not clear.
• Your
• No
algorithm is
presented.
• No
algorithm
Criteria /100
7 – High
Distinction
85-100%
6 – Distinction
75-84%
5 – Credit
65-74%
4 – Pass
50-64%
3 – Marginal Fail
40-49%
2 – Fail
25-39%
1 – Low Fail
25%
Weighting:
10%
algorithm is
well
presented
using the
pseudocode
notations.
• Your
algorithm is
concise and
efficient.
• The
computation
al complexity
of your
algorithms
has been
analysed
igorously.
algorithm is
presented
using the
pseudocode
notations.
• Your
algorithm is
concise and
efficient.
• The
computation
al complexity
of your
algorithms
has been
analysed
co
ectly.
algorithm is
clearly
presented.
• Your
algorithm is
efficient.
• The
computation
al complexity
of your
algorithms
has been
analysed. But
there are
some
deficiencies
in your
algorithm
analysis.
• Your
algorithm is
easonably
presented.
• Your
algorithm is
asically
efficient.
• You have
attempted to
analyse the
computation
al complexity
of your
algorithm.
But there are
some
significant
issues in your
algorithm
analysis.
• Your
algorithm is
easonably
presented.
• Your
algorithm is
not efficient.
• You have not
attempted to
analyse the
computation
al complexity
of your
algorithm.
algorithm is
presented.
• Your
algorithm is
not efficient.
• You have not
attempted to
analyse the
computation
al complexity
of your
algorithm.
analysis.
Functionality • All the
equired
functionality
has been
implemented
• All the
equired
functionality
has been
implemented
• Most of the
equired
functionality
has been
implemented
• Most of the
equired
functionality
has been
implemented
• You have
attempted to
implement all
the
functionality.
• You have
attempted to
implement
some of the
functionality.
• You have
not
attempted
to
implement
Criteria /100
7 – High
Distinction
85-100%
6 – Distinction
75-84%
5 – Credit
65-74%
4 – Pass
50-64%
3 – Marginal Fail
40-49%
2 – Fail
25-39%
1 – Low Fail
25%
Weighting:
60%
and all your
implementati
ons meet the
equirements
in the
assignment
specification.
• There is no
untime
problem.
and most of
your
implementati
ons meet the
equirements
in the
assignment
specification.
• There is no
untime
problem.
and all your
implementati
ons meet the
equirements
in the
assignment
specification.
• There is no
untime
problem in
your
implementati
on.
and most of
your
implementati
ons meet the
equirements
in the
assignment
specification.
• There are
some
untime
problems in
your
implementati
on.
• There are
some
compilation
problems in
your
implementati
on.
• There are
some
compilation
problems in
your
implementati
on.
any of the
functionality
.
Testing
Weighting:
10%
• You have
provided
enough
screenshots
for every
equired
functionality.
• You have
provided
enough
screenshots
for most of
the required
functionality.
• You have
provided
some
screenshots
for most of
the required
functionality.
• You have
provided
some
screenshots
for some of
the required
functionality.
• You have
provided
screenshots
for a small
number of
the
functionality.
• You have
provided few
screenshots
for a small
number of
the
functionality.
• No
screenshot
is provided.
Code quality • Your code is
well structured
and formatted,
• Your is well
structured,
allowing the
• Your code is
formatted so
that the logic
• Your code is
mostly
formatted so
• Your code is
formatted so
that it takes
• Your code is
not formatted.
• Your code is
not formatted.
Criteria /100
7 – High
Distinction
85-100%
6 – Distinction
75-84%
5 – Credit
65-74%
4 – Pass
50-64%
3 – Marginal Fail
40-49%
2 – Fail
25-39%
1 – Low Fail
25%
Weighting:
10%
allowing the
logic to be
easily
followed.
• Your code is
clearly and
concisely
described by
comments that
fully document
the code.
• Your code uses
meaningful
identifier
names that
enhance code
eadability by
clearly
explaining
their purpose.
logic to be
fairly easily
followed.
• Your code is
clearly
described by
comments that
fully document
the code.
• Your code uses
meaningful
identifier
names that
enhance code
eadability.
can be
followed with
minimal effort.
• Your
comments
provide a good
understanding
of the code.
• Your code uses
meaningful
identifier
names.
that the logic
can be
followed with
minimal effort.
• Your
comments
provide a
general
understanding
of the code.
• Your code
generally uses
meaningful
identifier
names.
some effort to
follow the
logic.
• Your
comments
provide little
understanding
of the code.
• Your code uses
too many
unmeaningful
identifier
names.
• Few comments
are provided.
• Your code uses
too many
unmeaningful
identifier
names.
• No comment
is provided.
• Your code
uses too many
unmeaningful
identifier
names.
CAB301: Algorithms and Complexity
Assignment 1: Project (Applied)
Marking Criteria Sheet
Assignment 2 – Video Store ManagemenT Information System
CAB301 Algorithms and Complexity Semester 1, 2020
1
CAB301 Project:
Development of a Software Application for a
Community Li
ary to Manage Its Movie DVDs
Due Date: 25 May 2020
Weighting: 60%
Group or Individual: Individual
In this project you need to develop a software application for solving a real-world problem. In
the development of this software application, you need to use some specified data structures
to store and manipulate some data, and need to apply some algorithms that you have learnt in
the lectures to solve some computational problems in the software application, and analyse
the time complexity of the algorithms.
1. Preamble
You are hired to develop a software application for a community li
ary to manage its movie
DVDs.
The community li
ary lends movie DVDs to its members. The information about a movie
includes title, sta
ing, director, duration, genre, classification, and release date. The genre of
a movie may be Drama, Adventure, Family, Action, Sci-Fi, Comedy, Animated, Thriller, or
Other. A movie is classified as General (G), Parental Guidance (PG), Mature (M15+), or
Mature Accompanied (MA15+). The community li
ary may have multiple DVDs of the
same movie.
In order to bo
ow movie DVDs, members must register with the system through a li
arian.
When members are registered with the system, their full name, residential address, and a
contact phone number are recorded in the system. The system also keeps the information
about the movie DVDs that are cu
ently being bo
owed by each of the registered members.
When a registered member bo
ows a movie DVD, the movie DVD is added to the member’s
ecord; and when the member returns the movie DVD to the community li
ary, the movie
DVD is removed from the member’s record. A registered member can bo
ow up to 10
movies at any time. However, none can bo
ow multiple copies of the same movie at the same
time. It is assumed that both the full names of members and the titles of movies are unique.
The system analysis has now been completed, and a high-level object-oriented design has also