1. Base de questionário
Neste experimento, primeiramente utilizamos o questionário Bebras
Brasil, composto por 12 questões. Em seguida, os participantes foram
submetidos ao jogo Fábulas Computacionais. Ambos, o Bebras e o jogo,
tiveram um tempo estabelecido de 1 hora para a realização das atividades
propostas. O estudo foi conduzido com 46 alunos do ensino fundamental,
abrangendo estudantes do quinto ao oitavo ano.
#carregando base geral
dados <- read_csv2("datasets/experimento.csv")
#binarizando acertos bebras, abaixo e acima da média
dados <- dados |> mutate(media_bebras = ifelse(perc_acertos_bebras > 36.78, "Acima da Média (36,78)", "Abaixo da Média (36,78)"))
#binarizando acertos game, abaixo e acima da média
dados <- dados |> mutate(media_game = ifelse(perc_acertos_game > 73.55, "Acima da Média (73,55)", "Abaixo da Média (73,55)"))
#Mostrando a tabela
paged_table(dados)
2. Tabela descritiva
Bebras
dados |>
select(sexo, serie, media_bebras) |>
tbl_summary(by = media_bebras) |>
#add_p() |>
add_overall() |>
bold_levels()
| Characteristic |
Overall, N = 46 |
Abaixo da Média (36,78), N = 26 |
Acima da Média (36,78), N = 20 |
| sexo |
|
|
|
| Feminino |
20 (43%) |
11 (42%) |
9 (45%) |
| Masculino |
26 (57%) |
15 (58%) |
11 (55%) |
| serie |
|
|
|
| 5ª Série |
17 (37%) |
11 (42%) |
6 (30%) |
| 6ª Série |
11 (24%) |
6 (23%) |
5 (25%) |
| 7ª Série |
9 (20%) |
4 (15%) |
5 (25%) |
| 8ª Série |
9 (20%) |
5 (19%) |
4 (20%) |
Game
dados |>
select(sexo, serie, media_game) |>
tbl_summary(by = media_game) |>
#add_p() |>
add_overall() |>
bold_levels()
| Characteristic |
Overall, N = 46 |
Abaixo da Média (73,55), N = 19 |
Acima da Média (73,55), N = 27 |
| sexo |
|
|
|
| Feminino |
20 (43%) |
10 (53%) |
10 (37%) |
| Masculino |
26 (57%) |
9 (47%) |
17 (63%) |
| serie |
|
|
|
| 5ª Série |
17 (37%) |
7 (37%) |
10 (37%) |
| 6ª Série |
11 (24%) |
7 (37%) |
4 (15%) |
| 7ª Série |
9 (20%) |
1 (5.3%) |
8 (30%) |
| 8ª Série |
9 (20%) |
4 (21%) |
5 (19%) |
2. Relação de acertos por série
Bebras (Gráfico)
#boxplot de serie por acertos no bebras
my_comparisons <- list( c("5ª Série", "6ª Série"), c("5ª Série", "7ª Série"), c("5ª Série", "8ª Série"),c("6ª Série", "7ª Série") ,c("6ª Série", "8ª Série"),c("7ª Série", "8ª Série"))
ggboxplot(dados, x = "serie", y = "perc_acertos_bebras",
color = "serie", palette = "jco")+
stat_compare_means(comparisons = my_comparisons)+
stat_compare_means(label.y = 11)

Bebras (Descritiva)
#descritiva perc_acertos_bebras por serie
dados |>
select(perc_acertos_bebras, serie) |>
group_by(serie) |>
summarise(media = mean(perc_acertos_bebras),
mediana = median(perc_acertos_bebras),
desvio = sd(perc_acertos_bebras),
minimo = min(perc_acertos_bebras),
maximo = max(perc_acertos_bebras)) |>
paged_table()
Game
#boxplot de serie por acertos no bebras
my_comparisons <- list( c("5ª Série", "6ª Série"), c("5ª Série", "7ª Série"), c("5ª Série", "8ª Série"),c("6ª Série", "7ª Série") ,c("6ª Série", "8ª Série"),c("7ª Série", "8ª Série"))
ggboxplot(dados, x = "serie", y = "perc_acertos_game",
color = "serie", palette = "jco")+
stat_compare_means(comparisons = my_comparisons)+
stat_compare_means(label.y = 11)

