Faculty of Technology

Faculty of Technology – Coursework Specification 2019/20

Module name: Data Structures and Algorithms
Module code: CTEC2909
Title of the Assignment: Assignment
This coursework item is: (delete as appropriate) Summative
This summative coursework will be marked anonymously
Yes
The learning outcomes that are assessed by this coursework are: 1 Explain and implement a variety of classical data structures. 3 Analyse specific programming language and library support for the development of sequential programs.
This coursework is: (delete as appropriate) Individual
This coursework constitutes 60% to the overall module mark.
Date Set: Tuesday 22nd October, 2019.
Date & Time Due: Friday 15th November, 2019. 12p.m. (midday).
Your marked coursework and feedback will be available to you on: If for any reason this is not forthcoming by the due date your module leader will let you know why and when it can be expected. The Head of Studies ([email protected] ) should be informed of any issues relating to the return of marked coursework and feedback. Note that you should normally receive feedback on your coursework by no later than four working weeks after the formal hand-in date, provided that you met the submission deadline. Friday, 13th December, 2019.
When completed you are required to submit your coursework to: Blackboard VLE through Turnitin link
Late submission of coursework policy: Late submissions will be processed in accordance with current University regulations which state: “the time period during which a student may submit a piece of work late without authorisation and have the work capped at 40% [50% at PG level] if passed is 14 calendar days. Work submitted unauthorised more than 14 calendar days after the original submission date will receive a mark of 0%. These regulations apply to a student’s first attempt at coursework. Work submitted late without authorisation which constitutes reassessment of a previously failed piece of coursework will always receive a mark of 0%.”
Academic Offences and Bad Academic Practices: These include plagiarism, cheating, collusion, copying work and reuse of your own work, poor referencing or the passing off of somebody else’s ideas as your own. If you are in any doubt about what constitutes an academic offence or bad academic practice you must check with your tutor. Further information and details of how DSU can support you, if needed, is available at: http://www.dmu.ac.uk/dmu-students/the-student-gateway/academic-support-office/academic-offences.aspx and http://www.dmu.ac.uk/dmu-students/the-student-gateway/academic-support-office/bad-academic-practice.aspx
Tasks to be undertaken: See (following) attached document.
Deliverables to be submitted for assessment: See (following) attached document.
How the work will be marked: See (following) attached document.
Module leader/tutor name: Dr. David Smallwood
Contact details: [email protected]

Assignment

About this assessment

This assignment has THREE (3) parts with a total of 100 marks, which will constitute 60% of your final mark for the module. Answer all parts.

The deadline for submitting your work via Turnitin on Blackboard is Friday 15th November, 2019 12p.m. (midday)

Objectives

The objective of this assessment is for you to demonstrate your understanding of issues related to the design and use of sequential data structures and algorithms.

Submission

Submit your work as a single Word document or pdf document through Turnitin via the portal available on Blackboard. Write your answers to the questions in the Word or pdf document.

DO NOT submit any code, either as separate files or within your document. Any code submitted will not be marked.

Marking

For each question, you will receive full marks if the answer provided is fully correct and includes all necessary aspects, and partial marks if the answer has some incorrect parts and/or is missing some essential concepts.

Anonymity

The assignment will be marked anonymously. You will compromise this anonymity if you put your name on the work. Please include your p-number on your assignment.

Assignment Problem Total marks: 100

Your task is to design data structure/s suitable for the following scenario. You may decide that the scenario requires a single data structure, or a combination of data structures – this is up to you to decide and explain. There is no perfect solution – there will be arguments about space and time that pertain to any solution you choose. Please read the whole assignment through carefully before considering your solution.

A computer program is to be written that will:

  1. Read in a complete text document one line at a time
  2. Allow the user to request specific information about the document and respond accordingly. For example, the user may ask the program to list all the line numbers on which a given word appears.

Your task is not to write the program itself, but to design the data structure/s that will most effectively support its operation. This can include (and/or may be any combination of) any of the data structures studied in the module so far, e.g. graphs, hash maps, linked lists, trees.

The data structure you choose to store the words in the document will be empty initially, and then will be updated dynamically as the text file is read in. You can assume that the text file will be read in one line at a time; that the line number is represented as a counter which is incremented after each line is read in; and that once a line of text has been read in, the line is broken up into a list of the individual words on that line.

When deciding upon your solution you should consider the efficiency and performance of the data structure during the ‘build phase’ (as the data structure is populated) and how it will subsequently support the following operations which will be available to the user once the file has been read in completely.

  1. Print all the line numbers on which a given word occurs
  2. Print true/false depending upon whether or not a given word was in the file
  3. Print the total number of times a given word occurs on a specific line (may be zero)
  4. Print all the words that occurred on a given line

