Preamble

This year, because of COVID-19, discussion classes were held online via Zoom. Every lesson, there are typically five discussion leaders who will lead a discussion about a news topic to small groups. After 12 or 13 minutes, leaders rotate and start a new discussion about the same topic. Meanwhile, discussion leader feedback is administered via a Google form for class participants. At the end of the lesson, all students write their reflection via another Google form. Data from these forms were analyzed to provide insight about the students’ learning experience.

Read discussion leader feedback csv file into R and check structure.

x <- read.csv("leader_feedback.csv")
str(x)
## 'data.frame':    1585 obs. of  15 variables:
##  $ X.1                                                        : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ X                                                          : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ Timestamp                                                  : chr  "2020-05-14 09:24:45" "2020-05-14 09:24:45" "2020-05-14 09:25:07" "2020-05-14 09:25:12" ...
##  $ Score                                                      : int  12 11 18 12 6 15 14 20 9 5 ...
##  $ Participant                                                : chr  "Kana" "Kengo" "Yusuke" "Eriko" ...
##  $ Leader                                                     : chr  "Takamitsu" "Chisako" "Fuyuno" "Chisako" ...
##  $ Did.she.read.                                              : chr  "Yes" "Yes" "No" "Yes" ...
##  $ Did.she.speak.only.English.                                : chr  "No" "Yes" "Yes" "Yes" ...
##  $ Did.she.address.you.by.name.                               : chr  "Yes" "No" "Yes" "No" ...
##  $ Did.she.encourage.your.participation.                      : chr  "Yes" "Yes" "Yes" "Yes" ...
##  $ Did.she.encourage.everyone.s.participation.                : chr  "Yes" "No" "Yes" "Yes" ...
##  $ Did.she.ask.you.questions.                                 : chr  "Yes" "Yes" "Yes" "Yes" ...
##  $ Did.she.let.you.speak.enough.                              : chr  "Yes" "Yes" "Yes" "No" ...
##  $ Was.her.posture..gestures.and.eye.contact.normal.          : chr  "Yes" "Yes" "No" "Yes" ...
##  $ Did.she.explain.vocabulary.when.needed..using.only.English.: chr  "Yes" "No" "No" "Yes" ...

Delete unwanted columns.

x[,1:2] <- NULL

Recode one student’s name.

library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.0 ──
## ✓ ggplot2 3.3.3     ✓ purrr   0.3.4
## ✓ tibble  3.1.0     ✓ dplyr   1.0.5
## ✓ tidyr   1.1.3     ✓ stringr 1.4.0
## ✓ readr   1.4.0     ✓ forcats 0.5.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
x$Leader <- recode(x$Leader, Elsa = "Erusa")

Convert timestamp to datetime.

sample(x$Timestamp, 5)
## [1] "2020-11-26 10:01:41" "2020-06-04 10:03:55" "2020-05-14 10:00:54"
## [4] "2020-10-01 10:11:29" "2020-10-08 10:21:02"
library(lubridate)
## 
## Attaching package: 'lubridate'
## The following objects are masked from 'package:base':
## 
##     date, intersect, setdiff, union
x$Timestamp <- ymd_hms(x$Timestamp)
sample(x$Timestamp, 5)
## [1] "2020-06-04 09:29:01 UTC" "2020-10-08 10:04:14 UTC"
## [3] "2020-11-12 10:05:56 UTC" "2020-05-28 09:45:21 UTC"
## [5] "2020-05-21 10:08:51 UTC"

Generate weeks column from datetime.

x$Week <- week(x$Timestamp)
sample(x$Week, 5)
## [1] 23 48 46 42 29

Convert strings to factors.

