Percepções dos alunos de CC (UFCG) acerca do ensino remoto emergencial

library(tidyverse)
library(here)
library(kableExtra)
library(ggsci)

theme_set(theme_bw())
survey = read_csv(
    here("data/modified_survey.csv")
)

survey$disciplinas = as.factor(survey$disciplinas)
survey$periodo = as.factor(survey$periodo)

Nesse relatório, onde faremos a análise das percepções dos estudantes de CC (UFCG) acerca do ensino remoto de emergência, se encontram as visualizações e interpretações das respostas de cada questão. Como também análises de correlação e de estatísticas da nossa amostra. Por fim, fazendo inferências acerca do aprendizado e das dificuldades entre os alunos. Os dados são provenientes de um questionário aplicado entre as datas de 10/08/2021 até 16/08/2021, o qual contou com a participação de 67 estudantes do curso.

Link para as questões: Google Drive
Link para os dados (CSV): Github

Primeiramente, iremos apresentar as nossas hipóteses e logo após a categorização demográfica da nossa amostra, dando uma melhor ideia de quem respondeu nossa pesquisa.

Hipóteses

Esperamos que:

  1. Os problemas técnicos dos alunos sejam a menor dificuldade, em todas as classes de disciplinas avaliadas, pelo próprio contexto do curso.

  2. O gerenciamento do tempo e ambiente de aprendizado cheio de distrações sejam percebidos mais negativamente do que os outros fatores

  3. Haja diferença significativa das avaliações de dificuldades/pontos positivos em classes de disciplinas diferentes (teóricas de computação/gerais, teóricas de matemática/estatística, práticas/laboratório)

  4. A flexibilidade dos horários representa a principal ajuda para os alunos durante o período de ensino remoto emergencial

  5. Haja correlação entre as dificuldades e o índice de aprendizado

Categorização demográfica

Na categorização, solicitamos aos alunos suas idades, gênero (masculino, feminino, outros, prefiro não dizer), período em que entraram na faculdade e classe de disciplinas que cursaram ou estão cursando no ensino remoto emergencial.

Qual a sua idade ?

tot <- survey %>%
            select(data_hora, idade) %>%
            distinct %>%
            count %>%
            pull(n)

survey %>%
    select(data_hora, idade) %>%
    distinct %>%
    group_by(idade) %>%
    summarise(freq_abs = n(), freq = paste(round(n() / tot * 100, 1), "%", sep = "")) %>%
    ggplot(aes(x = idade, y = freq_abs)) +
    geom_col(fill = "dodgerblue", width = 0.5, position = position_dodge(1)) +
    geom_text(aes(label=freq), vjust=-0.5, color="gray18", position = position_dodge(1), size=4) +
    scale_x_continuous(breaks = 18:34) +
    scale_y_continuous(limits = c(0, 20)) +
    labs(
        x = "Idade",
        y = "Frequência",
        title = "Distribuição das idades dos participantes"
    )

survey %>%
    select(data_hora, idade) %>%
    distinct %>%
    summarise("Média: " = round(mean(idade), 2), 
              "Mediana: " = median(idade), 
              "Desvio padrão: " = round(sd(idade), 2), 
              "90th percentil: " = quantile(idade, 0.9)) %>%
     kable(align = "cccc", caption = "Estatísticas da idade dos participantes.") %>%
        kable_material(full_width = FALSE, position = "center", font_size = 16)
Estatísticas da idade dos participantes.
Média: Mediana: Desvio padrão: 90th percentil:
21.87 21 2.77 24

A idade, como podemos ver, é bastante concentrada entre 19-24 anos, com um formato parecido com a distribuição normal, somado a uma calda que se entende a direita (algumas poucas idades maiores que fogem da tendência geral). Já o desvio padrão (2.77 anos) é consideravelmente baixo em comparação com a média. Sua mediana e média estão bem próximas de 21 e apenas 10% dos participantes têm mais de 24 anos.

Gênero

tot <- survey %>%
            select(data_hora, genero) %>%
            distinct %>%
            count %>%
            pull(n)

