I'm a volunteer math and science tutor with Pathways to Education. I find many students struggle to balance chemical reactions. I looked online for balancing tools. To my chagrin none of these tools listed the steps taken to balance a given reaction. Since I wanted to make a website using AJAX anyway, and test it with Selenium, I figured I would try to make a balancer that showed its work.
I assumed that
- because this project will be used in tutoring, I designed it "large-screen first", versus the standard "mobile first" technique used in designing most of the bbaero site.
- only simple reactions are to be balanced.
- Half-cell reactions and hard-to-balance reactions will fail to balance, even though they may be able to be balanced
- It is a learning opportunity for the student when a reaction is deemed "impossible to balance." Follow-up questions include
- Is this reaction truly impossible to balance?
- If not, how do we balance it?
- What should the computer have done differently?
- and others
- no ions (i.e., particles with non-zero net charges) can be given as reactants or products
- hydrated salts (i.e., with "xH2O" molecules trapped in their crystal lattice) are forbidden
- compounds given are valid. Only elements are checked.
- for example, both H2O and H5O are accepted by the balancer, even though H5O does not exist