x[,3:13] <- lapply(x[,3:13], factor)
str(x)
## 'data.frame':    1585 obs. of  14 variables:
##  $ Timestamp                                                  : POSIXct, format: "2020-05-14 09:24:45" "2020-05-14 09:24:45" ...
##  $ Score                                                      : int  12 11 18 12 6 15 14 20 9 5 ...
##  $ Participant                                                : Factor w/ 23 levels "Aoba","Ayana",..: 9 10 23 5 19 16 15 3 1 2 ...
##  $ Leader                                                     : Factor w/ 23 levels "Aoba","Ayana",..: 22 4 7 4 7 4 22 7 22 22 ...
##  $ Did.she.read.                                              : Factor w/ 2 levels "No","Yes": 2 2 1 2 2 2 1 1 1 2 ...
##  $ Did.she.speak.only.English.                                : Factor w/ 2 levels "No","Yes": 1 2 2 2 1 2 1 2 1 1 ...
##  $ Did.she.address.you.by.name.                               : Factor w/ 2 levels "No","Yes": 2 1 2 1 2 2 2 2 1 1 ...
##  $ Did.she.encourage.your.participation.                      : Factor w/ 2 levels "No","Yes": 2 2 2 2 1 2 2 2 2 1 ...
##  $ Did.she.encourage.everyone.s.participation.                : Factor w/ 2 levels "No","Yes": 2 1 2 2 2 2 2 2 1 2 ...
##  $ Did.she.ask.you.questions.                                 : Factor w/ 2 levels "No","Yes": 2 2 2 2 1 2 2 2 2 2 ...
##  $ Did.she.let.you.speak.enough.                              : Factor w/ 2 levels "No","Yes": 2 2 2 1 1 2 2 2 1 1 ...
##  $ Was.her.posture..gestures.and.eye.contact.normal.          : Factor w/ 2 levels "No","Yes": 2 2 1 2 2 1 1 2 2 2 ...
##  $ Did.she.explain.vocabulary.when.needed..using.only.English.: Factor w/ 2 levels "No","Yes": 2 1 1 2 2 2 1 2 1 1 ...
##  $ Week                                                       : num  20 20 20 20 20 20 20 20 20 20 ...

Discussion Leaders

The participants completed a Google Form to provide feedback to discussion leaders after each round of discussions.
What were the survey questions and how much was each question worth?

Did she read? N = 4
Did she speak only English? Y = 4
Did she address you by name? Y = 2
Did she encourage your participation? Y = 2
Did she encourage everyone’s participation? Y = 2
Did she ask you questions? Y = 2
Did she let you speak enough? Y = 2
Was her posture, gestures and eye contact normal? Y = 1
Did she explain vocabulary when needed, using only English? Y = 1
(Maximum Score = 20)

Calculate the median score of the class discussion leaders.

median(x$Score)
## [1] 16

Calculate the mean score of the class discussion leaders.

mean(x$Score)
## [1] 15.80252

Calculate the individual discussion leaders’ median scores.

tapply(x$Score, x$Leader, median) %>% sort
## Takamitsu  Kenshiro     Ryoma    Yusuke     Eriko      Aoba     Ayana     Ayano 
##      12.0      14.0      14.0      14.0      15.0      16.0      16.0      16.0 
##   Chisako     Erusa    Fuyuno     Junko      Kana     Kyoka       Mai      Miyu 
##      16.0      16.0      16.0      16.0      16.0      16.0      16.0      16.0 
##     Reina    Satomi    Shiori    Suzuka     Kengo      Mone    Serina 
##      16.0      16.0      16.0      16.0      17.0      18.0      18.5

Calculate the individual discussion leaders’ average scores.

tapply(x$Score, x$Leader, mean) %>% sort
## Takamitsu    Yusuke  Kenshiro     Ryoma     Eriko   Chisako    Fuyuno     Ayana 
##  12.65333  13.79104  14.01351  14.32692  14.42029  14.84932  15.37143  15.53731 
##     Kyoka       Mai    Suzuka      Kana    Shiori      Miyu      Aoba     Ayano 
##  15.64286  15.78261  15.79167  15.79412  16.08333  16.48000  16.57143  16.60000 
##     Erusa    Satomi     Kengo     Junko    Serina     Reina      Mone 
##  16.75758  16.95385  16.98529  17.04348  17.14706  17.41429  17.59091

Plot a boxplot of discussion leader feedback for each student.

library(ggplot2)
x %>% ggplot(aes(x=Leader, y=Score)) +
  geom_boxplot() +
  theme(axis.text.x = element_text(angle=90, hjust=1)) +
  labs(title="Leaders' Feedback Scores Received")

Comments:

  1. Serina and Mone had the high median scores. Takamitsu had a low median score.
  2. The median score appeared to be about 16 points.
  3. Kana, Kyoka, Mai, and Mone received outlier low scores from some participants.

Participants

What scores did the participants typically give?

Calculate participant median scores.

tapply(x$Score, x$Participant, median) %>% sort
##     Reina       Mai      Aoba      Kana   Chisako     Eriko     Erusa  Kenshiro 
##        12        13        14        14        15        15        16        16 
##     Kyoka      Mone     Ryoma    Satomi    Serina    Shiori Takamitsu     Ayana 
##        16        16        16        16        16        16        16        17 
##     Kengo    Yusuke    Fuyuno      Miyu     Ayano     Junko    Suzuka 
##        18        18        19        19        20        20        20