survey %>%
    select(data_hora, genero) %>%
    distinct %>%
    group_by(genero) %>%
    summarise(freq = paste(round(n() / tot * 100, 1), "%", sep = "")) %>%
    ggplot(aes(x = genero, y = freq)) +
    geom_col(aes(fill = genero), width = 0.3) +
    geom_text(aes(label=freq), hjust = -0.2, color="gray18", size=5) +
    labs(
        x = "",
        y = "Frequência",
        title = "Distribuição dos participantes por gênero",
        fill = "Gênero"
    ) +
    scale_fill_npg() +
    theme(axis.text.x = element_blank(),
          axis.ticks.x = element_blank()) +
    coord_flip()

Vemos que em torno de 80% se declararam do gênero masculino e 20% do feminino. O que é interessante, pois a nossa frequênia é apenas um pouco maior que a média percentual de ingresso feminino no curso, que é de 16.11%, (segundo dados da UFCG explorados pelo grupo Elas@Computação). Ou seja, nossa amostra é relativamente representativa quanto a esse aspecto.

Em que período você entrou na faculdade ?

survey %>%
    select(data_hora, periodo) %>%
    distinct %>%
    group_by(periodo) %>%
    summarise(freq_abs = n(), freq = paste(round(n() / tot * 100, 1), "%", sep = "")) %>%
    ggplot(aes(x = reorder(periodo, freq_abs), y = freq_abs)) +
    geom_col(aes(fill = as.numeric(reorder(periodo, freq_abs))), width = 0.5, position = position_dodge(1)) +
    geom_text(aes(label=freq), hjust = -0.5, color="gray18", position = position_dodge(1), size=4) +
    labs(
        x = "Período",
        y = "Frequência",
        title = "Distribuição dos participantes por período",
        fill = "Período em que entrou"
    ) +
    scale_y_continuous(limits = c(0, 20)) +
    scale_fill_gradient2(low = "gray", high = "green4") +
    coord_flip()

Como esperado, tivemos mais participantes do período 2017.X e 2018.X (56.8%), os quais representam as maiores parcelas da sala de metodologia científica. Também tivemos participação considerável dos alunos dos períodos mais recentes (2020.1 e 2020.2), 19.4%. De forma geral, houveram estudantes de todos os períodos desde, pelo menos, 2015.2.

Que classes de disciplinas você cursou ou está cursando no ensino remoto emergencial ?

survey %>%
    summarise("Teóricas de computação/gerais" = mean(comp_cursadas), 
              "Teóricas de matemática/estatística" = mean(mat_cursadas), 
              "Práticas/Laboratórios" = mean(prat_cursadas)) %>%
    pivot_longer(c("Teóricas de computação/gerais", 
                   "Teóricas de matemática/estatística", 
                   "Práticas/Laboratórios"), names_to = "disciplinas", values_to = "freq") %>%
    ggplot(aes(x = reorder(disciplinas, freq), y = freq * 100)) +
        geom_col(aes(fill = reorder(disciplinas, freq)), width = 0.4, position = position_dodge(1)) +
        geom_text(aes(label=paste(round(freq * 100, 2), "%", sep = "")), 
                  hjust = -0.5, color="gray18", position = position_dodge(1), size=4) +
        theme(legend.position = "none")  +
        scale_fill_brewer(palette = "Blues") +
        scale_y_continuous(limits = c(0, 110)) +
        coord_flip() +
        labs(
            y = "Frequência (%)",
            x = "",
            title = "Participantes que cursaram diferentes classes de disciplina"
        )

A maioria dos participantes estudaram disciplinas teóricas de computação/gerais (97.01%), enquanto as práticas obtiveram a menor participação (70.15%). Já as de matemática/estatística formam o meio termo (80.6%), ou seja, os estudantes participaram bastante nas classes observadas.

Avaliação das dificuldades observadas na literatura

Nessa seção iremos analisar as distribuições e estatísticas dos graus de prejuízo relatados para cada dificuldade. Só foram considerados na distribuição para uma certa classe de disciplinas os respondentes que cursaram ou estão cursando alguma matéria daquela classe.

# Counting the ratings of a certain aspect
rating_count_info <- function(df, aspect = "prob_tec", disc = "comp") {
    tot <- df %>%
            filter(aspecto == aspect, 
                   disciplinas == disc) %>%
            count %>%
            pull("n")
            
    df %>%
        filter(aspecto == aspect, 
               disciplinas == disc) %>%
        group_by(avaliacao) %>%
        summarise(count = n(),
                  freq = paste(round(n() / tot * 100, 1), "%", sep = ""),
                  disciplinas, .groups = "drop") %>%
    unique
}

