A Unifying Computational Framework for Teaching and Active Learning. (13th January 2019)