library(plotly)
library(DT)

library(dplyr)
library(knitr)
library(ggplot2)
library(reshape2)

Projeto em andamento - Não completo

Avaliações UTEC - Grégorio Bezerra - ESO 3

Obtenção de dados

Os presentes dados foram obtidos para avaliação e acompanhamentos dos alunos no decorrer do projeto de nosso curso. As avaliações são: Avaliação de curso - Impressa e respondida á mão em 09/11/2024 Avaliação introdutoria á robótica - feito via Kahoot 10/11/2024 Avaliação sobre Funções - feito via Kahoot 24/11/2024 Avaliação de prática - feito via Kahoot 01/12/2024 Avaliação final - feito via Google Forms 14/12/2024 Avaliação de curso final - Impressa e respondida á mão em 14/12/2024

Avaliação de Curso vs Avaliação final de curso


# Supondo que você já tenha lido os dados
dados_avaliativos_curso_1 <- read.csv("dataset/Dados avaliativos - Avaliação do curso.csv")
dados_avaliativos_curso_2 <- read.csv("dataset/Dados avaliativos eso - Avaliação final do curso.csv")

# Substituindo valores faltantes por NA
dados_avaliativos_curso_1[is.na(dados_avaliativos_curso_1)] <- NA
dados_avaliativos_curso_2[is.na(dados_avaliativos_curso_2)] <- NA

# Importando a biblioteca DT
library(DT)

# Criando tabelas interativas para ambos os conjuntos de dados
tabela_1 <- datatable(dados_avaliativos_curso_1, options = list(pageLength = 5))
tabela_2 <- datatable(dados_avaliativos_curso_2, options = list(pageLength = 5))

# Exibindo as tabelas
tabela_1
tabela_2
NA

Avaliação de antes e depois comparada

# Carregar a biblioteca
library(plotly)

# Selecionar as colunas numéricas a partir da pergunta 3
dados_avaliativos_curso_1 <- dados_avaliativos_curso_1[4:nrow(dados_avaliativos_curso_1),]
dados_avaliativos_curso_2 <- dados_avaliativos_curso_2[4:nrow(dados_avaliativos_curso_2),]

# Criar um dataframe para cada aluno
alunos <- colnames(dados_avaliativos_curso_1)[-1]  # nomes dos alunos
graficos <- list()  # lista para armazenar os gráficos

for (aluno in alunos) {
  # Verificar se o aluno tem respostas completas antes e depois
  if (!any(is.na(dados_avaliativos_curso_1[,aluno])) && !any(is.na(dados_avaliativos_curso_2[,aluno]))) {
    df <- data.frame(
      Pergunta = as.numeric(rownames(dados_avaliativos_curso_1)),  # converter para numérico para ordenar corretamente
      Curso_1 = as.numeric(dados_avaliativos_curso_1[,aluno]),
      Curso_2 = as.numeric(dados_avaliativos_curso_2[,aluno])
    )
    
    # Ordenar o dataframe pela pergunta
    df <- df[order(df$Pergunta),]
    
    # Criar o gráfico de linhas
    p <- plot_ly(df, x = ~Pergunta) %>%
      add_trace(y = ~Curso_1, type = 'scatter', mode = 'lines', name = 'Antes') %>%
      add_trace(y = ~Curso_2, type = 'scatter', mode = 'lines', name = 'Depois') %>%
      layout(title = aluno)
    
    graficos[[aluno]] <- p
  }
}

# Exibir os gráficos
graficos
$Ian.Victor

$Júlia.Fernanda

$Vinicius.Ivanildo

$João.Victor

$Valéria.Aguiar
NA

dados_avaliacao_1 <- read.csv("dataset/Dados avaliativos eso - Avaliação Introdução robótica.csv")
dados_avaliacao_2 <- read.csv("dataset/Dados avaliativos eso - Avaliação Função.csv")
dados_avaliacao_3 <- read.csv("dataset/Dados avaliativos eso - Avaliação prática ev3.csv")
dados_avaliacao_4 <- read.csv("dataset/Dados avaliativos eso - Avaliação Final.csv")