aspect_distribution <- function(df, aspect = "prob_tec", dir = 1, pal = "Reds", ...) {
    
    # It gets the the ratings counts for the people that have already or are taking 
    # the disciplines
    total <- rbind(
        rating_count_info(df %>% filter(mat_cursadas == 1), aspect, "mat"),
        rating_count_info(df %>% filter(comp_cursadas == 1), aspect, "comp"),
        rating_count_info(df %>% filter(prat_cursadas == 1), aspect, "prat")
    )
    
    levels(total$disciplinas) <- c("Teóricas de computação/gerais", "Teóricas de matemática/estatística", "Práticas/Laboratórios")
    
    total %>%
        ggplot(aes(x = avaliacao, y = count)) +
            geom_col(aes(fill = as.character(avaliacao))) +
            scale_fill_brewer(palette = pal, direction = dir) +
            geom_text(aes(label=freq), vjust=-0.5, color="gray18", position = position_dodge(1), size=3) +
            facet_wrap(~disciplinas) +
            labs(
                y = "Frequência",
                x = "Grau",
                fill = "Grau",
                ...
            )
}

rating_summarise <- function(df, aspect = "prob_tec", disc = "comp") {
    df %>%
        filter(aspecto == aspect,
               disciplinas == disc) %>%
        summarise(disciplinas,
                  "Média" = round(mean(avaliacao), 2), 
                  "Mediana" = median(avaliacao), 
                  "Desvio padrão" = round(sd(avaliacao), 2), 
                  "90th percentil" = quantile(avaliacao, 0.9), 
                  .groups = "drop") %>%
        rename("Disciplinas" = disciplinas) %>%
        unique
}

aspect_stats <- function(df, aspect) {
    
    total <- rbind(
        rating_summarise(df %>% filter(mat_cursadas == 1), aspect, "mat"),
        rating_summarise(df %>% filter(comp_cursadas == 1), aspect, "comp"),
        rating_summarise(df %>% filter(prat_cursadas == 1), aspect, "prat")
    )
    
    levels(total$Disciplinas) <- c("Teóricas de computação/gerais", "Teóricas de matemática/estatística", "Práticas/Laboratórios")
    
    total %>%
        kable(align = "lcccc", caption = "Estatísticas do aspecto") %>%
            kable_material(full_width = FALSE, position = "center", font_size = 14)
}

Problemas(s) técnico(s) (hardware / software / rede)

aspect_distribution(survey, title = "Distribuição do grau de prejuízo trazido por problemas técnicos",
                    caption = "Valores maiores: Maior prejuízo; Valores menores: Menor prejuízo")

aspect_stats(survey, "prob_tec")
Estatísticas do aspecto
Disciplinas Média Mediana Desvio padrão 90th percentil
Teóricas de matemática/estatística 1.72 1 1.04 3.7
Teóricas de computação/gerais 1.80 1 1.05 3.0
Práticas/Laboratórios 2.02 1 1.33 4.0

Observamos que a maioria dos alunos não consideraram que os problemas técnicos trouxeram grandes prejuízos durante o ensino remoto. O grau 1 (menor prejuízo) é o maior em todas as classes de disciplinas abordadas (evidenciado pela mediana). Já a média ficou em torno de 2 na amostra, ou seja, em média foi notado pouco prejuízo.

Problema de gerenciamento do tempo

aspect_distribution(survey, aspect = "prob_ger_temp", 
                    title = "Distribuição do grau de prejuízo trazido por mal gerenciamento de tempo",
                    caption = "Valores maiores: Maior prejuízo; Valores menores: Menor prejuízo")

aspect_stats(survey, "prob_ger_temp")
Estatísticas do aspecto
Disciplinas Média Mediana Desvio padrão 90th percentil
Teóricas de matemática/estatística 2.78 3 1.50 5
Teóricas de computação/gerais 2.77 3 1.37 5
Práticas/Laboratórios 2.68 3 1.32 5

Diferentemente do gráfico anterior (prejuízo por problemas técnicos), aqui temos uma distribuição com frequências de respostas bem mais próximas. Como era de se esperar, uma boa parte da amostra considerou o gerenciamento de tempo como um fator determinante para o processo de aprendizagem durante o ensino remoto, sendo que o mal gerenciamento deste prejudica bastante esse processo. As médias e medianas estiveram em torno de 3 em todas as classes, o que nos indica que cerca de metade dos alunos avalia como um prejuízo considerável a outra parte não tem tanto problema com esse gerenciamento.

