Semester Project

The following table summarizes the performance of this semester's final project software. Apart from Team ZERO, whose sad story is told below, the Team IDs were generated randomly.

The table is sorted by the program's reliability on part 8 of the test script. That reliability was calculated by subtracting the number of false positives and false negatives and half the number of inaccurate offsets from the number of correctly reported matches, and dividing that result by the number of matches that should have been reported. In the table, negative reliabilities are shown as zero.

Ties were broken by sorting with respect to the software's time efficiency on the stress test (part 10), which is the second most important measure of software quality shown in the table. Programs that took more than 30 minutes to complete the stress test are sorted by their time efficiency on part 8.

Three projects completed the stress test very quickly because they threw an exception. Those projects are listed as failing the stress test.

One team submitted source code (and an executable program) that had been configured to create temporary files in a particular team member's personal directory instead of the /tmp directory. As you might expect, that software performed miserably, failing almost every test we used for grading (because we, like Dan Wear and other users of the software, did not have permission to create files in that student's directory). The program's source code looked fine to the naked eye, however, so I spent some time debugging it. It turns out that correcting just one line of code would have reconfigured that software to use the /tmp directory, and the reconfigured program would have performed the best of all programs submitted instead of being one of the worst. The performance of that corrected program is shown in the line for Team ZERO.

It might be interesting to compare this table to a similar table for the graduate course on software development.

Team ID Primary
Language
LOC Reliability
on part 8
Time (part 8) Time (part 10)
ZERO Python 100% 89s 273s
993 Scheme 1354 100% 76s 579s
720 Python 330 100% 167s 921s
326 Python 563 100% 326s 934s
710 Java 1449 100% 304s 1394s
652 Python 792 100% 579s > 1800s
959 Python 653 92% > 1800s > 1800s
934 Python 947 90% 276s > 1800s
756 Python 209 87% 786s > 1800s
197 Python 538 85% 204s 639s
349 Python 397 75% 769s > 1800s
683 Python 793 72% 250s > 1800s
182 Python 1003 30% > 1800s > 1800s
933 Python 543 0% 171s 487s
940 Python 779 0% 709s > 1800s
648 Python 554 0% 859s > 1800s
990 Python 1226 0% 205s (failed)
222 Python 553 0% (failed) (failed)
910 Python 859 0% (failed) (failed)

Last updated 12 December 2014.

Valid XHTML 1.0!