1. A method of evaluating a software program, the method comprising: receiving, by an evaluation computing device, a proposed problem application, a master solution associated with the proposed problem application, a score value for each of one or more solution attributes associated with the proposed problem application, and a submitted response to the proposed problem application; identifying, by the evaluation computing device, the one or more solution attributes in the master solution and corresponding one or more response attributes in the submitted response to the proposed problem application; generating, by the evaluation computing device, one or more master test case outputs corresponding to one or more first test cases, and a scoring profile for the proposed problem application based on the received score value for each of the one or more solution attributes, wherein the one or more first test cases are based on the identified one or more solution attributes in the master solution, and comprise one or more static test cases; generating, by the evaluation computing device, one or more submitted response test case outputs by applying the generated one or more first test cases to the corresponding one or more response attributes in the submitted response to the proposed problem application; comparing, by the evaluation computing device, the one or more submitted response test case outputs with the corresponding one or more master test case outputs; and providing, by the evaluation computing device, an assessment of the submitted response to the proposed problem application based on the comparison of the one or more submitted response test case outputs with the corresponding one or more master case outputs, the assessment comprising an overall score based on applying the scoring profile to the one or more submitted response test case outputs.