https://www.cambridgeinternational.org/Images/285020-topic-4.2.3-state-transition-diagrams-9608-.pdf
http://courses.cs.vt.edu/~csonline/index.html