But no participant will be enrolled in 100 courses.
So it would be sufficient to create as many groups as the maximum of courses one participant can be enrolled in.
The rest can be made by micro-tayloring.
This is easier to implement in LS, but a lot more difficult to analyze. (you have to restructure everything)
There is another idea.
Create a "master survey" with some general questions at the beginning and all attributes you need.
Here you should create the Token attributes of courses as
ATTRIBUTE_1: 13
ATTRIBUTE_2: 34
ATTRIBUTE_2: 51
...
meaning the course no. the participant is enrolled in.
Create an equation ("courses") which joins the attributes to a string (here "013034051", leftpadded with "0" because you seem to have more than 100 courses.
Nothing else.
Now you link this survey to the "slave survey" and add two parameters to the end-url like:
"https://www.[myServer.com/mySlaveSurvey...?lang=en&newtest=Y
&pSID={SAVEDID}&pCourse={courses}"
In the "slave survey" capture the two parameters. Then
take the first three characters of pCourse "substr(pCourse,0,3)" and remove them from pCourse "substr(pCourse,3)"
Now you have the number of the course and with micro-tayloring you are able to display the name of the course, and other details.
Ask your questions.
Then you link this survey to itself:
Again add the two parameters
"https://www.[myServer.com/mySlaveSurvey...?lang=en&newtest=Y
&pSID={pSID}&pCourse={pCourse}"
With an if-statement remove the end-url if there is no more course.
This way you have only one group for unlimited courses.
In the dataset you will find one record for each course, with the course number and the SAVEDID.
You may have a look at a working example here:
I did not use tokens but a predefined string of capital letters. You may change it (from "A" to "Z")
the course names are the UBUNTU version names.
Sample survey
This will be active till Wednesday
Best regards
Joffm