Comunicação prejudicada com os professores a partir das vídeo-chamadas e/ou emails

aspect_distribution(survey, aspect = "comunic_prej", 
                    title = "Distribuição do grau de prejuízo trazido pela comunicação prejudicada",
                    caption = "Valores maiores: Maior prejuízo; Valores menores: Menor prejuízo")

aspect_stats(survey, "comunic_prej")
Estatísticas do aspecto
Disciplinas Média Mediana Desvio padrão 90th percentil
Teóricas de matemática/estatística 2.43 2 1.21 4.0
Teóricas de computação/gerais 2.40 2 1.20 4.0
Práticas/Laboratórios 2.49 2 1.37 4.4

Quanto à comunicação prejudicada, ela é avaliada como um prejuízo não tão considerável, mas maior que o dos problemas técnicos. Sua média e mediana ficam bem próximas de 2, ou seja, a maior parte dos estudantes entrevistados perceberam baixo prejuízo.

Falta de contato face-a-face e de atenção individualizada com o professor

aspect_distribution(survey, aspect = "falta_contato", title = "Distribuição do grau de prejuízo trazido pela falta de contato",
                    caption = "Valores maiores: Maior prejuízo; Valores menores: Menor prejuízo")

aspect_stats(survey, "falta_contato")
Estatísticas do aspecto
Disciplinas Média Mediana Desvio padrão 90th percentil
Teóricas de matemática/estatística 2.85 3 1.45 5
Teóricas de computação/gerais 3.00 3 1.32 5
Práticas/Laboratórios 2.98 3 1.50 5

Em relação a falta de contato face-a-face, vemos um cenário parecido com o de mal gerenciamento do tempo. Enquanto cerca da metade dos participantes encontram prejuízo considerável, a outra parte encontra pouco. Esse gráfico também é um dos mais uniformes apresentados até agora, com exceção das “Teóricas de computação/gerais”, em que a maioria avalia um prejuízo mediano.

Ambiente de aprendizado não produtivo

aspect_distribution(survey, aspect = "amb_nao_prod", title = "Distribuição do grau de prejuízo trazido pelo ambiente não produtivo",
                    caption = "Valores maiores: Maior prejuízo; Valores menores: Menor prejuízo")

aspect_stats(survey, "amb_nao_prod")
Estatísticas do aspecto
Disciplinas Média Mediana Desvio padrão 90th percentil
Teóricas de matemática/estatística 3.39 4 1.45 5
Teóricas de computação/gerais 3.49 4 1.36 5
Práticas/Laboratórios 3.34 4 1.39 5

Por fim, vemos que o prejuízo percebido pelo ambiente não produtivo representa o maior encontrado na amostra, com mediana 4 e médias próximas de 3.5. O que nos indica um prejuízo alto. Isso é válido em todas as classes de disciplinas avaliadas.

Avaliação de pontos positivos observados na literatura

Nessa seção iremos analisar as distribuições e estatísticas dos graus de ajuda relatados para cada ponto positivo. Só foram considerados na distribuição para uma certa classe de disciplinas os respondentes que cursaram ou estão cursando alguma matéria daquela classe.

Flexibilidade nos horários de estudo

aspect_distribution(survey, aspect = "flex_horario", dir = 1, pal = "Blues",
                    title = "Distribuição do grau de ajuda trazido pelo horário flexível",
                    caption = "Valores maiores: Maior ajuda; Valores menores: Menor ajuda")

aspect_stats(survey, "flex_horario")
Estatísticas do aspecto
Disciplinas Média Mediana Desvio padrão 90th percentil
Teóricas de matemática/estatística 4.33 5 1.03 5
Teóricas de computação/gerais 4.31 5 1.04 5
Práticas/Laboratórios 4.21 5 1.16 5

No gráfico acima, temos um resultado que condiz com o que esperávamos. A flexibilidade do horário, característica do ensino remoto, foi um ponto bastante positivo para os alunos. Vemos que a mediana foi 5, ou seja, mais de 50% dos participantes avaliaram da melhor forma possível esse ponto. Enquanto as médias estiveram acima de 4.2, um valor bastante considerável.

Estruturas mais claras das disciplinas

