X-Git-Url: https://code.communitydata.science/coldcallbot-discord.git/blobdiff_plain/9c4f81c30ac7c23cf1dfad7af54d1f12d4ba4d58..0ecadc51eb7b4245def4f6357c9d5e561784edc6:/README diff --git a/README b/README new file mode 100644 index 0000000..a972038 --- /dev/null +++ b/README @@ -0,0 +1,135 @@ +Setting up the Discord Bot +====================================== + +I run the Discord boy from my laptop. It requires the discord Python +module available in PyPi and installable like: + + $ pip3 install discord + +I don't have details on how I set up my own Discord bot and/or invited +it to my server but I hope you'll add to this file as you do this and +figure out what needs to happen. + +Using the Cold Call Bot +====================================== + +1. All students must have the role "Student" in Discord. If they do + not have the roll, they will not be called upon. + +2. The "classroom" is the "Classroom Voice" channel. This is currently + hard coded. + +3. The bot has only one command: "$next" which calls a person and + records this information in the logs. You can run this command in + any channel that the bot has access to (e.g., #bot-commands) but I + do it a public channel called "#classroom-questions" so that + students can watch it operate. + + +Daily Process +====================================== + +You need to start the bot from the laptop each day. I do that by: + + $ ./coldcallboy.py + +The bot will run in the terminal, print out data as it works including +detailed weights as it goes, and it will record data into files in the +/data/ directory. + + +After class, you will have two new files created that will be named +like this (with today's date): + + attendance-2020-10-05.tsv + call_list-2020-10-05.tsv + +Each day, you need to open up "call_list-YYYY-MM-DD.tsv" and edit the +final two columns. The first columns `answered` means that the person +responded and answered the question (i.e., they were present in the +room but away from their computer and unresponsive). This is almost +always TRUE but would be FALSE if the student were missing. + +The final column `assessment` is GOOD, FAIR, or BAD in my rubric. I've +detailed what that means on this page: + +https://wiki.communitydata.science/User:Benjamin_Mako_Hill/Assessment#Rubric_for_case_discussion_answers + +I take notes on student answers on paper during class (typically I +only note down non "GOOD" answers) and then add these to the sheet +immediately after class. + +I keep my entire data directory in git and I'd recommend that you do +too. + +I don't expect that these will necessary work without +modification. It's a good idea to go line-by-line through these to +make sure they are doing what *you* want and that you agree with the +assessment logic built into this. + +Assessment and Tracking +====================================== + +These scripts rely on a file in this repository called +`data/student_information.csv` which I have set to be downloaded +automatically from a Google form using a 1-line wget command. + +For reference, that file has the following column labels (this is the +full header, in order): + + Timestamp + Your UW student number + Name you'd like to go by in class + Your Wikipedia username + Your username on the class Discord server + Preferred pronouns + Anything else you'd like me to know? + +The scripts in this directory are meant to be run or sourced *from* +the data directory. As in: + + $ cd ../data + $ R --no-save < ../assessment_and_tracking/track_participation.R + +There are three files in that directory: + +track_enrolled.R: + + This file keeps track of who is in Discord, who is enrolled for + the class, etc. This helps me remove people from the + student_informaiton.csv spreadsheet who are have dropped the + class, deal with users who change their Discord name, and other + things that the scripts can't deal with automatically. + + This all need to be dealt with manually, one way or + another. Sometimes by modifying the script, sometimes by modifying + the files in the data/ directory. + + This requires an additional file called + `myuw-COM_482_A_autumn_2020_students.csv` which is just the saved + CSV from https://my.uw.edu which includes the full class list. I + download this one manually. + +track_participation.R: + + This file generates histograms and other basic information about + the distribution of participation and absences. I've typically run + this weekly after a few weeks of the class and share these images + with students at least once or twice in the quarter. + + This file is also sourced by compute_final_case_grades.R. + +compute_final_case_grades.R: + + You can find a narrative summary of my assessment process here: + + https://wiki.communitydata.science/User:Benjamin_Mako_Hill/Assessment#Overall_case_discussion_grade + + This also requires the registration file (something like + `myuw-COM_482_A_autumn_2020_students.csv`) which is described + above. + +One final note: A bunch of things in these scripts assumes a UW 4.0 +grade scale. I don't think it should be hard to map these onto some +other scale, but that's an exercise I'll leave up to those that want +to do this.