Do my scores approach a normal distribution?
Usage
-
The README contained everything I needed to easily use the program:
-
The program compiles/runs without errors:
-
The program worked as advertised:
as a reviewer said, the error checking needs improvement, when I enter '90%' instead of '90' for the confidence interval
Style
-
The code is cleaning divided into modules and multiple files:
It would have been a cleaner design to separate out the statistical calculations in a separate source file and put only UI code in main(). Like our
wordfreq
project. -
Variable and function names are meaningful:
-
Comments are used where appropriate:
using a standard docstring format would allow for automatic generation of documentation with a tool like Doxygen
Philosophy
-
The program most closely follows the
ed-like
interface pattern:it would make sense to also accept input from standard input, if provide, like
bc
does. A true ed-like interface would have just a single type of prompt, data semantics would be determined by the command, not the prompt. -
This choice of pattern is a good one for this application:
This type of application would be best implemented using a cat-like filter UI pattern. An interactive interface could still be provided as a light wrapper. After I get grades in I will provide an example of how this could be done.
-
This program follows the Rule of Silence and Least Surprise:
Given the implementation as an ed-like interactive program the amount of output was acceptable. Entering the confidence interval as an integer isn't intuitive since it is a percentage. I would expect the program to handle either '90%' or '.90' or '.9', but '90' isn't a valid confidence interval. Also, when I press
Ctrl+d
to close standard input I would expect the program to print summary statistics and exit. -
This program follows the Rules of Modularity and Composition:
I would like to see a cleaner separation between the algorithm and interface
-
This program follows the Rules of Representation and Simplicity:
All data is coming from user input, which is good.