# Lista com os dados de avaliação
dados_avaliacao <- list(dados_avaliacao_1, dados_avaliacao_2, dados_avaliacao_3, dados_avaliacao_4)

# Loop para cada conjunto de dados de avaliação
for (i in 1:length(dados_avaliacao)) {
  # Remover colunas com NA
  dados <- dados_avaliacao[[i]][ , colSums(is.na(dados_avaliacao[[i]])) == 0]
  
  # Calcular o percentual de acertos e erros para cada aluno
  percentuais_alunos <- dados %>%
    summarise(across(everything(), ~mean(. == 1), .names = "Percentual de acertos de {col}"),
              across(everything(), ~mean(. == 0), .names = "Percentual de erros de {col}"))
  
  # Calcular o percentual de acertos e erros para a turma
  percentual_turma <- dados %>%
    summarise(Percentual_de_acertos_turma = mean(unlist(.) == 1),
              Percentual_de_erros_turma = mean(unlist(.) == 0))
  
  # Exibir os resultados
  print(paste("Dados de avaliação", i))
  print(percentuais_alunos)
  print(percentual_turma)
}
[1] "Dados de avaliação 1"
[1] "Dados de avaliação 2"
[1] "Dados de avaliação 3"
[1] "Dados de avaliação 4"
LS0tDQp0aXRsZTogIkF2YWxpYcOnw7VlcyBVVEVDIC0gR3LDqWdvcmlvIEJlemVycmEgLSBFU08gMyINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KZWRpdG9yX29wdGlvbnM6IA0KICBtYXJrZG93bjogDQogICAgd3JhcDogNzINCi0tLQ0KDQpgYGB7ciB9DQpsaWJyYXJ5KHBsb3RseSkNCmxpYnJhcnkoRFQpDQoNCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KGtuaXRyKQ0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeShyZXNoYXBlMikNCmBgYA0KDQojIFByb2pldG8gZW0gYW5kYW1lbnRvIC0gTsOjbyBjb21wbGV0byANCg0KIyBBdmFsaWHDp8O1ZXMgVVRFQyAtIEdyw6lnb3JpbyBCZXplcnJhIC0gRVNPIDMNCg0KIyMgT2J0ZW7Dp8OjbyBkZSBkYWRvcw0KDQpPcyBwcmVzZW50ZXMgZGFkb3MgZm9yYW0gb2J0aWRvcyBwYXJhIGF2YWxpYcOnw6NvIGUgYWNvbXBhbmhhbWVudG9zIGRvcw0KYWx1bm9zIG5vIGRlY29ycmVyIGRvIHByb2pldG8gZGUgbm9zc28gY3Vyc28uIEFzIGF2YWxpYcOnw7VlcyBzw6NvOg0KQXZhbGlhw6fDo28gZGUgY3Vyc28gLSBJbXByZXNzYSBlIHJlc3BvbmRpZGEgw6EgbcOjbyBlbSAwOS8xMS8yMDI0IEF2YWxpYcOnw6NvDQppbnRyb2R1dG9yaWEgw6Egcm9iw7N0aWNhIC0gZmVpdG8gdmlhIEthaG9vdCAxMC8xMS8yMDI0IEF2YWxpYcOnw6NvIHNvYnJlDQpGdW7Dp8O1ZXMgLSBmZWl0byB2aWEgS2Fob290IDI0LzExLzIwMjQgQXZhbGlhw6fDo28gZGUgcHLDoXRpY2EgLSBmZWl0byB2aWENCkthaG9vdCAwMS8xMi8yMDI0IEF2YWxpYcOnw6NvIGZpbmFsIC0gZmVpdG8gdmlhIEdvb2dsZSBGb3JtcyAxNC8xMi8yMDI0DQpBdmFsaWHDp8OjbyBkZSBjdXJzbyBmaW5hbCAtIEltcHJlc3NhIGUgcmVzcG9uZGlkYSDDoSBtw6NvIGVtIDE0LzEyLzIwMjQNCg0KIyMgQXZhbGlhw6fDo28gZGUgQ3Vyc28gdnMgQXZhbGlhw6fDo28gZmluYWwgZGUgY3Vyc28NCg0KYGBge3IgfQ0KDQojIFN1cG9uZG8gcXVlIHZvY8OqIGrDoSB0ZW5oYSBsaWRvIG9zIGRhZG9zDQpkYWRvc19hdmFsaWF0aXZvc19jdXJzb18xIDwtIHJlYWQuY3N2KCJkYXRhc2V0L0RhZG9zIGF2YWxpYXRpdm9zIC0gQXZhbGlhw6fDo28gZG8gY3Vyc28uY3N2IikNCmRhZG9zX2F2YWxpYXRpdm9zX2N1cnNvXzIgPC0gcmVhZC5jc3YoImRhdGFzZXQvRGFkb3MgYXZhbGlhdGl2b3MgZXNvIC0gQXZhbGlhw6fDo28gZmluYWwgZG8gY3Vyc28uY3N2IikNCg0KIyBTdWJzdGl0dWluZG8gdmFsb3JlcyBmYWx0YW50ZXMgcG9yIE5BDQpkYWRvc19hdmFsaWF0aXZvc19jdXJzb18xW2lzLm5hKGRhZG9zX2F2YWxpYXRpdm9zX2N1cnNvXzEpXSA8LSBOQQ0KZGFkb3NfYXZhbGlhdGl2b3NfY3Vyc29fMltpcy5uYShkYWRvc19hdmFsaWF0aXZvc19jdXJzb18yKV0gPC0gTkENCg0KIyBJbXBvcnRhbmRvIGEgYmlibGlvdGVjYSBEVA0KbGlicmFyeShEVCkNCg0KIyBDcmlhbmRvIHRhYmVsYXMgaW50ZXJhdGl2YXMgcGFyYSBhbWJvcyBvcyBjb25qdW50b3MgZGUgZGFkb3MNCnRhYmVsYV8xIDwtIGRhdGF0YWJsZShkYWRvc19hdmFsaWF0aXZvc19jdXJzb18xLCBvcHRpb25zID0gbGlzdChwYWdlTGVuZ3RoID0gNSkpDQp0YWJlbGFfMiA8LSBkYXRhdGFibGUoZGFkb3NfYXZhbGlhdGl2b3NfY3Vyc29fMiwgb3B0aW9ucyA9IGxpc3QocGFnZUxlbmd0aCA9IDUpKQ0KDQojIEV4aWJpbmRvIGFzIHRhYmVsYXMNCnRhYmVsYV8xDQp0YWJlbGFfMg0KDQpgYGANCiMjIEF2YWxpYcOnw6NvIGRlIGFudGVzIGUgZGVwb2lzIGNvbXBhcmFkYQ0KDQpgYGB7cn0NCiMgQ2FycmVnYXIgYSBiaWJsaW90ZWNhDQpsaWJyYXJ5KHBsb3RseSkNCg0KIyBTZWxlY2lvbmFyIGFzIGNvbHVuYXMgbnVtw6lyaWNhcyBhIHBhcnRpciBkYSBwZXJndW50YSAzDQpkYWRvc19hdmFsaWF0aXZvc19jdXJzb18xIDwtIGRhZG9zX2F2YWxpYXRpdm9zX2N1cnNvXzFbNDpucm93KGRhZG9zX2F2YWxpYXRpdm9zX2N1cnNvXzEpLF0NCmRhZG9zX2F2YWxpYXRpdm9zX2N1cnNvXzIgPC0gZGFkb3NfYXZhbGlhdGl2b3NfY3Vyc29fMls0Om5yb3coZGFkb3NfYXZhbGlhdGl2b3NfY3Vyc29fMiksXQ0KDQojIENyaWFyIHVtIGRhdGFmcmFtZSBwYXJhIGNhZGEgYWx1bm8NCmFsdW5vcyA8LSBjb2xuYW1lcyhkYWRvc19hdmFsaWF0aXZvc19jdXJzb18xKVstMV0gICMgbm9tZXMgZG9zIGFsdW5vcw0KZ3JhZmljb3MgPC0gbGlzdCgpICAjIGxpc3RhIHBhcmEgYXJtYXplbmFyIG9zIGdyw6FmaWNvcw0KDQpmb3IgKGFsdW5vIGluIGFsdW5vcykgew0KICAjIFZlcmlmaWNhciBzZSBvIGFsdW5vIHRlbSByZXNwb3N0YXMgY29tcGxldGFzIGFudGVzIGUgZGVwb2lzDQogIGlmICghYW55KGlzLm5hKGRhZG9zX2F2YWxpYXRpdm9zX2N1cnNvXzFbLGFsdW5vXSkpICYmICFhbnkoaXMubmEoZGFkb3NfYXZhbGlhdGl2b3NfY3Vyc29fMlssYWx1bm9dKSkpIHsNCiAgICBkZiA8LSBkYXRhLmZyYW1lKA0KICAgICAgUGVyZ3VudGEgPSBhcy5udW1lcmljKHJvd25hbWVzKGRhZG9zX2F2YWxpYXRpdm9zX2N1cnNvXzEpKSwgICMgY29udmVydGVyIHBhcmEgbnVtw6lyaWNvIHBhcmEgb3JkZW5hciBjb3JyZXRhbWVudGUNCiAgICAgIEN1cnNvXzEgPSBhcy5udW1lcmljKGRhZG9zX2F2YWxpYXRpdm9zX2N1cnNvXzFbLGFsdW5vXSksDQogICAgICBDdXJzb18yID0gYXMubnVtZXJpYyhkYWRvc19hdmFsaWF0aXZvc19jdXJzb18yWyxhbHVub10pDQogICAgKQ0KICAgIA0KICAgICMgT3JkZW5hciBvIGRhdGFmcmFtZSBwZWxhIHBlcmd1bnRhDQogICAgZGYgPC0gZGZbb3JkZXIoZGYkUGVyZ3VudGEpLF0NCiAgICANCiAgICAjIENyaWFyIG8gZ3LDoWZpY28gZGUgbGluaGFzDQogICAgcCA8LSBwbG90X2x5KGRmLCB4ID0gflBlcmd1bnRhKSAlPiUNCiAgICAgIGFkZF90cmFjZSh5ID0gfkN1cnNvXzEsIHR5cGUgPSAnc2NhdHRlcicsIG1vZGUgPSAnbGluZXMnLCBuYW1lID0gJ0FudGVzJykgJT4lDQogICAgICBhZGRfdHJhY2UoeSA9IH5DdXJzb18yLCB0eXBlID0gJ3NjYXR0ZXInLCBtb2RlID0gJ2xpbmVzJywgbmFtZSA9ICdEZXBvaXMnKSAlPiUNCiAgICAgIGxheW91dCh0aXRsZSA9IGFsdW5vKQ0KICAgIA0KICAgIGdyYWZpY29zW1thbHVub11dIDwtIHANCiAgfQ0KfQ0KDQojIEV4aWJpciBvcyBncsOhZmljb3MNCmdyYWZpY29zDQoNCmBgYA0KDQpgYGB7cn0NCg0KZGFkb3NfYXZhbGlhY2FvXzEgPC0gcmVhZC5jc3YoImRhdGFzZXQvRGFkb3MgYXZhbGlhdGl2b3MgZXNvIC0gQXZhbGlhw6fDo28gSW50cm9kdcOnw6NvIHJvYsOzdGljYS5jc3YiKQ0KZGFkb3NfYXZhbGlhY2FvXzIgPC0gcmVhZC5jc3YoImRhdGFzZXQvRGFkb3MgYXZhbGlhdGl2b3MgZXNvIC0gQXZhbGlhw6fDo28gRnVuw6fDo28uY3N2IikNCmRhZG9zX2F2YWxpYWNhb18zIDwtIHJlYWQuY3N2KCJkYXRhc2V0L0RhZG9zIGF2YWxpYXRpdm9zIGVzbyAtIEF2YWxpYcOnw6NvIHByw6F0aWNhIGV2My5jc3YiKQ0KZGFkb3NfYXZhbGlhY2FvXzQgPC0gcmVhZC5jc3YoImRhdGFzZXQvRGFkb3MgYXZhbGlhdGl2b3MgZXNvIC0gQXZhbGlhw6fDo28gRmluYWwuY3N2IikNCg0KDQoNCiMgTGlzdGEgY29tIG9zIGRhZG9zIGRlIGF2YWxpYcOnw6NvDQpkYWRvc19hdmFsaWFjYW8gPC0gbGlzdChkYWRvc19hdmFsaWFjYW9fMSwgZGFkb3NfYXZhbGlhY2FvXzIsIGRhZG9zX2F2YWxpYWNhb18zLCBkYWRvc19hdmFsaWFjYW9fNCkNCg0KIyBMb29wIHBhcmEgY2FkYSBjb25qdW50byBkZSBkYWRvcyBkZSBhdmFsaWHDp8Ojbw0KZm9yIChpIGluIDE6bGVuZ3RoKGRhZG9zX2F2YWxpYWNhbykpIHsNCiAgIyBSZW1vdmVyIGNvbHVuYXMgY29tIE5BDQogIGRhZG9zIDwtIGRhZG9zX2F2YWxpYWNhb1tbaV1dWyAsIGNvbFN1bXMoaXMubmEoZGFkb3NfYXZhbGlhY2FvW1tpXV0pKSA9PSAwXQ0KICANCiAgIyBDYWxjdWxhciBvIHBlcmNlbnR1YWwgZGUgYWNlcnRvcyBlIGVycm9zIHBhcmEgY2FkYSBhbHVubw0KICBwZXJjZW50dWFpc19hbHVub3MgPC0gZGFkb3MgJT4lDQogICAgc3VtbWFyaXNlKGFjcm9zcyhldmVyeXRoaW5nKCksIH5tZWFuKC4gPT0gMSksIC5uYW1lcyA9ICJQZXJjZW50dWFsIGRlIGFjZXJ0b3MgZGUge2NvbH0iKSwNCiAgICAgICAgICAgICAgYWNyb3NzKGV2ZXJ5dGhpbmcoKSwgfm1lYW4oLiA9PSAwKSwgLm5hbWVzID0gIlBlcmNlbnR1YWwgZGUgZXJyb3MgZGUge2NvbH0iKSkNCiAgDQogICMgQ2FsY3VsYXIgbyBwZXJjZW50dWFsIGRlIGFjZXJ0b3MgZSBlcnJvcyBwYXJhIGEgdHVybWENCiAgcGVyY2VudHVhbF90dXJtYSA8LSBkYWRvcyAlPiUNCiAgICBzdW1tYXJpc2UoUGVyY2VudHVhbF9kZV9hY2VydG9zX3R1cm1hID0gbWVhbih1bmxpc3QoLikgPT0gMSksDQogICAgICAgICAgICAgIFBlcmNlbnR1YWxfZGVfZXJyb3NfdHVybWEgPSBtZWFuKHVubGlzdCguKSA9PSAwKSkNCiAgDQogICMgRXhpYmlyIG9zIHJlc3VsdGFkb3MNCiAgcHJpbnQocGFzdGUoIkRhZG9zIGRlIGF2YWxpYcOnw6NvIiwgaSkpDQogIHByaW50KHBlcmNlbnR1YWlzX2FsdW5vcykNCiAgcHJpbnQocGVyY2VudHVhbF90dXJtYSkNCn0NCg0KYGBgDQo=