A Methodology for Modeling and Representing Expert Knowledge that Supports Teaching-Based Intelligent Agent Development