aspect_distribution(survey, aspect = "estrut_clara", dir = 1, pal = "Blues",
                    title = "Distribuição do grau de ajuda trazido pela estrutura clara",
                    caption = "Valores maiores: Maior ajuda; Valores menores: Menor ajuda")

aspect_stats(survey, "estrut_clara")
Estatísticas do aspecto
Disciplinas Média Mediana Desvio padrão 90th percentil
Teóricas de matemática/estatística 3.74 4 1.23 5
Teóricas de computação/gerais 3.71 4 1.25 5
Práticas/Laboratórios 3.62 4 1.28 5

Quanto à estrutura mais clara das disciplinas, vemos que também foi bem avaliada, não tão notoriamente como a flexibilidade de horários. Mas ainda assim com mediana 4 e média em torno de 3.7, ou seja, a maioria percebe que realmente esse ponto os ajudou.

Aprendizado no seu ritmo

aspect_distribution(survey, aspect = "ritmo_proprio", dir = 1, pal = "Blues",
                    title = "Distribuição do grau de ajuda trazido pelo ritmo próprio",
                    caption = "Valores maiores: Maior ajuda; Valores menores: Menor ajuda")

aspect_stats(survey, "ritmo_proprio")
Estatísticas do aspecto
Disciplinas Média Mediana Desvio padrão 90th percentil
Teóricas de matemática/estatística 3.69 4 1.27 5
Teóricas de computação/gerais 3.78 4 1.10 5
Práticas/Laboratórios 3.68 4 1.18 5

De forma bem parecida com a estrutura mais clara das disciplinas, vemos que também foi bem avaliada. Com mediana 4 e média em torno de 3.7, ou seja, a maioria também percebe que realmente esse ponto os ajudou.

Grau de aprendizado

Nesta seção iremos avaliar o grau de aprendizado relatado pelos estudantes. Quanto maior o valor, mais o estudante considera que seu aprendizado melhorou (aprendeu bem mais) e valores menores o contrário (aprendeu bem menos).

survey %>%
    select(data_hora, indice_aprendizado, genero) %>%
    distinct %>%
    group_by(genero) %>%
    ggplot(aes(x = indice_aprendizado)) +
    geom_density(aes(fill = genero, color = genero), alpha = 0.4) +
    scale_x_continuous(breaks = 1:10) +
    guides(color = FALSE) +
    labs(
        title = "Grau de aprendizagem percebido pelos estudantes",
        caption = "Valores menores indicam pouco aprendizado percebido e vice-versa",
        x = "Aprendizado percebido",
        y = "Densidade",
        fill = "Gênero"
    ) +
    scale_fill_npg()

Vemos com a ajuda desse gráfico de densidades (de interpretação semelhante aos histogramas) que há uma certa bimodalidade no grau de aprendizagem masculino em torno de 4 e 7. Ou seja, existem dois grupos mais frequentes que avaliam negativamente e positivamente o aprendizado, respectivamente. Enquanto no caso feminino, vemos que claramente as respondentes em sua maioria veem um impacto negativo em sua aprendizagem. Algo interessante é que as mulheres estão mais presentes nos extremos do que os homens, o que demonstra uma variação alta.

Questões abertas

Os participantes também responderam duas questões abertas que diziam respeito a que dificuldades e pontos positivos eles avaliam que os impactaram negativamente ou positivamente (não citadas anteriormente), respectivamente.

Quais dificuldades (não citadas anteriormente) te impactaram negativamente ?

Nessa categoria tivemos 11 respostas (16.4% dos participantes), onde 7 dessas relataram explicitamente uma maior carga/cobrança dos professores como sendo uma dificuldade. Citando diretamente a resposta de um participante, a qual interpretamos como sendo representativa dessa reclamação:

“A carga de atividades parece ser maior, principalmente em períodos mais curtos. São muitas entregas e prazos, a sensação é de que o período é uma ‘semana de provas’ que dura 4 meses.”

Também foram relatados problemas de comunicação (unidades acadêmicas diferentes usando outros e-mails), dificuldade ao focar no conteúdo, falta de convívio com os outros alunos e metodologia de alguns professores do departamento de matemática deixando a desejar.

Quais pontos (não citados anteriormente) te impactaram positivamente ?