Calculate participant mean scores.

tapply(x$Score, x$Participant, mean) %>% sort
##       Mai      Kana     Reina      Aoba     Eriko   Chisako Takamitsu     Kyoka 
##  12.90000  13.01429  13.18310  13.70312  13.94286  14.04762  14.26087  15.32877 
##      Mone     Ryoma    Serina     Erusa  Kenshiro    Shiori    Satomi     Ayana 
##  15.54795  15.75000  15.90000  15.90625  16.00000  16.05714  16.28571  16.86364 
##    Yusuke     Kengo    Suzuka     Junko    Fuyuno      Miyu     Ayano 
##  17.23188  17.24638  17.49254  17.76562  17.90141  18.47826  18.90769

Plot a boxplot of the individual participants’ scores.

x %>% ggplot(aes(x=Participant, y=Score)) +
  geom_boxplot() +
  theme(axis.text.x = element_text(angle=90, hjust=1)) +
  labs(title="Participant Scores Given")

Comments:

  1. Ayano, Junko and Suzuka tend to give maximum scores while Mai and Reina tend to give low scores.
  2. Ryoma tends to give 16 points.

What average score did Ryoma give for each question?

(“No” = 1, "Yes = 2)?

x %>% filter(Participant == "Ryoma") %>%
  select(5:13) %>% lapply(as.numeric) %>% sapply(mean)
##                                               Did.she.read. 
##                                                    1.972222 
##                                 Did.she.speak.only.English. 
##                                                    2.000000 
##                                Did.she.address.you.by.name. 
##                                                    1.986111 
##                       Did.she.encourage.your.participation. 
##                                                    2.000000 
##                 Did.she.encourage.everyone.s.participation. 
##                                                    1.972222 
##                                  Did.she.ask.you.questions. 
##                                                    2.000000 
##                               Did.she.let.you.speak.enough. 
##                                                    1.944444 
##           Was.her.posture..gestures.and.eye.contact.normal. 
##                                                    1.833333 
## Did.she.explain.vocabulary.when.needed..using.only.English. 
##                                                    2.000000

Comment:

Ryoma typically answers “Yes” to every question.

Plot a heatmap of participants’ scores for discussion leaders.

x %>% ggplot(aes(x=Participant, y=Leader)) +
  geom_tile(aes(fill=Score)) +
  theme(axis.text.x = element_text(angle=90, hjust=1)) +
  scale_fill_gradient(low = "purple", high = "green") +
  labs(title = "Heatmap of Scores")

Comments:

  1. Reina and Mone tend to receive high scores.
  2. Ayano and Miyu tend to give high scores.
  3. Aoba, Chisako, Eriko, Kana, Mai and Reina tend to give low scores.
  4. Takamitsu tends to receive low scores as well as give them, including to himself.

Reflection

At the end of the lesson, students fill out a Google Form asking about today’s discussions.
Here are the questions:
1) What did you enjoy about today?
2) What did you not enjoy?
3) How much did you talk?
(A lot / Just enough / Not enough)
4) Did you speak Japanese?
(Yes, a lot / Yes, a little / No, I didn’t)
5) Whose talk was interesting and why?

Read reflection csv file into r and check its structure.

y <- read.csv("lesson_reflection.csv", stringsAsFactors = F)
str(y)
## 'data.frame':    435 obs. of  8 variables:
##  $ X                                          : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ Timestamp                                  : chr  "07/05/2020 10:20:40" "07/05/2020 10:53:11" "14/05/2020 10:22:02" "14/05/2020 10:24:47" ...
##  $ What.is.your.name.                         : chr  "Yusuke" "Serina" "Kyoka" "Mai" ...
##  $ What.did.you.enjoy.about.today.            : chr  "Talking in the group." "I enjoyed communicating with my group" "talking" "Yes,I did." ...
##  $ What.did.you.not.enjoy.so.much.            : chr  "Speaking English." "Nothing" "quiet time" "Yes,I did." ...
##  $ How.much.did.you.talk.in.English.          : chr  "Not enough." "Just enough." "Not enough." "Just enough." ...
##  $ Did.you.speak.Japanese.                    : chr  "Yes, a lot." "Yes, a little" "Yes, a little" "Yes, a little" ...
##  $ Whose.talk.or.what.was.interesting.and.why.: chr  "Aoba's talk, because she's major is same on me." "I choose Mone’s talk because she had her own opinion." "Satomi. Because she thinks about people kindly" "Erusa.Because she talked about English learning in elementary school,and it was interesting." ...

