I coordinate a large class (about 750 students, 4 lecture sections, 16 tutorial sections) and I want some info, which Quercus-out-of-the-box either does not deliver, or delivers in the format not suitable for my needs.
But before:
Quercus gets the students names and sections from ROSI once a day, arount 4 am (except Saturday-to-Sunday nights, some holiday nights and all nights when ROSI experiences technical difficulties)
Fortunately I can work UNIX-style with csv 1 exports:
Grades export like 2019-09-05T0434_Grades-MAT244H1_F_LEC0101.csv
It has 2 header lines
Student,ID,SIS User ID,SIS Login ID,Integration ID,Section,... Points Possible,,,,,,,,.....
regular lines like
Generic, Joe,000000,1000000000,generic,,MAT244H1-F-LEC0101-20199, and MAT244H1-F-TUT5103-20199,,,,,,,,,,....Generic, Jane,000000,1000000000,generij,,MAT244H1-F-LEC0101-20199,,,,,,,,,,....
and the last line similar to the regular line but for /Users/victor/Desktop/MAT244-2019F/Teaching-General/Quercus-coordinator.mdStudent, Test
who is enrolled into all sections.
Here the first students is enrolled into both LEC and TUT and the second one only to LEC.
Group roster export (otr the whole class) like users.csv
with the header like
Student,ID,SIS User ID,SIS Login ID,Section,First Name,Last Name
it actually does not show any section but it shows email.
I want to know how many students are not enrolled in any tutorial and their list:
% grep LEC 2019-09-05T0434_Grades-MAT244H1_F_LEC0101.csv| grep -v Student| grep -v TUT |wc -l
% grep LEC 2019-09-05T0434_Grades-MAT244H1_F_LEC0101.csv| grep -v Student| grep -v TUT
% grep LEC 2019-09-05T0434_Grades-MAT244H1_F_LEC0101.csv| grep -v Student| grep -v TUT > TUTless
Similarly, I want to know how many students are enrolled into LEC5201 and one of the tutorials TUT5101 , TUT5102 since they are in conflict
% grep LEC5201 2019-09-05T0434_Grades-MAT244H1_F_LEC0101.csv| grep -v Student| grep TUT51
etc
Now I want to have a list of emails of students who are not enroleed in any tutorial, to send them an email:
First,
% grep LEC 2019-09-05T0434_Grades-MAT244H1_F_LEC0101.csv| grep -v Student| grep -v TUT | cut -f4 -d, > TUTless
gives me a list of their students IDs. Now bash script (for other shell modification required)
% for ID in `cat TUTless` ; do
grep $ID users.csv | cut -f6 -d, >> emails ;
done
provides me with the list of emails
Coordinator decides to manage sections by himself/herself and stop using ROSI/ACORN. Do it when students cannot use ACORN anymore to enrol into class and to change sections, unless you have really good reasons to do it earlier2. Usually it is 2 weeks from the first day of the classes.
I took
% cut -f5,7 -d, 2019-09-05T0434_Grades-MAT244H1_F_LEC0101.csv > roster.txt
which created a file with lines like this
johndow4,MAT244H1-F-LEC5101-20199 and MAT244H1-F-TUT0501-20199
janedow5,MAT244H1-F-LEC5201-20199
where the first student enrolled into tutorial section and the second did not (despite several emails to such students).
Using text editor allowing grep search and replace all
(I use BBEdit on Mac) I cleaned this file to
johndow4,TUT0501
janedow5
just removing MAT244H1-F-LEC([0-9]+)-20199
, and
, MAT244H1-F-
, -20199
. Then I used
% grep TUT roster.txt > roster.csv
removing students who have not picked up tutorials.
johndow4,TUT0501
Next, I created in Quercus People > Groups an empty Group Set Tutorials and using UT Advanced Group Tool > Import Group Roster > Batch import rosters into multiple new groups I uploaded roster.csv.
Thus John Doe got into Group TUT0501 and Jane Doe was one of the student with 'Unassigned Students'. There were also few students who enrolled into LEC5201 and TUT5103 which are incompatible, I displayed them as already described
% grep LEC5201 2019-09-05T0434_Grades-MAT244H1_F_LEC0101.csv | grep TUT5103 | cut -f1,2 -d,
and removed them from Group TUT5103 thus adding them to 'Unassigned Students'.
Next I considered groups occupying the same time slots, since all groups TUT0x02 were created after most of the students enrolled into class, they were very small but their TUT0x01 counterparts overcowded, so I moved some students from TUT0x01 to TUT0x02.
Further, I assigned groups to Unassigned Students' selecting for this small Tutorial groups which had no conflicts with any of Lecture section. Fortunately, there was enough og such groups (otherwise I would need to check if there is any time conflict).
Finally, using UT Advanced Group Tool > Clone Groups into Sections > Clone Groups into Multiple New Sections I cloned all my groups. So, John Dow had three groups
MAT244H1-F-TUT0501-20199
MAT244H1-F-LEC0201-20199
ΩCLONED: TUT0502
because I moved hom to TUT0502 (otherwise he would have
ΩCLONED: TUT0501
And then I sent an Announcement to the students, explaining what I did and that People > Groups provide the most current and authoritative info, while People should be used as an auxiliary tool. I explained that ACORN changes will have no effect and to change their assigned Tutorial section they should email me.
During the day I got some emails asking me to change tutorial sections, which I either complied in full or partially (moving to TUT0201 rather than TUT0202)
The trouble came next morning (because ACORN was still active)
Some students had only
ΩCLONED: TUT0502
section because they dropped the class but were kept in the Quercus because they have section attached .
And there were plenty of 'Unassigned Students'. Those were students who enrolled into class during the previous day.
I made a list of droupouts
% grep -v LEC 2019-09-06T0434_Grades-MAT244H1_F_LEC0101.csv | cut -f1,2,7 -d,
and moved all of them to new DROPUT Group.
Then I created a list of new students who selected a Tutorial section
% grep -v CLONED 2019-09-06T0434_Grades-MAT244H1_F_LEC0101.csv | grep TUT |cut -f1,2,7 -d,
and moved them to the tutorial groups of their choice (sometimes into groups occupying the same time slots)
Next I created a list of new students who have not selected a Tutorial section
% grep -v CLONED 2019-09-06T0434_Grades-MAT244H1_F_LEC0101.csv | grep -v TUT
and moved them to new groups of my choice.
Next I killed DROPOUT group, thus moving all its inhabbitants to 'Unassigned Students'.
And finally I used UT Advanced Group Tool > Clone Groups into Sections > Synchronize
Some of the dropouts disappered from the Quercus list, some did not (but they disappered next morning).
And then I sent an Announcement to the students, explaining what I did.
And this every morning!!! On the other hand, next year there will be enough tutorial sections from the very beginning (but may be LEC5201 could change its schedule which I will ask when the dust settles) and there will be no need to manage tutorial sections that early.
I made several mistakes and I am placing here some warnings:
ΩCLONED: TUT5101
, and then remove this group, the section is not removed automatically and students will be in this section permanently, unless you clean-up. ΩCLONED: TUT5101
section. ΩCLONED: TUT5101
, one of them from the old group and another from the new group and only latter will be synchronized with the group.parentgroup, you need to clean this mess: go to Settings > Sections and you will see here all sections, including this
ghostsection:
ΩCLONED: TUT5101 (56 Users ) ✎ ×
If it is empty, you can remove it; if it is not you press its name, manually remove each student (the list of students is truncated to 25, so if there are more students you will do it by iterations), and only after you empty the section, you will be able to remove it.