Tivemos 10 respostas (14.9% dos participantes), e houve menos interseção entre os pontos positivos que mais os impactaram. Entretanto, os assuntos mais frequentes foram a utilização de novas ferramentas (discord, Google Meet e chat/votação anônimas), menos gastos com locomoção (financeiro e de tempo). Também foi reforçado o benefício da flexibilidade do tempo.

Menos frequente, mas ainda assim interessante, também foi citado o entendimento por parte dos professores (compreensão das dificuldades envolvidas no dia-a-dia dos alunos), flexibilizando a entrega de atividades. O conforto da própria casa também foi citado como algo positivo.

Decidimos destacar a resposta que fala sobre o entendimento dos professores:

“Acho que o fato de alguns professores compreenderem os atrasos é um ponto positivo. Tem sido um período de ansiedade e frustração, então quando perco um prazo e o/a professor(a) não entende que num ambiente doméstico existem muitas variáveis e nem todo mundo tem um escritório isolado de ruído, é muito triste. Por sorte são poucos os professores que escolhem ignorar isso.”

O que é algo que também observamos na literatura como sendo de importância nesse período de incertezas.

Correlações

Nós também investigamos se houve correlação entre variáveis como idade e período em que o estudante entrou na faculdade com aprendizado percebido (por gênero). E vimos que as correlações são negligenciáveis, não passando de fracas.

survey %>%
    select(data_hora, idade, periodo, indice_aprendizado, genero) %>%
    distinct %>%
    group_by(genero) %>%
    summarise("Período" = cor(as.numeric(periodo), indice_aprendizado, method = "spearman"),
              "Idade" = cor(idade, indice_aprendizado, method = "spearman")) %>%
    kable() %>%
        kable_material(full_width = FALSE, position = "center", font_size = 14) %>%
        add_header_above(header = c("Correlações de Spearman da idade e período com o aprendizado - por gênero" = 3))
Correlações de Spearman da idade e período com o aprendizado - por gênero
genero Período Idade
Feminino 0.1439280 -0.0346892
Masculino 0.1131041 -0.1104338

Também analisamos as correlações entre as dificuldades relatadas e o índice de aprendizado percebido, por classe de disciplinas e gênero.

corr <- function(df, aspect = "dificuldade", classe_disc = "comp") { 
    tot <- df %>% 
            filter(tipo == aspect, 
                   disciplinas == classe_disc) %>% 
            select(data_hora, avaliacao, indice_aprendizado, genero) %>% 
            group_by(genero) %>%
            summarise(cor_pearson = cor(avaliacao, indice_aprendizado), 
                      cor_spearman = cor(avaliacao, indice_aprendizado, method = "spearman"),
                      cor_kendall = cor(avaliacao, indice_aprendizado, method = "kendall"))
    cbind(data.frame(disc = rep(classe_disc, 2), tipo = rep(aspect, 2)), tot)
}

# Dificuldades
correlacoes_discs <- rbind(
    corr(survey %>% filter(comp_cursadas == 1)),
    corr(survey %>% filter(mat_cursadas == 1), classe_disc = "mat"),
    corr(survey %>% filter(prat_cursadas == 1), classe_disc = "prat")
)

correlacoes_discs$disc <- as.factor(correlacoes_discs$disc)
    
levels(correlacoes_discs$disc) <- c("Teóricas de computação/gerais", "Teóricas de matemática/estatística", "Práticas/Laboratórios")

correlacoes_discs %>%
    rename("Gênero" = genero, "Correlação de Pearson" = cor_pearson, "Correlação de Spearman" = cor_spearman, 
           "Correlação de Kendall" = cor_kendall, "Classe das disciplinas" = disc) %>%
    select(-tipo) %>%
    kable() %>%
        kable_material(full_width = FALSE, position = "center", font_size = 14) %>%
        add_header_above(header = c("Correlações das dificuldades com o aprendizado - por classe de disciplinas e gênero" = 5))
Correlações das dificuldades com o aprendizado - por classe de disciplinas e gênero
Classe das disciplinas Gênero Correlação de Pearson Correlação de Spearman Correlação de Kendall
Teóricas de computação/gerais Feminino -0.6258849 -0.6157303 -0.5314227
Teóricas de computação/gerais Masculino -0.3272916 -0.3192784 -0.2537287
Teóricas de matemática/estatística Feminino -0.4609024 -0.4719338 -0.4183564
Teóricas de matemática/estatística Masculino -0.3614122 -0.3619623 -0.2860848
Práticas/Laboratórios Feminino -0.4221425 -0.3904338 -0.3420065
Práticas/Laboratórios Masculino -0.3144964 -0.3057080 -0.2509803

