582484 Algorithm Libraries

Programming Project

Instructions

Deadlines

Grading

Topics

  1. Huffman coding. Implement a file compressor/decompressor based on Huffman coding.
  2. Blackjack simulation. Blackjack is a popular game of chance in casinos with consistent winning strategies based on card counting. Implement a simulation that plays a large number of games to find out how much one wins or loses in the long run with or without card counting.
  1. Dijkstra's algorithm. Implement Dijkstra's algorithm for computing shortest paths in a graph. Subtasks include:
    • simple graph class based on adjacency lists
    • priority queue that supports decrease_key operation
  2. Self-organizing lists. Implement the self-organizing lists described in this article. Test them with word counts as in the article.
  1. Statistical analysis. Implement the computation of various simple statistical measures:

    Implement the computation as algorithms taking data in as an iterator range. Implement also a program that reads data from a file and applies the algorithms.

  2. STLize. Rewrite some non-STL code you have written earlier using STL extensively.

  3. Own topic.