1. Homepage
  2. Programming
  3. COMP5008 Data Structures and Algorithms - Assignment: keyMeUp

COMP5008 Data Structures and Algorithms - Assignment: keyMeUp

Engage in a Conversation
Curtin UniversityAustraliaCOMP5008Data Structures and AlgorithmsGraph AlgorithmkeyMeUpKeyboard

 Data Structures and Algorithms CourseNana.COM

Assignment v1.0 CourseNana.COM

Semester 2, 2022 CourseNana.COM

  CourseNana.COM

1 Introduction CourseNana.COM

  CourseNana.COM

In practicals you have implemented and learned about a number of algorithms and ADTs and will be implementing more of these in the remaining practicals. In this assignment, you will be making use of this knowledge to implement a system to explore and compare a variety of ADT implementations. Feel free to re-use the generic ADTs from your practicals. However, remember to self-cite; if you submit work that you have already submitted for a previous assessment (in this unit or any other) you have to specifically state this. Do not use the Java/Python implementations of ADTs – if in doubt, ask. CourseNana.COM

  CourseNana.COM

2 The Problem CourseNana.COM

  CourseNana.COM

This assignment requires the extension of your graph code, or other approach(es), to determine the optimal series of moves to enter a string into a virtual keyboard. Movement is limited to up|down|left|right and selecting a key. Some keyboards have modes to enter upper/lowercase and numbers/punctuation. They also can wrap around the left|right|top|bottom or be limited at the edges. Your task is to build a representation of the keyboards and explore the steps for entering strings and find the “best” steps for a given string. CourseNana.COM

Images of virtual keyboards will be provided. You will need to decide on a way of representing keyboards in files to use as input to the program. You might want to start with 10-17 key numeric keyboard. CourseNana.COM

Your program should be called keyMeUp.py/java, and have three starting options: CourseNana.COM

• No command line arguments : provides usage information CourseNana.COM

• "-i" : interactive testing environment (java|python keyMeUp[.py] –i) CourseNana.COM

• "-s" : silent mode (java|python keyMeUp[.py] –s keyFile strFile pathFile) CourseNana.COM

  CourseNana.COM

When the program starts in interactive mode, it should show the following main menu: CourseNana.COM

(1) Load keyboard file CourseNana.COM

(2) Node operations (find, insert, delete, update) – can build/extend keyboards CourseNana.COM

(3) Edge operations (find, add, remove, update) CourseNana.COM

(4) Display graph CourseNana.COM

(5) Display graph information CourseNana.COM

(6) Enter string for finding path CourseNana.COM

(7) Generate paths CourseNana.COM

(8) Display path(s) (ranked, option to save) CourseNana.COM

(9) Save keyboard CourseNana.COM

  CourseNana.COM

You can structure the menu/UI differently, just make sure at least those feature options are included. CourseNana.COM

When running in silent mode, you will give the input and output files on the command line. CourseNana.COM

keyFile – the file representing the keyboard CourseNana.COM

strFile – file containing one or more strings to generate paths for CourseNana.COM

pathFile - output the [ranked] paths to a file, with a score/rating. CourseNana.COM

  CourseNana.COM

Once you have a working program, you will showcase your program, and reflect on its performance. This investigation will be written up as The Report. CourseNana.COM

Remember: think before you code! CourseNana.COM

  CourseNana.COM

3 Submission CourseNana.COM

  CourseNana.COM

Submit electronically via Blackboard. CourseNana.COM

You should submit a single file, which should be zipped (.zip) or tarred (.tar.gz). Check that you can decompress it on the lab computers. These are also the computers on which your work will be tested, so make sure that your work runs there. The file must be named DSAAssignment<id> where the <id> is replaced by your student id. There should be no spaces in the file name; use underscores as shown. CourseNana.COM

  CourseNana.COM

The file must contain the following: CourseNana.COM

Your code. This means all .java/.py files needed to run your program. Do include code provided to you as part of the assignment if that is required to run your program. CourseNana.COM

README file including short descriptions of all files and dependencies, and information on how to run the program. CourseNana.COM

Your unit test harnesses. One of the easiest ways for us to be sure that your code works is to make sure that you’ve tested it properly. A test harness for class X should be called UnitTestX. CourseNana.COM

Project Report for your code, as described in Section 3.1. CourseNana.COM

A signed and dated cover sheet. These are available from Blackboard with the assignment specification. You can sign a hard copy and scan it in or you can fill in a soft copy and digitally sign it. CourseNana.COM

• Java Students: o Do not include .class files or anything else that we do not need. We will recompile .java files to ensure that what we’re testing is what we’re reading. We will use javac *.java to compile your files and run the unit tests by their expected names. CourseNana.COM

  CourseNana.COM

  CourseNana.COM