As mulheres, interessantemente, tiveram as correlações mais fortes (principalmente nas Teóricas de computação/gerais) e negativas - a maioria tendo intensidade média. Ou seja, graus de prejuízo menores estiveram associados de forma média com índices de aprendizado mais altos, e vice-versa. Essa tendência também ocorreu nos homens, mas mais fraca e próxima em todas as classes de disciplinas - a maioria tendo intensidade média-baixa.

Resultados

Quanto aos nossos resultados, abaixo apresentamos os gráficos das médias dos graus de prejuízo trazido pelas dificuldades investigadas na literatura. A visualização é realizada com gráficos de barras associados aos intervalos de confiança de 95%, com vista a estimar a média real na população de estudantes de CC da UFCG.

# Retorna dados sumarizados dos respondentes para uma classe de disciplinas
summarise_group_info <- function(df, kind = "dificuldade", classe_disciplinas = "comp") {
    df %>%
        filter(tipo == kind, 
               disciplinas == classe_disciplinas) %>%
        group_by(aspecto) %>%
        summarise(media = mean(avaliacao), 
                  mediana = median(avaliacao), 
                  sd = sd(avaliacao), 
                  n = n(), 
                  se = sd / sqrt(n), 
                  ic = se * qnorm((0.95 + 1)/2), 
                  disciplinas, .groups = "drop") %>%
        unique
} 

# Summaries for the difficulties
comp_summary_d <- summarise_group_info(survey %>% filter(comp_cursadas == 1))
mat_summary_d <- summarise_group_info(survey %>% filter(mat_cursadas == 1), classe_disciplinas = "mat")
prat_summary_d <- summarise_group_info(survey %>% filter(prat_cursadas == 1), classe_disciplinas = "prat")

total_d <- rbind(comp_summary_d, mat_summary_d, prat_summary_d)

# Summaries for the positives
comp_summary_p <- summarise_group_info(survey %>% filter(comp_cursadas == 1), kind = "positivo")
mat_summary_p <- summarise_group_info(survey %>% filter(mat_cursadas == 1), classe_disciplinas = "mat", kind = "positivo")
prat_summary_p <- summarise_group_info(survey %>% filter(prat_cursadas == 1), classe_disciplinas = "prat", kind = "positivo")

total_p <- rbind(comp_summary_p, mat_summary_p, prat_summary_p)

levels(total_d$disciplinas) <- c("Teóricas de computação/gerais", "Teóricas de matemática/estatística", "Práticas/Laboratórios")
levels(total_p$disciplinas) <- c("Teóricas de computação/gerais", "Teóricas de matemática/estatística", "Práticas/Laboratórios")
total_d %>%
        ggplot(aes(x = reorder(aspecto, media), y = media, group = aspecto)) +
        geom_bar(aes(fill = aspecto), width = 0.4, color = "white", alpha = 0.7, stat="identity", position = position_dodge()) +
        facet_wrap(~disciplinas) +
        geom_errorbar(aes(x=aspecto, ymin=media-ic, ymax=media+ic), width=0.1, colour="black", alpha=0.7, size=0.5) +
        geom_hline(aes(yintercept = 3), lty = "dashed", color = "black", alpha = 0.4, size = 0.6) +
        scale_y_discrete(limits = factor(c(1, 2, 3, 4, 5))) +
        scale_x_discrete(labels = rev(c("Ambiente não produtivo", "Falta de contato", 
                                        "Gerenciamento de tempo", "Comunicação prejudicada", 
                                        "Problemas técnicos"))) +
        theme(legend.position = "none") +  
        coord_flip() +
        labs(
            y = "Média de avaliação",
            caption = "Valores menores = prejudicaram pouco, Valores maiores = prejudicaram muito",
            x = "",
            title = "Avaliações das dificuldades por classe de disciplinas",
            subtitle = "Média acompanhada de intervalo de confiança (95%)"
        ) +
        scale_fill_aaas()

