Techniques for Fostering Collaboration in Online Learning Communities: Theoretical and Practical Perspectives