Reference no: EM133836054
Lab 1:
So now that you have studied bloom filters your boss (me in this case) wants you to use a Bloom filter in the solution to a simple application they want you to create because they have read that bloom filters are so space efficient and fast, and we expect the list grow very large eventually.
The application is to simply take a single string composed of a first and last name and answer a basic query about our customer list.
Query >> Is the name N in our Customer list?
Name : N
N is NOT a Customer
Or it says
N is PROBABLY a Customer // display the probability of correctness
Deliverables: (turn in to drop box in D2L)
Part 1 : Implementation
List.txt file
Your source code in plain text (.txt) format
A readme file that details how to run your program
Screenshots of your code running and querying with several examples of customers in the list and customers not in the list
Part 2 : Questions from Boss
Document answering questions, well formatted with proper spell and grammar checking
Assignment Requirements on next page.
Part 1
You are to implement this program in the language of your choice. Requirements
Create a text file called "list.txt" with at least 30 names. One name per line. With one space between
the First and Last Name.
Use this list file to create your Bloom Filter. Do not store the list of names as part of the program!!!!!!!
In a loop, have the user enter the First and Last name as a string and then answer the query as stated above. Repeat this until the user enters the string END END and then end the program.
You should NOT implement the Bloom Filter yourself. You should be able to find an open-source library that you can download and use in your language. (If you are using some less used language you may have to go to one that has a Bloom filter library available)
Part 2
Answer the questions your Boss has about your implementation. This explanation should be communicated in a way that a non-technical person (your boss in this case) can understand. Get professional assignment writing service now!
Why the heck cant you just tell me if they are in the list or not? I mean, if they are not (NOT in the list)
they are in the list then, right? Can't you just do that? Explain that to me.
You display this probability for being in the list. It's always the same for each name. Why is that? and what are the trade-offs for having a higher or lower probability (if that is even possible)? Explain that to me.
Lab 2:
Attached to this dropbox is a "Disk" library which can be used to read and write blocks in a binary file. Think of it like a disk driver! It's just a simple class, which holds a file handle to the backing file and exposes "readBlock()" and "writeBlock()" methods which can be used to read/write one block at a time. It also keeps track of how many block reads/writes have occurred, which you can print by calling a third "printStats()" method. A small example file is also included, showing how it works.
Implementations in C/C++ and Python 3 are provided. If you'd like to use another language, feel free, but you'll need to first implement this class yourself in that language. Shouldn't be too hard though, it's well documented in the code. J
Also attached to the dropbox is a "dFAT" disk image (like we discussed in the lecture), containing several files and directories. It uses a block size of 512.
I'd like you to implement a "dbrowse" program of your own, like I showed in the live demo, which is capable of performing the actions below. It should utilize the provided "Disk" class to access the underlying file (do not change the Disk file, consider it a driver that you cannot change), so that statistics can be printed at the end. When run, it should print the disk label, and then let the user do any of the following...
dir List contents of current directory. Print type, size (for files), and name.
cd <dir> Change directory ("cd .." should go to the parent directory).
read <file> Read and print the contents of a file.
pwd Print the current working directory.
help Lists the commands available, how to use them and what they do.
As you work, test your program against the provided disk image. Ultimately you should be able to browse the directories in the image and read any files you find.
Feel free to implement extra commands as a stretch goal, but the commands above are required for full credit.
Style and presentation counts! It doesn't have to look like mine, but it should be easy to read and understand what information is being displayed.
Deliverables:
Please turn in...
Your code, as plaintext file(s) (.txt files).
A screenshot of it running on the provided disk image, showing that each command fully
works.
Please do not zip the files, upload them individually.