{'fraction_non_alphanumeric': 0.014136904761904762, 'fraction_numerical': 0.0, 'mean_word_length': 5.8274111675126905, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Collaborative learning patterns: assisting the development of component-based CSCL applications

The creation of a framework of software components and their associated software design patterns would provide great benefits for the development of reusable, flexible, and customizable component-based CSCL applications. The development of such a framework implies that software developers have a proper understanding of the key concepts and principles of the domain of interest. The achievement of this understanding is particularly difficult in the CSCL domain, where there is a big separation among abstractions used by educational science experts and those used by software developers. In order to alleviate this problem, we propose, justifies, and illustrates the use of the so-called collaborative learning patterns: detailed descriptions of well-accepted types of collaborative learning activities defined by collaborative learning experts. We also present the initial steps that would be followed so that software developers identify software components applicable to several types of component-based CSCL applications. All this proposal is illustrated with the jigsaw and pyramid collaborative learning patterns and their use in the development of a real CSCL application according to the unified process software development methodology.