Great Deal! Get Instant $10 FREE in Account on First Order + 10% Cashback on Every Order Order Now

This document is for Coventry University students for their own use in completing their assessed work for this module and should not be passed to third parties or posted on any website. Any...

1 answer below »
This document is for Coventry University students for their own use in completing their
assessed work for this module and should not be passed to third parties or posted on any
website. Any infringements of this rule should be reported to
XXXXXXXXXX.
Faculty of Engineering, Environment and Computing
122COM Introduction to Algorithms
Assignment Brief 2017/18
Module Title
Introduction to Algorithms
Ind/Group Cohort
Sept
Module Code
122COM
Coursework Title (e.g. CWK1)
Resit Cw
Hand out date:
18/6/18
Lecture
David Crof
Due date:
2/7/18
Estimated Time (hrs): 11 (average)
Word Limit*: N/A
Coursework type:
Code submission
% of Module Mark
100
Submission a
angement online via CUMoodle:
File types and method of recording: Single .zip file containing source code.
Mark and Feedback date: Within 3 weeks of deadline
Mark and Feedback method: Written comments
Module Learning Outcomes Assessed:
1. Write software to solve a range of problems
2. Implement and use simple searching and sorting algorithms
3. Use li
aries to extend the functionality of the base language
4. Use basic design and testing strategies
Task and Mark distribution:
1 Introduction
The core of this coursework is a single Abstract Data Type (ADT) that you need to implement
and test.
The coursework should be undertaken individually without collaboration between students.
All code not written by yourself (other than that on the 122COM Moodle/Github page/s) must
e referenced. You are only marked based on the code that you have written. All submissions
will be checked against each other and the internet for possible plagiarism and/or collaboration.
1.1 Support
If you are unclear on the specifications you should contact the module leader or other member
of teaching staff to ask for clarification. The programming support centre
(https:
gitlab.com/coventry-university/programming-support-la
wikis/home) runs during
semesters 1, 2 & 3 and is able to assist with resit coursework if you are having programming
This document is for Coventry University students for their own use in completing their
assessed work for this module and should not be passed to third parties or posted on any
website. Any infringements of this rule should be reported to
XXXXXXXXXX.
difficulties.
1.2 Submitting
You should submit a single zip file to Moodle with a filename in the following format:
STUDENTNUMBER.zip.
For example if your student ID was XXXXXXXXXXthen you should submit a zip file named
XXXXXXXXXXzip.
You will be penalised if you do not follow these instructions.
2 Task specification
You should be familiar with the language requirements from the 122COM lab sessions but to
eiterate:
Information Technology for Business and Multimedia Computing students are allowed to
complete the task in either C++14 or Python3.
All other students must complete the task in C++14.
2.1 Abstract Data Type (ADT)
You are expected to design and implement an ADT representing an unfair set.
A set is an ADT which follows most of the same rules as mathematical sets, new items can be
added to the the set and existing items can be removed from the set.
Notice that in a set when you attempt to add a
value which already exists in the set nothing happens. This is the standard expected behaviour
for a set. The difference between a normal
set and the unfair set you will submit is that when you push an uppercase letter onto the set it
should be added regardless of whether it already exists in the set.
Be aware that factors such as sensible
variable names, comments, docstrings, use of Object
Oriented Programming (OOP), functional decomposition, e
or handling etc will all be consid-
ered when marking your ADT implementation.
2.1.1 Requirements
 Your ADT should be called UnfairSet (note the capitalisation).
 As a minimum it needs to have size, add, remove and is_in methods.
This document is for Coventry University students for their own use in completing their
assessed work for this module and should not be passed to third parties or posted on any
website. Any infringements of this rule should be reported to
XXXXXXXXXX.
◦ size() should return the cu
ent size of the unfair set.
◦ add() should add a given character to the unfair set.
◦ remove() should remove a given character from the unfair set, in cases where
uppercase characters are stored multiple times then one of them should be
emoved.
◦ is_in() should indicate if a given character is cu
ently stored in the unfair set.
◦ You can add any additional methods that you want/need.
 It needs to be able to store at least 100 items.
 The items in the unfair set must be single characters.