Delete an unwanted column.

y <- y[,-1]

Rename student name variable.

y <- rename(y, Name = What.is.your.name.)

Convert character variable to factor variable.

y$Name <- factor(y$Name)
table(y$Name)
## 
##      Aoba     Ayana     Ayano   Chisako     Eriko     Erusa    Fuyuno     Junko 
##        18        19        18        16        19        19        19        18 
##      Kana     Kengo  Kenshiro     Kyoka       Mai      Miyu      Mone     Reina 
##        18        18        20        22        19        18        20        19 
##     Ryoma    Satomi    Serina    Shiori    Suzuka Takamitsu    Yusuke 
##        18        19        20        20        21        17        20

Plot a wordcloud of what students liked about today.

library(quanteda)
## Package version: 2.1.2
## Parallel computing: 2 of 4 threads used.
## See https://quanteda.io for tutorials and examples.
## 
## Attaching package: 'quanteda'
## The following object is masked from 'package:utils':
## 
##     View
corpus(y$Whose.talk.or.what.was.interesting.and.why.) %>% 
  dfm(remove_punct=T,
      remove = stopwords("en")) %>% textplot_wordcloud(min_size=1,
                   max_size=5,
                   max_words=400,
                   color = c(
                     "blue","green","red","orange","purple"
                   )
)

Whose discussions were interesting?

(Assume first word of answer is student’s name).

whose <- word(y$Whose.talk.or.what.was.interesting.and.why.)
head(whose)
## [1] "Aoba's"        "I"             "Satomi."       "Erusa.Because"
## [5] "Mone,"         "kengo’s"

Clean up answers by removing punctuation.

whose <- gsub("[.]", "", whose)
whose <- gsub(",","", whose)
whose <- gsub("'s","", whose) %>% factor
whose %>% table %>% sort %>% tail(15)
## .
##    Eriko     Elsa     Kana Kenshiro   Yusuke  Chisako   Satomi   Shiori 
##       12       13       14       14       14       18       18       18 
##    Junko    Reina     Aoba     Mone    Kengo        I     Miyu 
##       19       19       20       20       24       26       32

Comment

Chisako, Satomi, Shiori, Junko, Reina, Aoba, Mone, Kengo and Miyu were interesting.
“I” was interesting because “I” didn’t listen to anyone’s discussion today.
Some students with more than one typical spelling of their name, for example “Elsa” / “Erusa”, may not have been given due credit for their discussions.

Participation Scores

Participation is defined as engagement in ungraded activities, which means providing feedback to peers after each discussion, and completing a reflection questionnaire at the end of the lesson.

How often did the students submit a feedback form?

table(x$Participant, x$Week)
##            
##             20 21 22 23 24 27 28 29 30 39 40 41 42 43 46 47 48 49 50
##   Aoba       4  0  5  0  2  6  0  6  5  5  0  5  4  4  5  5  0  5  3
##   Ayana      4  0  5  5  3  6  6  6  0  0  5  5  4  4  0  5  0  5  3
##   Ayano      4  5  0  5  3  0  6  5  0  5  5  5  4  0  5  0  5  5  3
##   Chisako    1  5  4  5  3  0  0  6  4  5  6  0  0  4  5  5  5  5  0
##   Eriko      3  5  5  0  3  0  6  6  5  5  5  5  4  0  5  5  5  0  3
##   Erusa      0  5  3  5  3  6  0  6  5  0  5  5  4  4  0  5  0  5  3
##   Fuyuno     0  5  5  5  3  5  0  6  5  5  5  5  4  0  5  5  0  5  3
##   Junko      4  0  5  5  3  6  6  0  5  5  0  4  4  4  5  0  5  0  3
##   Kana       4  0  5  5  3  6  6  0  5  0  5  5  4  4  0  5  5  5  3
##   Kengo      3  6  5  0  3  0  6  6  5  5  5  5  0  4  0  5  3  5  3
##   Kenshiro   4  5  5  5  1  7  6  6  0  5  5  5  0  4  5  0  5  5  3
##   Kyoka      4  5  6  5  0  0  6  6  5  5  5  0  4  4  5  5  5  0  3
##   Mai        3  5  0  5  3  6  6  0  5  5  5  5  4  0  5  5  5  0  3
##   Miyu       4  5  5  5  0  0  6  6  5  5  5  0  4  4  0  5  5  5  0
##   Mone       4  0  5  5  3  6  6  6  0  5  5  1  4  4  1  5  5  5  3
##   Reina      4  5  0  5  4  6  0  6  5  5  5  0  4  4  5  5  0  5  3
##   Ryoma      0  5  5  5  3  6  6  6  0  5  5  0  4  4  5  5  5  0  3
##   Satomi     4  5  0  5  3  6  6  0  5  0  5  5  4  4  0  5  5  5  3
##   Serina     4  6  5  0  3  4  0  6  5  0  5  6  4  4  5  5  5  0  3
##   Shiori     4  5  0  5  3  6  6  4  0  5  5  5  0  4  5  0  5  5  3
##   Suzuka     3  5  5  0  3  6  6  0  5  5  0  5  4  4  4  0  5  4  3
##   Takamitsu  1  5  5  5  3  0  6  6  5  5  0  5  4  4  0  5  5  5  0
##   Yusuke     4  0  5  5  3  6  6  0  5  5  0  5  4  4  5  5  0  4  3