Make sure that your file contains what is required. It is your responsibility to make sure that your submission is complete and correct. CourseNana.COM

3.1 Project Report CourseNana.COM

You need to submit documentation in docx or pdf format. CourseNana.COM

Your Report will be around 6-10 pages (excluding UML and Javadocs [if used]) – it can be longer. It should include the following: CourseNana.COM

User Guide: how to use your simulation, and an overview of your program's purpose and features. CourseNana.COM

Description of Classes: you need to let us know not only what the purpose of each class is but why you chose to create it. As part of this, also identify and justify any places where it was possibly useful to create a new class but you chose not to, especially when it comes to inheritance. CourseNana.COM

Justification of Decisions: when you choose an ADT, underlying data structure or an algorithm, you need to justify why you chose that one and not one of the alternatives. CourseNana.COM

• UML Class diagram CourseNana.COM

Traceability Matrix of features, implementation and testing of your code CourseNana.COM

Showcase of your code output, including 3 scenarios: CourseNana.COM

Introduction: Explain the features you are showcasing/investigating through 3 scenarios: e.g. you can compare different keyboards on the same strings, look at the effect of strings with (or without) caps/no-caps/numbers/punctuation, impact of wrap/no-wrap… CourseNana.COM

Scenario1: Describe how you have chosen to set up and compare your code run for the showcase. Include commands, input files, outputs – anything needed to reproduce your results. Discuss your results. CourseNana.COM

Scenario2 & Scenario3: (as above) CourseNana.COM

Conclusion and Future Work: Reflect on your implementation and how it might be improved. What further investigations and/or extensions could be added? CourseNana.COM

  CourseNana.COM

  CourseNana.COM

3.3 Requirements for passing the unit CourseNana.COM

Students must submit an assignment worthy of scoring 15% to pass the unit. CourseNana.COM

This assignment has many correct solutions so plagiarism will be easy for us to detect (and we will). For information about plagiarism, please refer to http://academicintegrity.curtin.edu.au. CourseNana.COM

In the case of doubt, you may be asked to explain your code and the reason for choices that you have made as part of coding to the unit coordinator. A failure to adequately display knowledge required to have produced the code will most likely result in being formally accused of cheating. CourseNana.COM

Finally, be sure to secure your code. If someone else gets access to your code for any reason (including because you left it on a lab machine, lost a USB drive containing the code or put it on a public repository) you will be held partially responsible for any plagiarism that results. CourseNana.COM

3.4 Late Submission CourseNana.COM

If you need extra time, and have a valid reason, you should apply for an extension through Oasis. Late submissions will incur a daily deduction. CourseNana.COM

3.5 Clarifications and Amendments CourseNana.COM

This assignment specification may be clarified and/or amended at any time. Such clarifications and amendments will be announced via Blackboard. These clarifications and amendments form part of the assignment specification and may include things that affect mark allocations or specific tasks. CourseNana.COM

Get in Touch with Our Experts

WeChat WeChat
Whatsapp WhatsApp
Curtin University代写,Australia代写,COMP5008代写,Data Structures and Algorithms代写,Graph Algorithm代写,keyMeUp代写,Keyboard代写,Curtin University代编,Australia代编,COMP5008代编,Data Structures and Algorithms代编,Graph Algorithm代编,keyMeUp代编,Keyboard代编,Curtin University代考,Australia代考,COMP5008代考,Data Structures and Algorithms代考,Graph Algorithm代考,keyMeUp代考,Keyboard代考,Curtin Universityhelp,Australiahelp,COMP5008help,Data Structures and Algorithmshelp,Graph Algorithmhelp,keyMeUphelp,Keyboardhelp,Curtin University作业代写,Australia作业代写,COMP5008作业代写,Data Structures and Algorithms作业代写,Graph Algorithm作业代写,keyMeUp作业代写,Keyboard作业代写,Curtin University编程代写,Australia编程代写,COMP5008编程代写,Data Structures and Algorithms编程代写,Graph Algorithm编程代写,keyMeUp编程代写,Keyboard编程代写,Curtin Universityprogramming help,Australiaprogramming help,COMP5008programming help,Data Structures and Algorithmsprogramming help,Graph Algorithmprogramming help,keyMeUpprogramming help,Keyboardprogramming help,Curtin Universityassignment help,Australiaassignment help,COMP5008assignment help,Data Structures and Algorithmsassignment help,Graph Algorithmassignment help,keyMeUpassignment help,Keyboardassignment help,Curtin Universitysolution,Australiasolution,COMP5008solution,Data Structures and Algorithmssolution,Graph Algorithmsolution,keyMeUpsolution,Keyboardsolution,