◦ I.e. if you are coding in Python they will be single character strings.
◦ I.e. if you are coding in C++ they will be char variables.
◦ Anything that isn’t an uppercase letter (i.e. A to Z) is considered to be lowercase.
 Use of classes, global variables, raw pointers, pure functions and other indications of
good
ad programming practices will taken into account when marking.
2.1.2 Rules regarding use of existing code
 You cannot use any existing set li
ary or implementation.
◦ E.g. if you are coding in Python you may not use the set, frozenset or any other set
modules.
◦ E.g. if you are coding in C++ you may not use the set, multiset or any other set
li
ary in the STL, boost, EASTL or any other set of li
aries.
 You can use code that has been provided for you in the labs and lectures for inspiration,
you should not copy it directly.
◦ Remember you are only marked on the code that you write yourself.
2.2 Testing
In order to prove that your unfair set implementation works as it should you will need to supply
evidence of testing.
If you are testing by hand you must supply a list of test cases, the expected result for each test
and the result that you got when you ran that test. Be aware that factors such as sensible test
names, comments, test coverage, edge cases etc. will all be considered when marking your
tests.
If you are using automated unit tests then you must supply the unit test code which will be run
during marking to see the results. Be aware that factors such as sensible test names, comments,
docstrings, test coverage, edge cases, use of an automated test li
ary etc will all be considered
when marking your tests.
2.3 Using the ADT
Once you have written your unfair set implementation and have tested that it works you need
to write a program that uses it.
You will be provided with an SQLite3 database file containing two tables, one has details of
famous films, the other has the results of storing the film titles in an unfair set.
One of the rows in the unfairset table is inco
ect. Your program is expected to identify the
single inco
ect row in the unfairset table and to output the name of that film.
This document is for Coventry University students for their own use in completing their
assessed work for this module and should not be passed to third parties or posted on any
website. Any infringements of this rule should be reported to
XXXXXXXXXX.
For example, if the database looked like the example shown in figure 1 then the inco
ect row
would be ”Terminator 2” because the letter m is missing from the matching row in the unfairset
table.
Just as the order of the elements in a set do no matter the order of the elements in letters in
the database rows do not matter, only that they are present.
3 Marking
30% A bug free unfair set implementation which meets all the requirements specified in
section 2.1
20% A comprehensive testing strategy.
10% Automated unit tests.
20% A bug free program that access the SQLite3 database and meets all the requirements
specified in section 2.3.
20% Code elegance and professionalism
Notes:
1. You are expected to use the CUHarvard referencing format. For support and advice on how this
students can contact Centre for Academic Writing (CAW).
2. Please notify your registry course support team and module leader for disability support.
3. Any student requiring an extension or defe
al should follow the university process as outlined
here.
4. The University cannot take responsibility for any coursework lost or co
upted on disks, laptops
or personal computer. Students should therefore regularly back-up any work and are advised to
save it on the University system.
5. If there are technical or performance issues that prevent students submitting coursework
through the online coursework submission system on the day of a coursework deadline, an
appropriate extension to the coursework submission deadline will be agreed. This extension will
normally be 24 hours or the next working day if the deadline falls on a Friday or over the
weekend period. This will be communicated via email and as a CUMoodle announcement.
https:
share.coventry.ac.uk/students/Registry/Pages/Defe
als-and-Extension.aspx
http:
www.coventry.ac.uk/study-at-coventry/student-support/academic-support/centre-for-academic-writing/?theme=main
https:
curve.coventry.ac.uk/open/file
dfb947c-9d43-48d3-8ec8-f511682e1dd1/1/The%20CU%20Guide%20to%20Referencing%20in%20Harvard%20Style.pdf
This document is for Coventry University students for their own use in completing their assessed work for this module and should not be passed to third
parties or posted on any website. Any infringements of this rule should be reported to XXXXXXXXXX.
Marking Ru
ic
This document is for Coventry University students for their own use in completing their assessed work for this module and should not be passed to third
parties or posted on any website. Any infringements of this rule should be reported to XXXXXXXXXX.
    122COM Introduction to Algorithms
Answered Same Day May 28, 2020 122COM

Solution

Snehil answered on Jun 09 2020
143 Votes
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here