Lea
rning
Outcomes
assessed
in
this
assignment
Assignment
Title
Development of a Sorting Program.
Weighting
6
0
%
Word
Count
or
Equivalent
5
00
words
plus
implementation
and
demonstration.
1. Apply appropriate processes (design documentation and testing) and articulate the rationale for design decisions throughout the process of developing a program.
2. Communicate own algorithmic solutions for complex programming problems using appropriate notation.
3. Select and implement appropriate structures for file handling and error catching within a program.
4. Select and implement appropriate structures for data manipulation within a program.
5. Demonstrate knowledge of subject terminology and concepts, giving appropriate comparativeexamples in specific contexts.
Task(s)
Design, implement and demonstrate a program to sort a dataset from a file in to ascending order using three different algorithms. The program will time stamp the different algorithms to test the effectiveness (timeliness) of the algorithms. The methods you should user are Insertion, Selection and Bubble sort.
The program should read from a file in to an appropriate data structure. The program should then use a series of methods as discussed to sort the data and write it to another file in a sorted ascending format you have chosen. The program will calculate the length of time it took each algorithm to process the sorts and this information will be stored in another test file, which will not be overwritten only appended.
Extend the program to allow the user to select different files for sorting. Add a method to accept an additional algorithm of your own design. Your algorithm will sort the dataset in to descending order again; you will have to calculate run time. The program should continue to run until the user terminates the program.
Design documentation (500 words plus designs):
All design documentation should be in a formal report format, with a clear introduction. Any research undertaken or resources consulted should be discussed and/or presented in a bibliography. The designs should be presented in the appendices and clearly referred to from the body of the text. The following should be included:
· Identify any assumptions you have had to make (this is NOT information given in the brief)
· Discuss any research or resources you have used throughout the development, with appropriate citations.
· Given the brief evaluate the program clearly identify any areas of the brief not achieved or issues yet to be resolved
· A bibliography (all resources consulted)
· Formal design documentation in the form of use cases, Pseudo code and Flow-charts where applicable to the scenario, (in the appendices). This should be as complete as possible and reflect the final design. They main contain a number of elements that are not implemented.
Implementation:
The implemented program should demonstrate an appropriate use of programm ...
3. plus
implementation
and
demonstration.
1. Apply appropriate processes (design documentation and
testing) and articulate the rationale for design decisions
throughout the process of developing a program.
2. Communicate own algorithmic solutions for complex
programming problems using appropriate notation.
3. Select and implement appropriate structures for file handling
and error catching within a program.
4. Select and implement appropriate structures for data
manipulation within a program.
5. Demonstrate knowledge of subject terminology and concepts,
giving appropriate comparativeexamples in specific contexts.
Task(s)
Design, implement and demonstrate a program to sort a dataset
from a file in to ascending order using three different
algorithms. The program will time stamp the different
algorithms to test the effectiveness (timeliness) of the
algorithms. The methods you should user are Insertion,
Selection and Bubble sort.
4. The program should read from a file in to an appropriate data
structure. The program should then use a series of methods as
discussed to sort the data and write it to another file in a sorted
ascending format you have chosen. The program will calculate
the length of time it took each algorithm to process the sorts
and this information will be stored in another test file, which
will not be overwritten only appended.
Extend the program to allow the user to select different files for
sorting. Add a method to accept an additional algorithm of your
own design. Your algorithm will sort the dataset in to
descending order again; you will have to calculate run time. The
program should continue to run until the user terminates the
program.
Design documentation (500 words plus designs):
All design documentation should be in a formal report format,
with a clear introduction. Any research undertaken or resources
consulted should be discussed and/or presented in a
bibliography. The designs should be presented in the appendices
and clearly referred to from the body of the text. The following
should be included:
· Identify any assumptions you have had to make (this is NOT
information given in the brief)
· Discuss any research or resources you have used throughout
the development, with appropriate citations.
· Given the brief evaluate the program clearly identify any areas
of the brief not achieved or issues yet to be resolved
· A bibliography (all resources consulted)
· Formal design documentation in the form of use cases, Pseudo
code and Flow-charts where applicable to the scenario, (in the
appendices). This should be as complete as possible and reflect
the final design. They main contain a number of elements that
are not implemented.
Implementation:
The implemented program should demonstrate an appropriate
use of programming concepts, as detailed in the marking
criteria. Credit will not be given for extending the brief or
5. producing something unrelated.
All program files should include a clear header that includes at
least the author’s name. The (main) program name should be as
specified in the brief. The code should be well structured and
commented and follow best practice. The majority of methods
should demonstrate some form of effective testing (commented
out, output statements.
It is not expected that all designed elements be implemented;
there should be a focus on demonstrating the elements given in
the marking criteria and the overall functionality of the
application. However, the implementation should NOT be
significantly different from the design documentation (which
should be updated as work progresses).
Demonstration:
The program will be demonstrated to the module tutor, and in
some instances a second marker. Where the tutor will provide
applicable test data, unless otherwise stated in the brief.
Students will be expected to explain specific aspects of their
code and should do so using appropriate technical language. The
demonstration will take place during class on the 20th April
2020.
Marking
Criteria
Criteria
Assessed Element
Weighting
7. Assessment
Criteria
A+/A/A-
1. All of the sorting algorithms have been correctly
implemented and function as expected.
2. The descending algorithm is of an appropriate type, has been
well documented in the report, and is effectively implemented
in the program.
3. The data is effectively drawn from the generated files and
stored appropriately in the program.
4. The core program has been extended successful to enable
user interaction and is only terminated by the user.
5. The report presents the results of an effective set of
experiments that test a range of different data sets with all three
sorting algorithms.
6. An appropriate and well-formed conclusion has been
presented that is supported by the results.
B+/B/B-
1. All of the sorting algorithms have been correctly
implemented and function as expected.
2. The descending algorithm is of an appropriate type and has
been documented in the report with some mistakes identified.
The algorithm is implemented in the program however only
works in a limited way.
3. The data is drawn from the generated files and stored
appropriately in the program, which is mostly effective.
4. The core program has been extended to enable user
interaction and is only terminated by the user, however some
8. aspects are not handled effectively.
5. The report presents the results of a set of experiments that
test at least three different data sets with all three sorting
algorithms.
6. A conclusion has been presented that is supported by the
results to some degree.
C+/C/C-
1. At least two of the sorting algorithms have been correctly
implemented and function as expected. The descending
algorithm has not been implemented in to the final program.
However, it is in the design documentation.
2. The data is drawn from the generated files and stored
appropriately in the program, which is somewhat effective.
3. The core program has been extended to enable user
interaction and is only terminated by the user; however, a
number of aspects are not handled effectively.
4. The report presents the results of a set of experiments that
test at least two different data sets with all algorithms
implemented.
5. A conclusion has been presented that is supported by the
results to some degree.
D+/D/D-
1. At least one of the sorting algorithms has been correctly
implemented and functions as expected. No descending
algorithm exists in the program and is discussed in a minimal
state in the report and design documentation.
2. The data is drawn from the generated files and stored in the
program, which is implemented in a less than effective way.
3. The core program has been extended to enable user
interaction in a minimal way and the user is unable to terminate
the program.
4. The report presents the results of an experiment that tests at
9. least one data set with all algorithms implemented.
5. A conclusion has been presented that is barely supported by
the results
F1-F4
1. None of the sorting algorithms have been correctly
implemented or function as expected.
2. The data is not drawn from generated files or stored in the
program.
3. The core program has not been extended to enable user
interaction and the user is unable to termina te the program.
4. The report presents minimal to no results.
5. The conclusion is minimal to none existent.
Submission
Requirements
10. Your report is targeted at a word count of 500 words (excluding
bibliography and appendices). You must keep to this target and
you must include the actual word count at the end of your
submission. Submissions that are more than 10% above or
below the target will be rejected unmarked. Appropriate
appendices and references are not included in this w ord count.
Your written work must be submitted via Turnitin on Moodle
by the due date. Your work must be word-processed. All
references should be formatted using the Harvard style
Referencing. You MUST keep a copy of your work in case of
loss or damage to the original. Work submitted late will only be
accepted if your course tutor has granted permission in advance,
and an extension form has been completed.
It is your responsibility to ensure that Moodle and the module
tutor have received your submission. You are advised to keep
copies of email receipts received and make no edits to your
documents until you have confirmation your submission is
successful. If you have any doubt as to your work being
successfully submitted, you should present your work to the
module tutor by 9am on the next working day. DO NOT email
your work to your tutor unless specifically asked to.
See supplementary sheet for marking criteria descriptions at
each grade band.
Late Submissions
Students who do not submit their coursework by the published
deadline, without an agreed extension, will have up to 72 hours
(3 days) to make their submission. Where late submission
deadline falls on a Saturday or Sunday students should submit
their work no later than 9am on the following Monday.
Submissions received during this three-day period will result in
a reduced grade as shown in the table below. After this period
no submissions will be accepted and will be recorded as an F4
11. zero grade.
Quality of Work
Grade Awarded
Quality of Work
Grade Awarded
A+
B+
C-
D-
A
B
D+
F1
A-
B-
D
B+
C+
D-
B
C
F1
F2
B-
C-
F2
F3
C+
D+
F3
F4
C
D
F4