Math Solver  Beta for Android
The steps given from the program will help you learn the processes for solving these types of equations, it is not intended to facilitate cheating in assignments. There is no way to prevent cheating on assignments with this application. However, students who use it for cheating will not understand the processes of this discipline, which will hinder them in more advanced maths.
Cheating = No learning!
No learning = No knowledge!
No knowledge = No passing!
===============
Why?
===============
As a student at university with a major in Computer Science, I am required to learn mathematics in order to understand how certain parts of algorithms work.
Why some algorithms are fast, while others are slow? What steps do I need to take in order to make it easier to create features for program? Without maths, it's very difficult to do this.
It occurred to me that the best way that I learn personally is through trial and error. An example of this situation would be if I was asked to solve the equation "2x=20". Normally, I will attempt this on paper several times before getting it right, but in the course of doing so I will try several different techniques; many of which will are incorrect. This causes substantial confusion, and isn’t a very efficient way to learn. In the process of solving this problem, several questions arise:
What is the desired outcome of "2x=20"?
Why is the 'x' there, and what does it mean?
Why is there an equals sign in "5x=9"?
Why can't I solve for x in "2x+y=21"?
One of my solutions to these questions was to look for a program that allows me to see the required steps in order to solve an equation. There are plenty of applications out there, but they generally require payment and either don't work as required, or cost too much for a student.
Therefore, I decided to create a program that focuses on one aspect of learning mathematics.
===============
How?
===============
Following the same principles of mathematics, I created an algorithm that runs a process to solve an equation, in a way most reasonable humans would solve it.
Why an algorithm?
We can use a regular calculator to solve any equation given to us that does not contain a variable, such as:
5+2x4+25/55
The calculator solves the equation and tells us the final answer almost instantaneously:
5+2x4+25/55 = 13
Oh cool! This makes it so much easier to get a result, so I can write down my answer.
But... there's one thing missing. Why is the final answer 13?
If we added in brackets to show how we solved this equation on paper ((((5+2)x4)+25)/5)5), shouldn’t that evaluate to 5.6?
This application is aimed at people who are learning mathematical equations, or who simply forget how to BEDMAS on occasion. It will both solve the problem, and write a description for each step taken in order to get the final result. After this project has been completed, I hope this will benefit others in the same way that it has benefited me.
Each of the descriptions for understanding the equation is based on my own subjective experiences of the evaluation process, but I plan to do further user testing based on the feedback from other users.

Special thanks to these amazing people!
Emily Clemens, Dylan Macdonald, Elf Eldridge, Dillon Mayhews, Steven Archer