In this assignment students work either individually or in pairs to implement the Huffman Compression. Before beginning to code, students must write a software design document that plans the functions that they will use. The program itself must prompt the user for a file and then compress the file using Huffman Compression. In addition to reviewing trees and dictionaries, this assignment requires students to carefully design and test their code. It is particularly useful for students who are new to trees and need additional practice designing large programs that involve more complex data structures.
Make the Context even more Meaningful and Relevant by connecting the concepts to a real-world scenario that doesn't include a high-tech company. Encourage students to use the Pair Programming learning strategy to facilitate concept understanding and exploration.
Provides a fictitious backstory about a company looking to implement a specific compression algorithm (Huffman) to Employ Meaningful and Relevant Content. Incorporates Student Choice by permitting the implementation of additional features for extra-credit.