# College Algebra with Python: Inconsistent project requirements

The College Algebra with Python course has 5 certification projects, 3 of which has so-called boilerplate notebooks, yet every one has different descriptions of requirements of the project between the instruction page and the notebook.

Take the Multi-Function Calculator project as example. The instruction page lists the following requirements:

• solve proportions
• solve for x in equations
• factor square roots
• convert decimals to fractions and percents
• convert fractions to decimals and percents
• convert percents to decimals and fractions

But the notebook lists the followings:

• Detect prime numbers
• Generate prime factors of a number
• Simplify square roots
• Solve for a variable

And for the project Graphing Calculator, the instruction page lists the following requirements:

• Graph one or more functions
• Create a table of (x,y) values
• Shade above or below the line
• Solve and graph a system of equations
• Zoom in or out on a graph

But the notebook lists those:

• Display the graph and a table of values for any “y=” equation input
• Solve a system of two equations without graphing
• Graph two equations and plot the point of intersection
• Given a, b and c in a quadratic equation, plot the roots and vertex

And in the Financial Calculator project, the instruction page list these:

• Calculate annuity with monthly or continuous growth
• Calculate monthly mortgage payment
• Estimate retirement investment balance
• Determine how long until an amount doubles, given the rate
• Solve logarithmic equations
• Convert to (and from) scientific notation

But the notebook lists those:

• Mortgage payment - given principle, rate, time
• Retirement account balance at time of retirement
• Time required for money to double - given the rate
• Rate of growth - given starting value, time, and ending value

As someone who has finished the curriculum and claimed certification, all I can say is I take the requirements listed in the notebook as the baseline ones, and incorporate the requirements listed in the instruction pages as much as possible. For the Multi-Function Calculator project, it may be easily done by just adding the functions for solve proportions and convert decimals, fractions and percents. But for the Graphing Calculator project, to incorporate the requirements of shading above or below the line and zooming can only be done by adding those features into every graph. And for the Financial Calculator project, I did add scientific notation conversion functions, though questioning myself “are they really financial calculation?” But “solve logarithmic equations”? I can only conclude It is too vague to do anything.

By the way, certain words used in the requirements are ambiguous, like “solve and graph a system of equations.” Is it refers a system of two linear equations, a system of two equations, including linear and non-linear ones, or a system of any N equations? Campers can only guess the intention by relating to what are taught. In this case, the notebook does teach solving and graphing two linear equations, so it might be the baseline requirement, though it can be extended to non linear ones. And solving any N equations perhaps can be done with Sympy, but graphing beyond two dimension perhaps is too much to ask for.

Another issue, perhaps related one, is the instruction pages of these 3 projects all state “once you complete the project and it passes the test (included at that link)”. Anyone who has read it may think there are tests for the projects, and they will reveal the true intended requirements. But no, the tests are only for the earlier instructed steps in the notebooks, for the certification projects, there are no test. So the campers can put anything they honestly think are fulfiling the requirements, and let concerned reviwers( if there are) to do the check.

Sze,
Thank you very much for pointing out those inconsistencies. Your feedback helps. I will go back and rewrite some of the text to incorporate your suggestions. I’m glad you finished the course, and I hope you learned a lot from it
-Ed
ed@freeCodeCamp.org

Thanks for taking seriously the feedback.