In the operations above, a line can be identified by its line number. (There is no given maximum number of lines in the file, nor any given number of words on any line. However, for the sake of a theoretical upper limit, these numbers will not exceed the maximum value that can be stored in a 4-byte integer).

Part 1 – Your solution (40 marks – 20 marks for (a) and (b) together and 20 marks for (c))

(a) Outline any further assumptions you make about how the program will operate that affect your decisions on the data structure. Please note that any such assumptions should be realistic in light of the scenario.

(b) Explain which data structure/s you chose and how it would store the information. The task is to explain how it will be used for this particular problem, not just generic information about the data structure. Be as specific as possible, e.g. if you chose to use a graph, explain details such as what type of graph you are using, whether it will be implemented as an adjacency matrix or adjacency lists, what the vertices represent, what the edges represent, what any weightings on the edges represent, etc. If you used a hash map, state what type the keys and values are, what the keys and values represent, etc. Note that these are just examples of the kind of information required. What you will need to describe will depend on your chosen solution. The idea is to make it clear what the solution is and how the information is going to be represented. You may include some generic diagrams to support your discussion.

(c) Show, using diagrams, how your chosen data structure will look when a relatively small (e.g. around five lines with an average of eight words on each line) number of lines has been input. Write down the actual lines of text used in your example clearly so that they can be checked fully against the pictorial representation you provide. The idea here is to include sufficient information so that the overall structure is fully illustrated. Make sure that your diagram is annotated so that each aspect is clear to someone else reading it. Write down any assumptions that you make. Diagrams that just contain only a few pieces of information will lose marks.

Part 2 – Justification of the choice (20 marks)

Explain the reasons behind your choice of data structure/s. This might include issues like the time complexity of operations that will be used on your structure/s, the space complexity, the ability of your chosen structure to handle a particular kind of information, or any other reasons you had. If relevant, compare it with alternative choices to explain the advantages of your solution. Your justification should discuss the performance of your data structure/s while the program is in its ‘build phase’ (i.e. reading in the text file line by line and adding words to the data structure).

Part 3 – Operations (40 marks – 10 marks for each of the four operations)

For each of the four operations listed above (in the assignment problem section), explain how the operation would work using the data structure/s you chose and what time complexity the operation would have. Make sure that each of the four answers clearly states which operation it relates to, so that the marker cannot misunderstand your explanations. We suggest that you write four subsections (numbered 1, 2, 3, 4) and that you write out the relevant operation at the start of each section: this should provide the necessary clarity to your solutions.

Word Limits

It is expected that in total you will only have one or two pages of text and diagrams. The emphasis in marking will be on whether you explained the relevant points correctly, and not on how long your answers are. Brief paragraphs of about 80-100 words to answer each section would be sufficient as long as the necessary points are mentioned.

END OF ASSIGNMENT

(See the following pages for the Marking Grid).

