Knowledge-Based Environments for Teaching and Learning