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 »
C++ programming of ADT


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 [email protected]. 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 Lecturer 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 arrangement 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 libraries 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 be 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-lab/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 [email protected]. 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 1234567 then you should submit a zip file named 1234567.zip. 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 reiterate: 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, error 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 [email protected]. ◦ size() should return the current 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 removed. ◦ is_in() should indicate if a given character is currently 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/bad programming practices will taken into account when marking. 2.1.2 Rules regarding use of existing code  You cannot use any existing set library 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 library in the STL, boost, EASTL or any other set of libraries.  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 library 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 incorrect. Your program is expected to identify the single incorrect 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 [email protected]. For example, if the database looked like the example shown in figure 1 then the incorrect 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 deferral should follow the university process as outlined here. 4. The University cannot take responsibility for any coursework lost or corrupted 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/Deferrals-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/bdfb947c-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 [email protected]. Marking Rubric 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 [email protected]. 122COM Introduction to Algorithms
Answered Same DayMay 28, 2020122COM

Answer To: This document is for Coventry University students for their own use in completing their assessed...

Snehil answered on Jun 09 2020
135 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