O ambiente não produtivo de estudo realmente foi o de média mais alta, entretanto considerando o intervalo de confiança ele empata tecnicamente com a falta de contato e mal gerenciamento de tempo em todas as classes de disciplinas. Algo a se notar é que estimamos com 95% de confiança que o ambiente não produtivo (nas Teóricas de computação/gerais) está acima de 3 em todo o intervalo provável, ou seja, ele tende a direita do valor mediano (o único em que isso acontece). Já os problemas técnicos realmente foram razoavelmente mais baixos que todos os outros, sendo estimado em quase todos os casos a estar abaixo ou igual a 2 (com exceção das Práticas/Laboratórios). O prejuízo médio da comunicação imperfeita com o professor foi relativamente baixo, mas o seu intervalo também intersecta com gerenciamento de tempo e falta de contato, portanto não podemos considerá-la mais baixa na população. Não vimos diferença significativa entre as estimativas por intervalo de confiança entre as classes de disciplinas, como antes hipotetizamos.

Fizemos o mesmo para os pontos positivos:

total_p %>%
        ggplot(aes(x = reorder(aspecto, media), y = media, group = aspecto)) +
        geom_bar(aes(fill = aspecto), width = 0.3, color = "white", alpha = 0.7, stat="identity", position = position_dodge()) +
        facet_wrap(~disciplinas) +
        geom_errorbar(aes(x=aspecto, ymin=media-ic, ymax=media+ic), width=0.1, colour="black", alpha=0.7, size=0.5) +
        geom_hline(aes(yintercept = 3), lty = "dashed", color = "black", alpha = 0.4, size = 0.6) +
        scale_y_discrete(limits = factor(c(1, 2, 3, 4, 5))) +
        scale_x_discrete(labels = rev(c("Horário flexível", 
                                        "Aprendizado no seu ritmo", 
                                        "Estrutura/cronograma claro"))) +
        theme(legend.position = "none") +  
        coord_flip() +
        labs(
            y = "Média de avaliação",
            caption = "Valores menores = ajudaram pouco, Valores maiores = ajudaram muito",
            x = "",
            title = "Avaliações dos pontos positivos por classe de disciplinas",
            subtitle = "Média acompanhada de intervalo de confiança (95%)"
        ) +
        scale_fill_npg()

O horário flexível realmente demonstrou ser o que foi percebido por mais ter ajudado durante o período de ensino remoto emergencial na amostra. Todavia, levando em consideração o intervalo de confiança não podemos assumir que isso é verdade na população, as estimativas estão bem próximas considerando-o. Ainda assim, todas elas estão, pelo menos, acima de 3 ou acima, e o horário flexível está no mínimo em torno de 4 ou acima.

Também analisamos as médias do aprendizado com intervalos de confiança de 95% logo abaixo.

survey %>%
    select(data_hora, indice_aprendizado, genero) %>%
    distinct %>%
    group_by(genero) %>%
    summarise(
        media = mean(indice_aprendizado), 
        sd = sd(indice_aprendizado), 
        n = n(), 
        se = sd / sqrt(n), 
        ic = se * qnorm((0.95 + 1)/2)
    ) %>%
    ggplot(aes(x = genero, y = media)) +
    geom_point(aes(color = genero), size = 2.5) +
    geom_errorbar(aes(x=genero, color = genero, ymin=media-ic, ymax=media+ic), width=0.1, size=0.9) +
    coord_flip() +
    geom_hline(aes(yintercept = 5.5), lty = "dashed", color = "darkgray") +
    scale_y_continuous(limits=c(1, 10), breaks = 1:10) +
    labs(
        x = "Gênero",
        y = "Aprendizado percebido",
        color = "Gênero",
        title = "Aprendizado percebido",
        subtitle = "Média acompanhada de intervalo de confiança (95%)"
    )

O que observamos são médias próximas de 5.5, meio da escala, sendo mais ampla para as mulheres e menos para os homens. O que concluímos é que no caso masculino, seus aprendizados, em média, não mudaram muito (nem aprenderam bem menos nem mais), podendo existir uma leve tendência a negativo ou positivo. Já nas mulheres, por sua amostra ser menor e ter desvio padrão alto obtivemos um intervalo amplo que não nos diz muito, com ele não podemos concluir que elas aprenderam menos, o mesmo, ou mais. Precisaríamos coletar dados de mais participantes do gênero feminino para tentar estimar melhor. Todavia, não há extremos na nossa estimativa, isto é, não temos evidência que o aprendizado melhorou ou piorou bastante.