Mark Range Part 1a and 1b Part 1c Part 2 Part 3
90-100% An appropriate solution with no or very minor typographical errors only, with a clear explanation of the structure’s behaviour, including relevant details as described in the question specification, demonstrating an excellent understanding of the principles. Clear and appropriate diagrams/tables showing the example data or another similar example, with the data correctly represented according to the chosen structure and no errors except minor typographical errors, demonstrating an excellent knowledge of the chosen data structure/s.
An excellent justification of the choice with correct reasoning containing no errors except minor typographical errors. An excellent knowledge of the relevant concepts has been demonstrated.
A clear, correct explanation of how each operation works and the correct time complexity given, with no errors except minor typographical errors. An excellent knowledge of the relevant concepts has been demonstrated.
80-89% An appropriate solution with minor errors only, with a clear explanation of the structure’s behaviour and the chosen solution, including relevant details as described in the question specification, demonstrating a very good understanding of the principles. Clear and appropriate diagrams/tables showing the example data or another similar example, with the data correctly represented according to the chosen structure and only some minor errors that do not indicate a lack of knowledge. The answer demonstrates a very good knowledge of the chosen data structure/s.
A very good justification of the choice with correct reasoning containing only some minor errors. A very good knowledge of the relevant concepts has been demonstrated.
A clear, correct explanation of how each operation works with only minor errors, and the correct time complexity given, or with minor errors which still demonstrate a very good understanding of complexity analysis. A very good knowledge of the relevant concepts has been demonstrated.
70-79% An appropriate solution with minor errors or some minor deficiencies, with a generally clear explanation of the structure’s behaviour and the chosen solution, including most relevant details as described in the question specification, demonstrating a good understanding of the principles. Clear and appropriate diagrams/tables showing the example data or another similar example, with some minor errors in the representation of the data that indicate some incorrect understanding of the chosen data structure/s, but still demonstrates a good level of knowledge.
A good justification of the choice with mostly correct reasoning containing some errors but still demonstrating a good knowledge of the relevant concepts.
A clear, mostly correct explanation of how each operation works with some errors. An incorrect time complexity may have been given, but the answer still demonstrates a good knowledge of complexity analysis, or the other aspects of the answer demonstrate a very good understanding of how the operation works. A good knowledge of the relevant concepts has been demonstrated.
60-69% A solution that is generally appropriate but has some flaws or errors, and/or where the explanation is lacking certain details that make the full intention clear. The solution demonstrates a generally good understanding of the principles. Clear and appropriate diagrams/tables showing the example data or another similar example, with some errors in the representation of the data that indicate some incorrect understanding of the chosen data structure/s, but still demonstrates a generally good level of knowledge.
A generally good justification of the choice with mostly correct reasoning containing some errors but still demonstrating a generally good knowledge of the relevant concepts.
A generally correct explanation of how each operation works with some errors. An incorrect time complexity may have been given, but the answer still demonstrates a generally good knowledge of complexity analysis, or the other aspects of the answer demonstrate a good understanding of how the operation works. A generally good knowledge of the relevant concepts has been demonstrated.
50-59% A solution that is mostly appropriate but has some significant flaws or errors, and/or where the explanation is lacking significant details, but where the overall intent is still clear. The solution demonstrates an adequate understanding of the principles. Generally clear and appropriate diagrams/tables showing the example data or another similar example, with major errors in the representation of the data indicating some incorrect understanding of the chosen data structure/s, but where the general idea appears to be correct. An adequate level of knowledge has been demonstrated.
A sufficient justification of the choice with some errors, demonstrating an adequate knowledge of the relevant concepts. A sufficient explanation of how each operation works with errors, but which still demonstrates an adequate level of knowledge. An incorrect time complexity may have been given. An adequate level of knowledge of the relevant concepts has been demonstrated.
40-49% A solution that will not work correctly as described but is generally adequate if significant flaws or errors are ignored, and/or where the explanation is unclear but appears to have the general idea correct. An understanding of the basic principles has been demonstrated. Generally appropriate diagrams/tables showing the example data or another similar example, with major errors in the representation of the data showing incorrect understanding of the chosen data structure/s. A basic level of knowledge has been demonstrated.
Significant errors in reasoning in the justification of the choice, demonstrating a basic level of knowledge. An incorrect explanation of how each operation works, but which still demonstrates a basic level of knowledge. An incorrect time complexity may have been given. A basic level of knowledge of the relevant concepts has been demonstrated.
30-39% A solution that does not handle the problem as described due to significant problems, and/or where the explanation is so unclear that it is not possible to determine the intent. A weak understanding of the basic principles has been demonstrated. Diagrams/tables that are not appropriate for the chosen structure and/or do not show a suitable amount of data to enable the solution to be assessed, and/or have significant errors in the representation of the data. A weak understanding of the basic principles has been demonstrated.
Incorrect reasoning for the justification of the choice containing significant errors. A weak understanding of the basic principles has been demonstrated.
A weak and incorrect explanation of how each operation works. An incorrect time complexity may have been given. A weak level of knowledge of the relevant concepts has been demonstrated.
20-29% A weak solution that does not handle the problem as described due to significant problems, and/or where the explanation is so unclear that it is not possible to determine the intent. Very low understanding of the principles has been demonstrated. Incorrectly constructed diagrams/tables that are not appropriate for the chosen structure and/or do not show a suitable amount of data to enable the solution to be assessed, and/or have very significant errors in the representation of the data. A very low understanding of the basic principles has been demonstrated.
Incorrect reasoning for the justification of the choice containing significant errors. A very weak understanding of the basic principles has been demonstrated.
A very weak and incorrect explanation of how each operation works. An incorrect time complexity may have been given. A very weak level of knowledge of the relevant concepts has been demonstrated.
10-19% A very weak solution that does not handle the problem as described due to significant problems, and/or where the explanation is so unclear that it is not possible to determine the intent. An extremely low understanding of the principles has been demonstrated. Incorrectly constructed diagrams/tables that are not appropriate for the chosen structure and/or do not show a suitable amount of data to enable the solution to be assessed, and/or have very significant errors in the representation of the data. An extremely low understanding of the basic principles has been demonstrated.
Incorrect reasoning for the justification of the choice containing significant errors. An extremely low understanding of the basic principles has been demonstrated.
The explanation is incorrect and demonstrates an extremely low understanding of the basic concepts.
0-9% An incorrect solution to the problem demonstrating no understanding of the principles. Incorrect diagrams/tables and/or does not show a suitable amount of data to enable the solution to be assessed. No understanding of the basic principles has been demonstrated.
Incorrect or no reasoning for the justification of the choice demonstrating no understanding of the basic principles.
Incorrect or no explanation, demonstrating no understanding of the basic concepts.

Leave a Reply

Your email address will not be published. Required fields are marked *