Assessment Task
Your task is to build a simple, console-mode application (no GUI required) to allow a user to search for local points of interest (POIs), such as restaurants, cafes, historical sites or pubs/bars, and document how you have used the data structures and algorithms covered in the module to build the application. More detail on the requirements of the report is given below.
The following functionality must be available.
Tasks 1-5 (necessary to complete all to gain Grade C)
1. The user must be able to add a new point of interest. They must provide, at the very least, a name, type, and a description. (You may also ask the user for other information if you believe it is necessary, but I will leave it up to you to decide).
2. The user must be able to search for a specific POI (I will leave it up to you as to how you identify specific POIs).
3. The user must be able to display all POIs, sorted by name.
4. The user must be able to search for a POI by name. (It is possible that there are two POIs with the same name)
5. The user must be able to delete a specific POI (I will leave it up to you as to how you identify specific POIs).
Task 6 (needs to be completed or mostly completed for a Grade B)
6. A user should be able to make an enquiry about a particular point of interest, such as “Does your restaurant offer vegan or gluten-free food?”. “What time will the concert end?”, etc. The application must allow the user to do this.
The staff of the POIs can then view and answer these enquiries using the same application. In a real-world case, the staff would have to login to answer the enquiries, but for this assignment, you do not need to implement login functionality. Just add the “answer enquiries” functionality as an option in the application. Answering an enquiry should simply remove the enquiry from the collection of enquiries – you do not actually need to ask the staff to write text to answer the enquiry. Enquiries must be answered in the order they come in (the first enquiry should be answered first)
Task 7 (needs to be at least partially completed for a Grade A)
7. Add routing functionality to the application. A user must be able to find a route between the railway station, or bus station, and any given POI.
To do this, you need to draw a diagram showing the connections between each POI, and with the rail or bus station. Make sure that the rail and bus stations are not directly connected to all POIs (though they may be directly connected to some of them).
Create an appropriate data structure and develop an appropriate algorithm to perform this routing, and integrate it into the application so that the user can enter start and end points, and the application will show them the route, by listing all the intermediate POIs along the way. It is not necessary to show the direction the user needs to walk – for example, a route reading “Go to Jack’s Cafe, then to the Red Lion pub, then to the Taste of India restaurant” will be sufficient.
Conditions
As this is a data structures and algorithms module, you must develop your own algorithms, and not use the algorithms provided with the programming language (so, for example, you cannot use a pre-written sort() function; you must select and code your own sorting algorithm). However you are allowed to use the language’s in-built data structures as long as you clearly justify your choice of data structures in your report.
Report
Your report must detail how you used the data structures and algorithms learnt on the module to develop the application detailed above. In particular, you must, for each task, do the following. (Each of these three corresponds to one of the three marking criteria)
1) Select an appropriate data structure and/or algorithm appropriate for the task. You must justify why you made your choices, explaining how your choices are appropriate for the task in terms of performance, maintainability, and/or memory usage – and why any alternative choices would be less suitable. Mathematical principles supporting your choices must be included in this discussion.
2) Describe in detail how you coded your chosen algorithms, and data structures if necessary. For example, you would discuss here how you wrote the code for a particular searching or sorting algorithm.
3) Describe how your program as a whole uses data structures and algorithms, including the in-built data structures of the programming language and your own algorithms. For example, you would discuss how your program uses a stack, queue, linked list, hash table or tree to store and manipulate your points of interest.
Please note, there is an IMPORTANT DISTINCTION between tasks 2 and 3. Task 2 involves discussion on how the code for the algorithms themselves (and any custom data structures) was developed, for example, an explanation of the operation of your sorting algorithm. Task 3 is a discussion on the workings of the FINISHED APPLICATION as a whole, with a focus on how the application USES the chosen data structures and algorithms.
Tasks 2 and 3 must be backed up with working code. It is not possible to gain the credit for these tasks from a discussion alone.
Page Break
| ASSESSMENT | CRITERIA |
|
|
Unclassified Grades: N,S, F3,F2,F1 | 3rd | 2.2 | 2.1 | 1st |
1) Justification of data structures and algorithms used – 40% | ||||
Does not reach the required threshold | Data structures and algorithms justified for some tasks, but no consideration of alternatives.
Some reference to mathematical principles in discussion.
Justification may be unclear in places or may miss out key evaluation criteria such as performance, maintainability or memory usage. | Clear justification of data structures and algorithms used for tasks 1-5, with some consideration of alternatives. Discussion backed up by mathematical principles. | Clear justification of data structures and algorithms used for all tasks 1-6, with comprehensive consideration of alternatives
Discussion and comparison of approaches backed up by mathematical principles. | Highly clear and insightful justification of data structures and algorithms used for all tasks 1-7, with comprehensive consideration of a range of alternatives in all cases
Discussion and comparison of approaches backed up by mathematical principles. |
2) Detail on algorithm (and data structure, if appropriate) implementation (this must be backed up with code, you cannot gain the credit for a writeup alone) – 30% | ||||
Does not reach the required threshold | Implementation details for how you have coded the algorithms for the majority of tasks 1-5. May be vague in places or an inappropriate choice may be made in a minority of cases. | Implementation details for how you have coded the algorithms for tasks 1-5, which must be clearly written in the majority of cases. | Implementation details for how you have coded the algorithms for tasks 1-6, which must be clearly written in all cases.
| Implementation details for how you have coded the algorithms for tasks 1-6, which must be clearly written in all cases.
Implementation details for data structures and algorithms used for task 7 must be at least partly present, and must be complete and clearly written for higher grade As. |
3) How data structures and algorithms have been used in your application (this must be backed up with a working application, you cannot gain the credit for a writeup alone) – 30% | ||||
Does not reach the | Implementation details for how the data structures and algorithms have been used in your application for the majority of core tasks. May be vague in places or an inappropriate choice may be made in a minority of cases. | Implementation details for how the data structures and algorithms have been used in your application for tasks 1-5. Must be clearly written in the majority of cases.
| Implementation details for how the data structures and algorithms have been used in your application for tasks 1-6. Must be clearly written in all cases | Implementation details for how the data structures and algorithms have been used in your application for tasks 1-7. Must be clearly written in all cases |
Learning Outcomes
This assessment will enable students to demonstrate in full or in part the learning outcomes identified in the Module descriptors.
Late Submissions
Students are reminded that:
If this assessment is submitted late i.e. within 5 working days of the submission deadline, the mark will be capped at 40% if a pass mark is achieved;
If this assessment is submitted later than 5 working days after the submission deadline, the work will be regarded as a non-submission and will be awarded a zero;
If this assessment is being submitted as a referred piece of work then it must be submitted by the deadline date; any Refer assessment submitted late will be regarded as a non-submission and will be awarded a zero.
Extenuating Circumstances
The University’s Extenuating Circumstances procedure is in place if there are genuine circumstances that may prevent a student submitting an assessment. If students are not 'fit to study’, they can either request an extension to the submission deadline of 5 working days or they can request to submit the assessment at the next opportunity (Defer). In both instances students must submit an EC application with relevant evidence. If accepted by the EC Panel there will be no academic penalty for late submission or non-submission dependent on what is requested. Students are reminded that EC covers only short term issues (20 working days) and that if they experience longer term matters that impact on learning then they must contact the Student Hub for advice.
Please find a link to the EC policy below:
Academic Misconduct
Any submission must be students’ own work and, where facts or ideas have been used from other sources, these sources must be appropriately referenced. The University’s Academic Handbook includes the definitions of all practices that will be deemed to constitute academic misconduct. Students should check this link before submitting their work.
Procedures relating to student academic misconduct are given below:
Ethics Policy
The work being carried out by students must be in compliance with the Ethics Policy. Where there is an ethical issue, as specified within the Ethics Policy, then students will need an ethics release or an ethical approval prior to the start of the project.
The Ethics Policy is contained within Section 2S of the Academic Handbook:
Grade marking
The University uses a letter grade scale for the marking of assessments. Unless students have been specifically informed otherwise their marked assignment will be awarded a letter grade. More detailed information on grade marking and the grade scale can be found on the portal and in the Student Handbook.
Guidance for online submission through Solent Online Learning (SOL)
0 comments:
Post a Comment