Comment

Kenshiro submitted the form seven times in week 27. Is that because he forgot to submit the previous week?

Plot a heatmap of submission scores given by participants per week.

x %>% ggplot(aes(x=Week, y=Participant)) +
  geom_tile(aes(fill=Score)) +
  labs(title = "Participants Feedback Scores Given Per Week")

Comment

Students are expected to be missing once per round of five sessions when they are discussion leaders. It can be seen that most students had very good attendance and participation.

How often did the participants provide feedback?

table(x$Participant) %>% sort
## 
##   Chisako      Aoba     Erusa     Junko     Ayano     Ayana    Suzuka     Kengo 
##        63        64        64        64        65        66        67        69 
##      Miyu Takamitsu    Yusuke     Eriko      Kana       Mai    Satomi    Serina 
##        69        69        69        70        70        70        70        70 
##    Shiori    Fuyuno     Reina     Ryoma     Kyoka      Mone  Kenshiro 
##        70        71        71        72        73        73        76

Create variables for token counts and type counts for the refelection form answer about whose discussion was interesting and add them to the data frame.

z <- corpus(y$Whose.talk.or.what.was.interesting.and.why.) %>%
  tokens(remove_punct = T) %>% dfm()
y$Token_count <- ntoken(z)
y$Type_count <- ntype(z)
head(y, 5)
##             Timestamp   Name       What.did.you.enjoy.about.today.
## 1 07/05/2020 10:20:40 Yusuke                 Talking in the group.
## 2 07/05/2020 10:53:11 Serina I enjoyed communicating with my group
## 3 14/05/2020 10:22:02  Kyoka                               talking
## 4 14/05/2020 10:24:47    Mai                            Yes,I did.
## 5 14/05/2020 10:25:09  Erusa     Speaking English with my friends.
##   What.did.you.not.enjoy.so.much. How.much.did.you.talk.in.English.
## 1               Speaking English.                       Not enough.
## 2                         Nothing                      Just enough.
## 3                      quiet time                       Not enough.
## 4                      Yes,I did.                      Just enough.
## 5       I can hear many opinions.                            A lot!
##   Did.you.speak.Japanese.
## 1             Yes, a lot.
## 2           Yes, a little
## 3           Yes, a little
## 4           Yes, a little
## 5           Yes, a little
##                                                    Whose.talk.or.what.was.interesting.and.why.
## 1                                              Aoba's talk, because she's major is same on me.
## 2                                        I choose Mone’s talk because she had her own opinion.
## 3                                               Satomi. Because she thinks about people kindly
## 4 Erusa.Because she talked about English learning in elementary school,and it was interesting.
## 5                                                             Mone, she heard and spoken well.
##   Token_count Type_count
## 1           9          9
## 2          10         10
## 3           7          7
## 4          13         13
## 5           6          6

Token and Type Count

How many tokens and types did the students write for whose talk was interesting, and what were these averages per student?

y %>%
  group_by(Name) %>%
  summarize(total_tokens = sum(Token_count),
            total_types = sum(Type_count),
            mean_tokens = mean(Token_count),
            mean_types = mean(Type_count))
