## Inspiration

Mr. Ricardo's class tortured the Year 4 Physics Olympiad students with a series of differential equation exercises, however, the students cannot find one such differential equation solver with steps that is free and open source. Thus, we wish to help the students a little bit in their learning.

## What it does

It differentiates single-variable expressions, find complex roots of single-variable polynomial and solves linear homogeneous differential equations. It also include steps to solve the differential equations.

## How we built it

The program is written mainly in C, but the UI is written in Java.

## Challenges we ran into

1. Implementing the case when the characteristic equation of the differential equation has repeated roots.
2. Implementing on solving linear non-homogeneous differential equation.
3. Rendering the output into LaTeX.
4. Simplifying expressions

## Accomplishments that we're proud of

Resolving challenge 3.

## What we learned

1. Writing CAS in C is very challenging.
2. Durand-Kerner root-finding algorithm.
3. The process of displaying an output is insane: to convert from human readable string into latex with regex and finally insert into HTML using java requires 8 backslashes to output just one backslash.

## What's next for Differential equation solver

1. Solve the non-homogeneous linear differential equation using the technique of variation of parameters and resolve challenge 1 and 2.
2. Since we leave the answers in integral form, we shall resolve them in the future too.
3. Consider non-linear differential equations, such as Clairaut's equations.