A Framework for Computer Assisted Learning