An Approach for Defining Synchronous AND Asynchronous E-Learning Courses Based on Visual Languages