## 4 Results and Discussions
### Selection of the Best Clustering Algorithm and Development of the Software
\begin{table}
\begin{tabular}{c c c c} \hline \hline  & **Cluster 0 Not Very Active** & **Cluster 1 Students on Average** & **Cluster 2 Very Active Students** \\  & **Students on the Platform** & **Activity on the Platform** & **on the Platform** \\ \hline n\({}^{\circ}\) students & 10 & 29 & 16 \\ \hline n\({}^{\circ}\) access to the platform & 5.4 & 18.4 & 31.2 \\ (average) & 1.8 & 2.5 & 3 \\ \hline total viewing frequency of video & 7.4 & 11.2 & 16.2 \\ tutorials (average) & 2 & 4.1 & 4.3 \\ \hline total display frequency, of video experiments (average) & 2.6 & 6.7 & 7 \\ \hline \% students who completed & 40\% & 90\% & 100\% \\ the assignment & & & \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Differences between clusters and details of the analyzed features. hoc controls (two sample \(t\)-tests) we compared the samples in pairs, in particular: (_i_) cluster 0 differs significantly from cluster 1 (\(p\)-value = 0.000152); (_ii_) the other two comparisons generated an insignificant \(p\)-value (cluster 0 vs cluster 1, \(p\)-value = 0.0201); and (_iii_) cluster 1 vs cluster 2, (\(p\)-value = 0.0517). We can conclude by stating that there is a significant difference between the three approaches above discussed. The approach with high activity (cluster 2) in the e-learning course differs significantly from that with low activity in the e-learning course (cluster 0). The approach with low activity (cluster 0) in the e-learning course is also different compared to that with average activity in the e-learning course (cluster 1). Once the clusters were obtained, the software returned the creation of heterogeneous groups. We initially set the number of students for each group to 5, then the software ran. The software applies the algorithm for creating heterogeneous groups, initially dividing the total number of students by 5, calculating how many heterogeneous groups you want to create. Then the number of students belonging to each group is calculated, by dividing the number of students in each cluster by the number of groups. From Figure 9 we can see that once the algorithm was set, the software created 11 groups and automatically distributed the students in groups, so that in each group there was at least one student belonging to different clusters. In this way, it creates heterogeneous groups based on the behavior of the students. Once the clusters were obtained, the software returned the creation of heterogeneous groups. We initially set the number of students for each group to 5, then the software ran. The software applies the algorithm for creating heterogeneous groups, initially dividing the total number of students by 5, calculating how many heterogeneous groups you want to create. Then the number of students belonging to each group is calculated, by dividing the number of students in each cluster by the number of groups. From Figure 9 we can see that once the algorithm was set, the software created 11 groups and automatically distributed the students in groups, so that in each group there was at least one student belonging to different clusters. In this way, it creates heterogeneous groups based on the behavior of the students. Figure 8: Student marks averages in the different clusters. Figure 9: Clusters and heterogeneous groups obtained from the execution of the software. Finally, the software automatically sent an e-mail to the teacher, with the list of heterogeneous groups, indicating the group name (e.g., group 0, group 1...) and next to each group the list of 5 numbers, the IDs that identify the students. In this way, the teacher was able to select students based on their ID, insert them into the relevant groups within Moodle and start the collaborative part of the course.