Software assisted learning