• No results found

Chapter 3 An Approach for Group Formation based on Learning Styles

3.4 The iGLS Grouping Algorithm

The review in Chapter 2 indicates that a method for forming heterogeneous groups based on learning styles in collaborative learning environments is lacking. Thus, the objective of the iGLS grouping algorithm is to form heterogeneous groups based on students‘ learning styles. That is, the proposed algorithm can divide all students into several collaborative groups which can demonstrate internal diversity. Internal group diversity refers to the feature that a single collaborative group contains students having different learning styles.

As discussed in Section 3.1, the learning styles modelling component provides the extracted students‘ learning style scores to the iGLS grouping

47 algorithm, and the grouping parameter identification component offers the value of the grouping parameter to this algorithm.

There are four steps that compose the proposed algorithm, namely initializing, ordering, segmenting and assigning. A description of the four steps is provided below.

Let L be the total number of students to be grouped, N be the number of students per group (i.e. the defined grouping parameter), and R be the remainder on dividing L by N (L, N, R are integers).

As discussed in the previous section, past studies in group size and group performance have shown little consensus on the optimal group size [72]. Thus, the proposed algorithm does not define a constant but a variable for representing the group size (i.e. N).

The methods adopted by current collaborative learning environments such as student self-selection or teacher manual assignment often face the ―orphan‖ student problem [138,148], which refers to the cases that some students are unassigned to any group after the group formation process. The proposed algorithm aims to overcome this problem. Thus, in the first step stated below, the algorithm picks R students at random from the L students. It then assigns these students into appropriate groups as stated in the fourth step. Consequently, the proposed algorithm does not allow any student ―orphan‖.

Initializing: randomly select R students from L; create M empty groups according to the desired number of students per group, N, such that .

48 As discussed in Section 3.2, the learning styles modelling component incorporates the active/reflective dimension of the FSLSM model [61] for describing students‘ learning styles because the active and reflective are the most influential learning styles that impacts on group work [7,60,61]. Thus, in the second step, the proposed algorithm incorporates learning style scores on the active/reflective dimension of FSLSM for sorting the students.

Ordering: sort the set of (L-R) students from highest to lowest learning style scores on the active/reflective dimension of FSLSM.

Segmenting: divide the ordered students into N equal segments.

The above step actually, divides the students into N intervals of learning style scores, which allows the selection of one student from each interval to form diverse groups of N students, as stated in the following step.

Assigning: for each of the M empty groups in turn randomly select one student per segment and assign them to the group, if the number of students remaining, R, is bigger than or equal to N/2 then create an additional group and assign all the ‗orphan‘ students this remainder group, otherwise compare R with M. If R is smaller than or equal to M then randomly assign each of the remaining students to one of the M groups. If R is bigger than M then divide R by M. If the quotient of dividing R by M, q, is bigger than zero and the remainder of dividing R

by M, r, is zero then for each of the M groups pick q students randomly from R and assign them to the group. If r is non-zero, for each of the M groups pick q students randomly from R and assign them to the group, and randomly assign each of the r

49 students to one of the M groups. If the quotient of dividing R by M, q, is equal to zero then randomly assign each of the remaining students to one of the M groups.

Since there is evidence that smaller groups are more effective in educational settings [111], it is assumed that where R < N/2 the resulting group size would not be viable and so students are assigned to existing groups. If the grouping algorithm is used to form larger groups then a threshold can be defined such that where R ≥ threshold a new ―orphan‖ group is created. N/2 is defined as the default threshold.

The pseudo-code of the algorithm is presented below as Algorithm 3-1.

Algorithm 3-1: The pseudo-code of iGLS grouping algorithm

// Variables:

// L: the total number of students to be grouped

// R: the remainder in the case that L is not exactly divisible by N

// M: the number of groups that are created

// N: the number of students per group

// sorted: the list of students whose learning style scores are sorted by the function sort( )

// sl: the list of segments created

// segSize: the size of a segment

// empSeg: an empty segment that is created

// gl: the list of groups

// rNum: a random integer generated

// sgiL: the list for containing the selected group index

// s: a remaining student

// selectedGroupIndex: the index of the selected group

// gls: the size of gl

// Functions:

// read( ): read the data of the students to be grouped and the value of the parameter ‘number of students per group’

// remove( ): randomly select R students from L and remove them from L

// createGroups( ): generate the given number of empty groups

50

Algorithm 3-1: The pseudo-code of iGLS grouping algorithm (Cont.)

// createSL( ): create an empty list of segments

// createSegment( ): create an empty segment

// addStmS( ): add a student in sorted to an empty segment

// addtoSL( ): add a segment that contains students to a sl

// createGL( ): create an empty gl

// randomGenerator( ): generate a random number in the scope of the given number

// addRStGroup( ): add the randomly selected student to an empty group

// addGrouptoGL( ): add an group that contains assigned students into the gl

// createGIL( ): create an empty list for containing the selected group index

// addSGI( ): add the index of the selected group to sgiL

// addRemainingStudent (gl, selectedGroupIndex, s): add the remaining student s to the group in gl of which the index is equal to selectedGroupIndex

// addtoOrphanGroup( ): add all the remaining students to the orphan group

read( ) Initializing remove (R, L) if R < (N-1) then createGroups(M) else createGroups(M+1) Ordering sorted sort(L-R) Segmenting sl createSL( ) segSize (L-R) / N

for each segSize of students in sorted do

empSeg createSegment( )

for each student in a segSize of sorted do

addStmS( ) addtoSL( )

Assigning

gl createGL( )

for each empty group do

for each segment in sl do

rNum randomGenerator(segSize) addRStGroup( )

51

Algorithm 3-1: The pseudo-code of iGLS grouping algorithm (Cont.)

remove the selected student from the segment addGrouptoGL( )

if R < N/2 then

if R <= M then

sgiL createGIL( )

for each remaining student s do

selectedGroupIndex -1

do selectedGroupIndex randomGenerator(gls) while sgiL contains selectedGroupIndex

addSGI( )

addRemainingStudent(gl, selectedGroupIndex, s) else q quotient of dividing R by M

r remainder of dividing R by M if q > 0 then if r = 0 then equalAssign(M, q, R) else equalAssign(M, q, R) randomAssign (M, r) else if q = 0 then sgiL createGIL( )

for each remaining student s do

selectedGroupIndex -1

do selectedGroupIndex randomGenerator(gls) while sgiL contains selectedGroupIndex

addSGI( )

addRemainingStudent(gl, selectedGroupIndex, s)

else

addtoOrphanGroup( )

return gl

At this point, the three components of the proposed iGLS approach — the learning styles modelling component, the grouping parameter identification component, and the iGLS grouping algorithm — have been discussed. In the following section, the iGLS add-on for LAMS that was developed is presented.

52