Project: Implementation

Assigned:
Tuesday, Apr 24, 2018
Due:
Monday, May 14, 2018 by 10:30pm
Collaboration:
You must work collaboratively with your project group to complete your implementation.
Submitting:
Make sure all of your work is committed and pushed to your GitHub repository by the deadline. You must also include an archive of your repository with your final report.

Overview

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:

  1. Is the code clearly written and commented?
  2. Does the code check for errors whenever appropriate?
  3. Does the code compile without errors or warnings?
  4. Does the system work?

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.