How technology is making educational software smarter and more effective