## # A tibble: 23 x 5
##    Name    total_tokens total_types mean_tokens mean_types
##    <fct>          <int>       <int>       <dbl>      <dbl>
##  1 Aoba             166         162        9.22       9   
##  2 Ayana            202         194       10.6       10.2 
##  3 Ayano            250         239       13.9       13.3 
##  4 Chisako          150         142        9.38       8.88
##  5 Eriko            250         235       13.2       12.4 
##  6 Erusa            207         198       10.9       10.4 
##  7 Fuyuno           187         177        9.84       9.32
##  8 Junko            169         166        9.39       9.22
##  9 Kana             135         133        7.5        7.39
## 10 Kengo            233         223       12.9       12.4 
## # … with 13 more rows

Finally, write a simple formula for participation based on the number of times a participant submitted the discussion leader feedback form and number of words that she wrote for whose discussion was interesting.

Create discussion leader feedback scores out of 30 points.

table(x$Participant) %>% sort
## 
##   Chisako      Aoba     Erusa     Junko     Ayano     Ayana    Suzuka     Kengo 
##        63        64        64        64        65        66        67        69 
##      Miyu Takamitsu    Yusuke     Eriko      Kana       Mai    Satomi    Serina 
##        69        69        69        70        70        70        70        70 
##    Shiori    Fuyuno     Reina     Ryoma     Kyoka      Mone  Kenshiro 
##        70        71        71        72        73        73        76
feedback30 <- table(x$Participant)/76*30
feedback30
## 
##      Aoba     Ayana     Ayano   Chisako     Eriko     Erusa    Fuyuno     Junko 
##  25.26316  26.05263  25.65789  24.86842  27.63158  25.26316  28.02632  25.26316 
##      Kana     Kengo  Kenshiro     Kyoka       Mai      Miyu      Mone     Reina 
##  27.63158  27.23684  30.00000  28.81579  27.63158  27.23684  28.81579  28.02632 
##     Ryoma    Satomi    Serina    Shiori    Suzuka Takamitsu    Yusuke 
##  28.42105  27.63158  27.63158  27.63158  26.44737  27.23684  27.23684

Create writing scores out of 10 points.

tapply(y$Token_count, y$Name, mean) %>% sort
## Takamitsu      Kana    Serina    Suzuka      Aoba    Satomi   Chisako     Junko 
##  6.705882  7.500000  8.850000  8.952381  9.222222  9.263158  9.375000  9.388889 
##    Fuyuno     Ayana     Erusa      Mone    Yusuke     Ryoma       Mai     Kengo 
##  9.842105 10.631579 10.894737 11.550000 11.850000 12.111111 12.368421 12.944444 
##     Eriko     Kyoka     Ayano    Shiori     Reina      Miyu  Kenshiro 
## 13.157895 13.272727 13.888889 15.100000 17.421053 17.944444 29.750000
writing10 <- (tapply(y$Token_count, y$Name, mean)/29.75)*10
writing10
##      Aoba     Ayana     Ayano   Chisako     Eriko     Erusa    Fuyuno     Junko 
##  3.099907  3.573640  4.668534  3.151261  4.422822  3.662096  3.308271  3.155929 
##      Kana     Kengo  Kenshiro     Kyoka       Mai      Miyu      Mone     Reina 
##  2.521008  4.351074 10.000000  4.461421  4.157452  6.031746  3.882353  5.855816 
##     Ryoma    Satomi    Serina    Shiori    Suzuka Takamitsu    Yusuke 
##  4.070962  3.113667  2.974790  5.075630  3.009204  2.254078  3.983193

Add the feedback and writing scores together.

(feedback30 + writing10) %>% sort %>% round
## 
##   Chisako      Aoba     Junko     Erusa    Suzuka Takamitsu     Ayana      Kana 
##        28        28        28        29        29        29        30        30 
##     Ayano    Serina    Satomi    Yusuke    Fuyuno     Kengo       Mai     Eriko 
##        30        31        31        31        31        32        32        32 
##     Ryoma      Mone    Shiori      Miyu     Kyoka     Reina  Kenshiro 
##        32        33        33        33        33        34        40

Conclusion

It is very difficult to gain insight about students’ mood or motivation while conducting classes on Zoom, especially if breakout rooms are used.  However, by asking pertinent questions, collecting data, and analyzing it appropriately, it is possible to draw inferences that may not have been possible otherwise.
This r script helped me to get to know my students quite well. Some data was shared with the students via the Google Classroom stream, for example, the boxplots of discussion leader scores; Some information was treated confidentially, for example, telling the class that “someone” was giving everyone the same feedback score; and some data remained private, such as the useful heatmap of participant to leader feedback scores, in case it lead to some students falling out with each other.