The largest component of this project is the actual implementation. You are free to divide up the implementation work as you see fit, and you are welcome to use the language(s) of your choice, provided you stay within the vicinity of your proposed project. Every group member must play a significant role in the implementation, but you are welcome to divide up implementation tasks.
Your implementation will be evaluated using several criteria:
While the first three pieces should be easy to evaluate, it may be difficult to say whether your system works. Two weeks is a very short time for a large implementation project, so I understand that you may run into issues and your plans could change. I have tried to offer advice about which parts you could drop if you run into issues in my proposal feedback, but if you hit a major roadblock and need to change your project I am happy to help.
To show that your system works, you must provide a README file that precisely describes the basic use of your system, including both general instructions and a specific example that walks through an interaction with the system and the expected output.
Your implementation must also include all necessary source and data files and a Makefile that allows me to build your project with the make command.
You must store your code on GitHub. I will use GitHub to verify that all group members are contributing to the project; this means you must make regular commits with detailed commit messages, including a note about who is working when you commit work from a pair programming session. If you would prefer not to make your code public you can create a private repository and add me as a collaborator. I can help you set this up if you are not an experienced GitHub user.