Write your own HashTable in Python or Java. Do not use any built in Hashing Structures (dictionaries, Maps,Etc). For Simplicity sake make the underlying structure a basic array or list.
You will :
Read in the file: https://github.com/first20hours/google-10000-english/blob/master/google-10000-english-usa.txt .Store each word in your HashTable for easy lookup. You will have to build a hash() function to give an integer value for your String. Store the String in that index. If a Collision, use a collision mitigation strategy. Calculate and report the percentage of collisions in your structure. Your HashTable may not be more than 20% larger than the # of total words.