This project contains two implementations of Forward and Backward Algorithm. Both the implementations have the same result, however, the one which does not involve normalizing at every stage is faster with a less accurate probability table.
The jupyter notebook explains the algorithm and it also tells the difference between the two files in the last note.