[1/31/2015] Revision of Requirement 3: Instead of outputting the encoded text as ASCII characters using the extended set, I want you to display your resulting code. That is, for each plain-text character in the input, show the encoding that your Huffman code uses as a string of 1’s and 0’s. Your output should be ordered by frequency; each line should have a character followed by its 1-0 encoding.
Finally, your output should display the bit-length of the given input (i.e., number of characters times eight) and the bit-length of your encoding using the Huffman code.
In this project, you will, among other things:
For this project, you will write a program that creates a Huffman Code for a given document and then encodes that document using that code. In this course I normally allow you to use whatever programming language you would like. In this case, I'm only requiring that your program run on my laptop and work with standard input and output (i.e., on the command line). Your implementation should take input from standard input (either typed, terminated by EOF, or redirected from a file) create a Huffman code for that input, and output the encoded version of the file using the code that you created.
This is an individual assignment. Appropriate expectations on working together apply. If you search for them, you can find many implementations of the Huffman coding algorithm. It is not the goal of this exercise to end up with a compression programm; the goal is for you to learn about Huffman codes and information through the process of implementing the algorithm. Do not short-change your own learning experience by grabbing an implementation from the web and then making a few changes.
Submit a README file together with your program file(s) in either .tgz or .zip format. Your README should describe how to use or run your program. Document your code appropriately. Describe any significant discoveries or learning experiences you encountered during the process.