Question: Lab 6 : SpellChecker Dictionary Case Study: Choosing Data Structures for Your Apps - Sets and Lists Coding Projects 1 5 0 pts Overview One
Lab : SpellChecker Dictionary Case Study: Choosing Data Structures for Your Apps
Sets and Lists
Coding Projects pts
Overview
One of this course's primary goals is to teach students to develop and apply techniques for choosing optimal data structures based on performance metrics and specific application requirements.
Announcing: Fantastic Summer Internship Available with AI writing assistant Grammarly
Test and Develop new SpellChecker software Apply Here!
image.png
Because of your hard work in this course, let's pretend that you have the fantastic new summer internship opportunity at AI Powerhouse Grammarly to evaluate, compare, and test three alternative algorithms based on a choice of data structures for their new SpellChecker module. Coincidentally, you have recently studied the exact alternative data structures you are asked to evaluate: ArrayLists, HashSets, and TreeSets!
diagramexportAMpng
Your job is to write alternative Spell Checkers using algorithms based on each Data Structure type, write a short theoretical analysis of the predicted efficiency of each data structure using BigO analysis, write test software to measure the actual performance of each using empirical execution timing metric and report your observed theoretical understanding and empirical test results.
Luckily, you are prepared since we have learned that we can compare the relative performance of data structures using mathematical metrics with BigO notation, ranking the performance of algorithms without reference to underlying machine architectures. We haven't previously measured the predicted behavior using actual measured program execution time, but now we will. Will our testing confirm our theoretical expectations for the data structures we are testing?
A Question of War and Peace
warandpeacepngalice.png
In addition to studying data structures and algorithms and preparing for your internship, this week, we will also study two great literary works: War and Peace, one of the longest novels ever written, and Alice in Wonderland. Don't worry; you don't have to buy the books.
But you must read both books, not just once, but many times. Luckily, your math homework won't suffer too much since we will allow you to have your computer to do the reading!
So you won't be tested on your reading comprehension, but you WILL be tested on your spelling. Again your computer will do the spell checking.
That's because, for this assignment, you will be required to write a SpellChecker, not just one, but three, and it will be up to you to determine which SpellChecker works best and why.
So what do I have to do
Your task is to analyze and test several data structures to spellcheck large text files against a dictionary. Your analysis should be theoretical, using BigO analysis, and empirical, using timed tests.
Learning Objectives:
In addition to illustrating techniques for comparing algorithms and data structures, For this assignment, you will get additional practice with the Java Collections List and Set classes we have been studying, including Hashset, Treeset, and ArrayList, which we will use to store our dictionaries and documents for our SpellChecker methods, comparing the performance of each data structure we use.
We will also use Java IO reader classes FileReader and BufferedFileReader to input our dictionary and document files into our List and Set data structures.
We will use a custom Timer class to calculate the relative performance of our List and Sets. The class hierarchy of these classes is shown below:
diagramexportAMpng
Finally, you will analyze your results using BigO notation, the mathematical notation we have been studying to describe the time complexity of algorithms. As you recall, this notation allows us to compare algorithms without reference to machine architectures We will supplement this analysis with empirical data derived from the execution time metrics we gather from using the Timer class.
Project Development Process
Step :
SpellCheckApp Enhancement
Create a new project in IntelliJ called SpellCheck or a name of your choice. Add a Java class to your src directory called SpellCheck.java. Download SpellCheck.java Download SpellCheck.javahere and replace the empty code file in IntelliJ.
Follow the tutorial on setting up a file path in IntelliJ using a resources directory.
Add the words Download wordsand alicetxt Download alicetxtfile to your new resources directory.
In part we will use a third file: WarandPeace.txt Download WarandPeace.txt You should download and install this file too in your resources folder while you're here.
Test the SpellCheck executable using the provided data files. This program reads the words dictionary and a document file Allice in Wonderland reports the document and mismatched word counts, and pri
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
