Predict the Next Play in an NFL Game

Due: 26 Nov 2013

Educational objectives: Implementing efficient data structures and comparing the performance of different data structures.

Statement of work: Implement code for the NFL play prediction problem using two different data structures as follows. (i) Implement a good hash function for NFL plays and use the STL unordered_set to store the plays. (ii) Implement any other efficient data structure to store NFL plays. You may combine different containers, create your own container, or use STL containers and algorithms. Compare the performance of the above two data structures. You will be graded on correctness and performance. So, please use good compiler optimization flags in your makefile. You may also use OpenMP to improve the performance of your code.

Deliverables: Turn in a makefile and all header (*.h) and cpp (*.cpp) files that are needed to build your software. Turn in your development log too, which should be a plain ASCII text file called LOG.txt in your project directory. This file should also contain a brief description of your hash function and your data structure. Also turn in an ASCII file, testing.txt, describing how you tested your code. This file should describe any remaining run time errors in your program. You will lose points for errors that we discover which were not identified by you in the above file. You will submit all of these as described in www.cs.fsu.edu/~asriniva/courses/DS13/HWinstructions.html.

Requirements:

A sample executable will not be provided. You need to develop good test cases to verify the correctness of your program. The .csv files are already available there under the NFLData subdirectory of proj1.

Notes:

1. Your program should not have any output other than those specified above.

2. You may lose points if your code is very inefficient.

Bonus points:

You may get up to 50 additional points if your code is correct and the fastest in class. You may get up to 25 bonus points if your data structure or an unordered_set with your hash function works correctly and is substantially faster than our solution to assignment 1.

Copyright: Ashok Srinivasan, Florida State University.


Last modified: 6 Nov 2013