Game (Descritiva)
#descritiva perc_acertos_bebras por serie
dados |>
select(perc_acertos_game, serie) |>
group_by(serie) |>
summarise(media = mean(perc_acertos_game),
mediana = median(perc_acertos_game),
desvio = sd(perc_acertos_game),
minimo = min(perc_acertos_game),
maximo = max(perc_acertos_game)) |>
paged_table()
3. Médias de acertos por habilidade no game
3.1 Tabelas
Tipos de Dados
dados |>
select(perc_acertos_game_td, serie) |>
group_by(serie) |>
summarise(media = mean(perc_acertos_game_td),
mediana = median(perc_acertos_game_td),
desvio = sd(perc_acertos_game_td),
minimo = min(perc_acertos_game_td),
maximo = max(perc_acertos_game_td)) |>
paged_table()
Linguagem de Programação
dados |>
select(perc_acertos_game_lp, serie) |>
group_by(serie) |>
summarise(media = mean(perc_acertos_game_lp),
mediana = median(perc_acertos_game_lp),
desvio = sd(perc_acertos_game_lp),
minimo = min(perc_acertos_game_lp),
maximo = max(perc_acertos_game_lp)) |>
paged_table()
Decomposição
dados |>
select(perc_acertos_game_d, serie) |>
group_by(serie) |>
summarise(media = mean(perc_acertos_game_d),
mediana = median(perc_acertos_game_d),
desvio = sd(perc_acertos_game_d),
minimo = min(perc_acertos_game_d),
maximo = max(perc_acertos_game_d)) |>
paged_table()
Generalização
dados |>
select(perc_acertos_game_g, serie) |>
group_by(serie) |>
summarise(media = mean(perc_acertos_game_g),
mediana = median(perc_acertos_game_g),
desvio = sd(perc_acertos_game_g),
minimo = min(perc_acertos_game_g),
maximo = max(perc_acertos_game_g)) |>
paged_table()
3.2 Gráficos
Barras
grafico <- dados |>
select(serie, perc_acertos_game_td, perc_acertos_game_lp, perc_acertos_game_d, perc_acertos_game_g) |>
gather(key = "habilidade", value = "perc_acertos_game", -serie) |>
group_by(serie, habilidade) |>
summarise(media = mean(perc_acertos_game),
desvio = sd(perc_acertos_game))
# Mapeamento dos novos rótulos para as habilidades
novos_rotulos <- c(
"perc_acertos_game_d" = "Decomposição",
"perc_acertos_game_g" = "Generalização",
"perc_acertos_game_lp" = "Linguagem de Programação",
"perc_acertos_game_td" = "Tipos de Dados"
)
# Criar o gráfico de barras com médias e desvios
ggplot(grafico, aes(x = habilidade, y = media, fill = serie)) +
geom_bar(stat = "identity", position = "dodge", width = 0.7, alpha = 0.6) +
geom_errorbar(aes(ymin = media - desvio, ymax = media + desvio),
width = 0.3, position = position_dodge(width = 0.7)) +
labs(x = "", y = "Médias no game", color = "Série",
title = "Médias e Desvios por Habilidade e Série") +
scale_x_discrete(labels = novos_rotulos) + # Alteração dos rótulos no eixo x
theme_minimal()

Linhas
# Criar o gráfico de linhas com médias e valores nos pontos
ggplot(grafico, aes(x = habilidade, y = media, color = serie, group = serie)) +
geom_line(size = 1) +
geom_point(size = 3) +
geom_text(aes(label = round(media, 2)), vjust = -0.5, size = 3, show.legend = FALSE) +
labs(x = "", y = "Médias no game", color = "Série",
title = "Médias por Habilidade e Série") +
scale_x_discrete(labels = novos_rotulos) + # Alteração dos rótulos no eixo x
theme_minimal()

4. Correlação entre bebras e game por série
Todos
plot(cor_test(dados, "perc_acertos_bebras", "perc_acertos_game"))

5º ano
dados_filtrado_serie <- dados |> filter(serie == "5ª Série")
plot(cor_test(dados_filtrado_serie, "perc_acertos_bebras", "perc_acertos_game"))

6º ano
dados_filtrado_serie <- dados |> filter(serie == "6ª Série")
plot(cor_test(dados_filtrado_serie, "perc_acertos_bebras", "perc_acertos_game"))

7º ano
dados_filtrado_serie <- dados |> filter(serie == "7ª Série")
plot(cor_test(dados_filtrado_serie, "perc_acertos_bebras", "perc_acertos_game"))

8º ano
dados_filtrado_serie <- dados |> filter(serie == "8ª Série")
plot(cor_test(dados_filtrado_serie, "perc_acertos_bebras", "perc_acertos_game"))

5. Modelo de regressao
Tipos de Dados (TD)
dados_cor <- dados |> select(tent_td1, tent_td2, tent_td3, tent_td)
#plot(correlation(dados_cor, partial = TRUE)) +
# scale_edge_color_continuous(low = "#000004FF", high = "#FCFDBFFF")
Linguagem Programação (LP)
dados_cor <- dados |> select(tent_lp1, tent_lp2, tent_lp3, tent_lp, conq_lp1, conq_lp2, conq_lp3)
plot(correlation(dados_cor, partial = TRUE)) +
scale_edge_color_continuous(low = "#000004FF", high = "#FCFDBFFF")
