# Integrating Assessment in a CSCL Macro-Script Authoring Platform
## 2 Short Presentation of COSTLyP
### COSTLy Language  
COSTLyP implementation starts with the definition of COSTLy [16], a specialized language capable enough to define CSCL scripts and is primarily based on Mathematical Logic. Scripts can be expressed in a logic-based representation as constraints of First-Order Predicate Logic. Common Mathematical Logic syntax can be used in COSTLy with common logical connectives (conjunction, disjunction, negation, implication and equivalence) alongside with the universal and existential quantifiers for sets. Thus, in COSTLy, one can compose adequately complicated and expressive constraints to describe scripts' rules.  
COSTLy language defines a _script_ as a _set of phases_. In each phase, participants should be allocated to a unique group in the context of a collaborative activity. Such an alloca  
Figure 1: Data flow diagram of the work of a user within COSTLyP.  
tion specifies a _partition_. The union of all the groups of a partition results the set of the participants. Each partition (e.g., group assignment for participants, probably alongside their roles and related resources), in the context of COSTLy, is described as a composite logic constraint. In other words, the script's author should define logical predicates that all the groups within a partition must validate. Of course, several group allocations may validate the same predicate. COSTLyP, in a later phase, will seek and present one of them as a plausible solution for the enactment phase of the script.  
In order to give an intuitive example of the above, let us write the second (JG) phase of the popular Jigsaw script [4]. Let \(S\) be the set of all the participant with a cardinality \(|S|\) and a set of books named _books_ (let \(|books|\) denote its cardinality). Our specific Jigsaw example, in its first _Expert Group_ (EG) phase of the script, allocated participants in \(|books|\) groups, and each group had to study and summarize a distinct book. The information of which book has been summarized by whom is asserted as new knowledge in COSTLyP during the EG phase and can be accessed during later phases. In the second, _Jigsaw Group_ (JG) phase of the Jigsaw, members of groups should have read different books during the EG phase.  
The COSTly definition for this JG phase is depicted below (Listing 1).  
```
phase JG: create-partition Pj for S, Books with \(|S|\) / \(|\) Books \(|\) groups forall Gr in Pj forall Book in Books distribute St in Gr EG.summarize(St, Book)).
```  
**Listing 1**. COSTLy definition for the JG phase of the JigSaw script.  
In the above COSTLy code, Pj is the name for the sets of all groups (partition) and _forall_ expression can define predicates over sets. For example, \"Forell Gr in Pj\" expression defines a universal quantification for all groups \"Gr\" within partition \"Pj\". Gr is a variable denoting a group of participants.  
_EG.summarize(St, Book)_ refers to the abovementioned asserted knowledge that relates students with the book that he/she previously summarized in EG phase.  
The \"distribute\" expression is a logical construct of COSTLy and defines a relation among the elements of the two quantified sets (Books and Gr) so that the elements of the second (Gr) are evenly allocated to the elements of the first (Books).