enrollments <- read.csv("~/Mestrado UFCG/Semestre 2023.1/FPCC 2/fpcc2-reproducao-Diego-Kazadi/dados/enrollments.csv", sep = ";")
head(enrollments)
## registro codigoDisciplina periodo IdTurma credito nota status_enrollments
## 1 100110001 1108089 2000.2 0 4 - Trancado
## 2 100110001 1108089 2001.1 0 4 7,6 Aprovado
## 3 100110001 1108090 2001.2 0 4 8,3 Aprovado
## 4 100110001 1109035 2000.1 0 4 7,5 Aprovado
## 5 100110001 1109101 2001.1 0 4 5,7 Aprovado
## 6 100110001 1109103 2000.1 0 4 8,5 Aprovado
glimpse(enrollments)
## Rows: 132,084
## Columns: 7
## $ registro <int> 100110001, 100110001, 100110001, 100110001, 1001100…
## $ codigoDisciplina <int> 1108089, 1108089, 1108090, 1109035, 1109101, 110910…
## $ periodo <dbl> 2000.2, 2001.1, 2001.2, 2000.1, 2001.1, 2000.1, 200…
## $ IdTurma <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 3, 4, 0, 1, 1, …
## $ credito <int> 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, 4, 2, …
## $ nota <chr> "-", "7,6", "8,3", "7,5", "5,7", "8,5", "7,9", "5,8…
## $ status_enrollments <chr> "Trancado", "Aprovado", "Aprovado", "Aprovado", "Ap…
# Usando a função names()
colunas <- names(enrollments)
print(colunas)
## [1] "registro" "codigoDisciplina" "periodo"
## [4] "IdTurma" "credito" "nota"
## [7] "status_enrollments"
# Resumo estatístico usando a função summary
summary(enrollments)
## registro codigoDisciplina periodo IdTurma
## Min. :100110001 Min. :1105149 Min. :1991 Min. : 0.000
## 1st Qu.:109110805 1st Qu.:1305218 1st Qu.:2009 1st Qu.: 1.000
## Median :114110484 Median :1411176 Median :2014 Median : 1.000
## Mean :117737415 Mean :1337008 Mean :2013 Mean : 1.264
## 3rd Qu.:117211061 3rd Qu.:1411195 3rd Qu.:2018 3rd Qu.: 1.000
## Max. :199210279 Max. :1503121 Max. :2023 Max. :14.000
## credito nota status_enrollments
## Min. : 0.000 Length:132084 Length:132084
## 1st Qu.: 4.000 Class :character Class :character
## Median : 4.000 Mode :character Mode :character
## Mean : 3.881
## 3rd Qu.: 4.000
## Max. :22.000
O resultado apresenta um conjunto de estatísticas descritivas, como mínimo, máximo, média, mediana, quartis e contagens para as variáveis numéricas na tabela “enrollments”. Isso nos ajuda a entender a distribuição e as características das variáveis.
# Filtrar o período de 2006.1 a 2019.2
enrollments_filtered <- enrollments %>%
filter(grepl("^2006\\.(1|2)|^2007|^2008|^2009|^2010|^2011|^2012|^2013|^2014|^2015|^2016|^2017|^2018|^2019\\.1|^2019\\.2", periodo))
# Ordenar o fator dos períodos para garantir a ordem correta no gráfico
enrollments_filtered$periodo <- factor(enrollments_filtered$periodo, levels = unique(enrollments_filtered$periodo))
# Gráfico de barras para contar a quantidade de matrículas por período
ggplot(data = enrollments_filtered, aes(x = periodo)) +
geom_bar(fill = "blue", width = 0.5) +
labs(title = "Quantidade de Matrículas por Período", x = "Período", y = "Quantidade de Matrículas") +
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1)) +
geom_text(aes(label = ..count..), stat = "count", vjust = -0.5, color = "black")
## Warning: The dot-dot notation (`..count..`) was deprecated in ggplot2 3.4.0.
## ℹ Please use `after_stat(count)` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
No gráfico de barras, é possível observar as variações na quantidade de matrículas ao longo dos períodos acadêmicos no intervalo de 2006.1 a 2019.2. Cada barra representa um período específico, e a altura da barra indica o número de matrículas naquele período.
É importante mencionar que, devido à possibilidade de um registro se matricular em mais de uma disciplina no mesmo período, o número de matrículas pode ser maior do que o número de registros individuais. Isso pode ser observado nas alturas das barras do gráfico, onde algumas barras apresentam valores mais elevados, indicando um maior número de matrículas em períodos específicos.
Essa informação ressalta a ocorrência de matrículas múltiplas em um mesmo período por parte de alguns registros. Portanto, o número de matrículas representado no gráfico não se limita ao número de registros únicos, mas sim ao total de matrículas realizadas no período específico.
# Definir o código de disciplina para "Cálculo I" (substituir pelo código correto)
codigo_calculo_i <- "1109103"
# Filtrar as matrículas apenas para a disciplina "Cálculo I" e o período de 2006.1 até 2019.2
matriculas_calculo_i <- enrollments %>%
filter(codigoDisciplina == codigo_calculo_i & grepl("^2006\\.(1|2)|^2007|^2008|^2009|^2010|^2011|^2012|^2013|^2014|^2015|^2016|^2017|^2018|^2019\\.1|^2019\\.2", periodo))
# Contar o número de registros matriculados por período
num_registros_por_periodo <- matriculas_calculo_i %>%
group_by(periodo) %>%
summarize(num_registros = n())
# Ordenar o fator dos períodos para garantir a ordem correta no gráfico
num_registros_por_periodo$periodo <- factor(num_registros_por_periodo$periodo, levels = unique(num_registros_por_periodo$periodo))
# Gráfico de barras para visualizar o número de registros matriculados em "Cálculo I" ao longo do tempo
ggplot(data = num_registros_por_periodo, aes(x = periodo, y = num_registros)) +
geom_bar(stat = "identity", fill = "blue", width = 0.5) +
labs(title = "Número de Registros Matriculados em Cálculo I por Período", x = "Período", y = "Número de Registros") +
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)) +
geom_text(aes(label = num_registros), vjust = -0.5, color = "black")
Ao analisar o número de registros matriculados em “Cálculo I” ao longo do tempo, é possível observar uma tendência crescente desde o início do período considerado. No início, foram registrados cerca de 42 matriculados, e ao longo dos anos, esse número aumentou gradualmente.
Um ponto de destaque é o período de 2013.2, que apresentou um pico significativo com 138 registros matriculados em “Cálculo I”. Esse resultado pode indicar um aumento na demanda pela disciplina nesse período específico, possivelmente impulsionado por fatores como a importância do curso, recomendações de professores ou interesse dos estudantes na área.
Essa curva crescente sugere uma tendência de interesse e participação contínuos na disciplina ao longo dos anos, refletindo a importância do estudo de “Cálculo I” no currículo acadêmico. Esses dados são úteis para entender a demanda por essa disciplina e podem fornecer insights para planejamento curricular e alocação de recursos adequados para o ensino e apoio aos alunos.
# Definir o código de disciplina para "Cálculo I" (substituir pelo código correto)
codigo_calculo_i <- "1109103"
# Filtrar as matrículas apenas para a disciplina "Cálculo I" e o período de 2006.1 até 2019.2
matriculas_calculo_i <- enrollments %>%
filter(codigoDisciplina == codigo_calculo_i & grepl("^2006\\.(1|2)|^2007|^2008|^2009|^2010|^2011|^2012|^2013|^2014|^2015|^2016|^2017|^2018|^2019\\.1|^2019\\.2", periodo))
# Contar a quantidade de ocorrências de cada status por período
status_count <- matriculas_calculo_i %>%
group_by(periodo, status_enrollments) %>%
summarize(count = n())
## `summarise()` has grouped output by 'periodo'. You can override using the
## `.groups` argument.
# Ordenar o fator dos períodos para garantir a ordem correta no gráfico
status_count$periodo <- factor(status_count$periodo, levels = unique(status_count$periodo))
# Gráfico de barras para visualizar o número de registros por status em "Cálculo I" ao longo do tempo
ggplot(data = status_count, aes(x = periodo, y = count, fill = status_enrollments)) +
geom_bar(stat = "identity", position = "stack") +
labs(title = "Número de Registros por Status em Cálculo I por Período", x = "Período", y = "Quantidade") +
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)) +
scale_fill_manual(values = c("Aprovado" = "green", "Reprovado" = "red", "Em curso" = "blue", "Trancado" = "purple", "Reprovado por Falta" = "black", "Dispensa" = "yellow")) +
guides(fill = guide_legend(title = "Status", labels = c("Aprovado", "Reprovado", "Em curso", "Trancado", "Reprovado por Falta", "Dispensa")))
O gráfico apresenta o status dos registros em “Cálculo I” ao longo do tempo, com as cores correspondentes aos diferentes status. A cor verde representa os registros aprovados, a cor amarela representa os registros com dispensa, a cor vermelha representa os registros reprovados, a cor roxa representa os registros trancados e a cor preta representa os registros reprovados por falta. A legenda fornece uma referência clara dos diferentes status exibidos no gráfico, facilitando a compreensão das informações apresentadas. Essa visualização ajuda a analisar a distribuição dos diferentes status ao longo do tempo, fornecendo insights sobre o desempenho dos estudantes em “Cálculo I”.
# Definir o código de disciplina para "Cálculo I" (substituir pelo código correto)
codigo_calculo_i <- "1109103"
# Filtrar as matrículas apenas para a disciplina "Cálculo I" e o período de 2006.1 até 2019.2
desempenho_calculo_i <- enrollments %>%
filter(codigoDisciplina == codigo_calculo_i & grepl("^2006\\.(1|2)|^2007|^2008|^2009|^2010|^2011|^2012|^2013|^2014|^2015|^2016|^2017|^2018|^2019\\.1|^2019\\.2", periodo))
# Contar a quantidade de ocorrências de cada status por período
desempenho_summary <- desempenho_calculo_i %>%
group_by(periodo, status_enrollments) %>%
summarize(count = n())
## `summarise()` has grouped output by 'periodo'. You can override using the
## `.groups` argument.
# Ordenar o fator dos períodos para garantir a ordem correta no gráfico
desempenho_summary$periodo <- factor(desempenho_summary$periodo, levels = unique(desempenho_summary$periodo))
# Filtrar apenas os alunos aprovados e reprovados
desempenho_aprovados_reprovados <- desempenho_summary %>%
filter(status_enrollments %in% c("Aprovado", "Reprovado"))
# Gráfico de barras para visualizar os alunos aprovados e reprovados em "Cálculo I" ao longo do tempo
ggplot(data = desempenho_aprovados_reprovados, aes(x = periodo, y = count, fill = status_enrollments)) +
geom_bar(stat = "identity", position = "stack") +
labs(title = "Alunos Aprovados e Reprovados em Cálculo I ao Longo do Tempo", x = "Período", y = "Quantidade") +
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)) +
scale_fill_manual(values = c("Aprovado" = "green", "Reprovado" = "red")) +
guides(fill = guide_legend(title = "Status", labels = c("Aprovado", "Reprovado")))
O gráfico de barras “Alunos Aprovados e Reprovados em Cálculo I ao Longo
do Tempo” apresenta a quantidade de alunos que foram aprovados e
reprovados na disciplina “Cálculo I” em cada período acadêmico. Cada
barra representa um período específico, enquanto a altura da barra
indica a quantidade de alunos. A cor verde representa os alunos
aprovados, enquanto a cor vermelha representa os alunos reprovados.
# Definir o código de disciplina para "Cálculo I" (substituir pelo código correto)
codigo_calculo_i <- "1109103"
# Filtrar as matrículas apenas para a disciplina "Cálculo I" e o período de 2006.1 até 2019.2
desempenho_calculo_i <- enrollments %>%
filter(codigoDisciplina == codigo_calculo_i & grepl("^2006\\.(1|2)|^2007|^2008|^2009|^2010|^2011|^2012|^2013|^2014|^2015|^2016|^2017|^2018|^2019\\.1|^2019\\.2", periodo))
# Converter a variável "nota" para numérica
desempenho_calculo_i$nota <- as.numeric(desempenho_calculo_i$nota)
## Warning: NAs introduzidos por coerção
# Gráfico de dispersão das notas dos registros ao longo do período
ggplot(data = desempenho_calculo_i, aes(x = periodo, y = nota, color = nota)) +
geom_point() +
labs(title = "Notas dos Registros em Cálculo I ao Longo do Tempo", x = "Período", y = "Nota") +
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)) +
scale_color_gradient(low = "red", high = "green")
## Warning: Removed 2555 rows containing missing values (`geom_point()`).
O gráfico de dispersão das notas dos registros em “Cálculo I” ao longo do tempo permite visualizar a distribuição e variação das notas ao longo dos períodos acadêmicos. Cada ponto no gráfico representa um registro e sua respectiva nota. As cores dos pontos indicam o valor da nota, com tons mais altos de verde representando notas mais altas e tons mais altos de vermelho representando notas mais baixas.
Observando o gráfico, podemos notar que existem variações nas notas ao longo do tempo. Algumas áreas do gráfico mostram uma maior concentração de pontos verdes, indicando notas mais altas, enquanto outras áreas apresentam mais pontos vermelhos, representando notas mais baixas. Isso sugere que houve variações no desempenho dos estudantes ao longo dos períodos acadêmicos analisados.
# Definir o código de disciplina para "Cálculo I" (substituir pelo código correto)
codigo_calculo_i <- "1109103"
# Filtrar as matrículas apenas para a disciplina "Cálculo I" e o período de 2006.1 até 2019.2
desempenho_calculo_i <- enrollments %>%
filter(codigoDisciplina == codigo_calculo_i & grepl("^2006\\.(1|2)|^2007|^2008|^2009|^2010|^2011|^2012|^2013|^2014|^2015|^2016|^2017|^2018|^2019\\.1|^2019\\.2", periodo))
# Calcular o total de registros matriculados em "Cálculo I"
total_matriculados <- nrow(desempenho_calculo_i)
# Calcular o número de registros aprovados em "Cálculo I"
num_aprovados <- sum(desempenho_calculo_i$status == "Aprovado")
# Calcular o número de registros reprovados em "Cálculo I"
num_reprovados <- sum(desempenho_calculo_i$status == "Reprovado")
# Imprimir os resultados
cat("Total de registros matriculados em Cálculo I:", total_matriculados, "\n")
## Total de registros matriculados em Cálculo I: 3282
cat("Número de registros aprovados em Cálculo I:", num_aprovados, "\n")
## Número de registros aprovados em Cálculo I: 1145
cat("Número de registros reprovados em Cálculo I:", num_reprovados, "\n")
## Número de registros reprovados em Cálculo I: 1173
Os resultados fornecem uma visão quantitativa do desempenho dos alunos na disciplina “Cálculo I”. Eles permitem entender o número de alunos matriculados, bem como a proporção de alunos aprovados e reprovados.
# Definir o código de disciplina para "Cálculo I" (substituir pelo código correto)
codigo_calculo_i <- "1109103"
# Filtrar as matrículas apenas para a disciplina "Cálculo I" e o período de 2006.1 até 2019.2
desempenho_calculo_i <- enrollments %>%
filter(codigoDisciplina == codigo_calculo_i & grepl("^2006\\.(1|2)|^2007|^2008|^2009|^2010|^2011|^2012|^2013|^2014|^2015|^2016|^2017|^2018|^2019\\.1|^2019\\.2", periodo))
# Calcular o percentual de alunos reprovados
percent_reprovados <- desempenho_calculo_i %>%
filter(status_enrollments == "Reprovado") %>%
summarise(percent_reprovados = n() / nrow(desempenho_calculo_i) * 100)
# Mostrar o percentual de alunos reprovados
percent_reprovados
## percent_reprovados
## 1 35.7404
O resultado obtido foi um percentual de aproximadamente 35.74% de alunos reprovados na disciplina “Cálculo I”. Esse valor representa a proporção dos alunos que não obtiveram um desempenho satisfatório nessa disciplina em relação ao total de alunos matriculados.
Essa informação é relevante para avaliar o desempenho geral dos alunos na disciplina e identificar possíveis dificuldades que podem estar impactando negativamente o resultado dos estudantes.
# Definir o código de disciplina para "Cálculo I" (substituir pelo código correto)
codigo_calculo_i <- "1109103"
# Filtrar as matrículas apenas para a disciplina "Cálculo I" e o período de 2006.1 até 2019.2
desempenho_calculo_i <- enrollments %>%
filter(codigoDisciplina == codigo_calculo_i & grepl("^2006\\.(1|2)|^2007|^2008|^2009|^2010|^2011|^2012|^2013|^2014|^2015|^2016|^2017|^2018|^2019\\.1|^2019\\.2", periodo))
# Calcular o percentual de alunos aprovados
percent_aprovados <- desempenho_calculo_i %>%
filter(status_enrollments == "Aprovado") %>%
summarise(percent_aprovados = n() / nrow(desempenho_calculo_i) * 100)
# Mostrar o percentual de alunos aprovados
percent_aprovados
## percent_aprovados
## 1 34.88726
O percentual de alunos aprovados na disciplina “Cálculo I” é de aproximadamente 34.89%. Isso significa que cerca de 34.89% dos alunos matriculados nessa disciplina obtiveram um resultado de aprovação. Esse valor é calculado em relação ao total de alunos matriculados na disciplina e fornece uma medida do sucesso dos estudantes na disciplina.
# Calcular o percentual de alunos reprovados por falta no período de 2006.1 a 2019.2
percent_reprovados_falta <- desempenho_calculo_i %>%
filter(status_enrollments == "Reprovado por Falta" & grepl("^2006\\.(1|2)|^2007|^2008|^2009|^2010|^2011|^2012|^2013|^2014|^2015|^2016|^2017|^2018|^2019\\.1|^2019\\.2", periodo)) %>%
summarise(percent_reprovados_falta = n() / nrow(desempenho_calculo_i) * 100)
# Mostrar o percentual de alunos reprovados por falta no período de 2006.1 a 2019.2
percent_reprovados_falta
## percent_reprovados_falta
## 1 13.65021
O resultado do cálculo indica que aproximadamente 13.65% dos alunos matriculados na disciplina “Cálculo I” no período de 2006.1 até 2019.2 foram reprovados por falta. Isso significa que um percentual significativo de estudantes não cumpriu com as exigências de frequência estabelecidas para a disciplina, resultando em sua reprovação. Esse dado é importante para analisar o desempenho dos alunos em relação à assiduidade e identificar possíveis problemas relacionados à ausência nas aulas.
# Definir o código de disciplina para "Cálculo I" (substituir pelo código correto)
codigo_calculo_i <- "1109103"
# Filtrar as matrículas apenas para a disciplina "Cálculo I" e o período de 2006.1 até 2019.2
desempenho_calculo_i <- enrollments %>%
filter(codigoDisciplina == codigo_calculo_i & grepl("^2006\\.(1|2)|^2007|^2008|^2009|^2010|^2011|^2012|^2013|^2014|^2015|^2016|^2017|^2018|^2019\\.1|^2019\\.2", periodo))
# Calcular o percentual de alunos com dispensa
percent_dispensa <- desempenho_calculo_i %>%
filter(status_enrollments == "Dispensa") %>%
summarise(percent_dispensa = n() / nrow(desempenho_calculo_i) * 100)
# Mostrar o percentual de alunos com dispensa
percent_dispensa
## percent_dispensa
## 1 13.19317
O percentual de alunos que obtiveram a dispensa na disciplina “Cálculo I” no período de 2006.1 até 2019.2 é de aproximadamente 13.19%. Isso significa que cerca de 13.19% dos alunos matriculados nessa disciplina foram dispensados, ou seja, não precisaram realizar a avaliação final e tiveram a aprovação automática.
# Definir o código de disciplina para "Cálculo I" (substituir pelo código correto)
codigo_calculo_i <- "1109103"
# Filtrar as matrículas apenas para a disciplina "Cálculo I" e o período de 2006.1 até 2019.2
desempenho_calculo_i <- enrollments %>%
filter(codigoDisciplina == codigo_calculo_i & grepl("^2006\\.(1|2)|^2007|^2008|^2009|^2010|^2011|^2012|^2013|^2014|^2015|^2016|^2017|^2018|^2019\\.1|^2019\\.2", periodo))
# Calcular o total de registros matriculados em "Cálculo I"
total_matriculados <- nrow(desempenho_calculo_i)
# Calcular o número de registros com status "Trancado" em "Cálculo I"
num_trancados <- sum(desempenho_calculo_i$status == "Trancado")
# Calcular o percentual de alunos com status "Trancado"
percent_trancados <- num_trancados / total_matriculados * 100
# Mostrar o percentual de alunos com status "Trancado"
percent_trancados
## [1] 1.127361
O resultado do cálculo mostra que aproximadamente 1.13% dos alunos matriculados na disciplina “Cálculo I” durante o período de 2006.1 até 2019.2 apresentaram o status “Trancado”. Isso indica que uma pequena parcela dos alunos optou por interromper ou pausar temporariamente seus estudos nessa disciplina
Ao explorar os dados da tabela “enrollments” referentes à disciplina “Cálculo I”, pudemos obter insights sobre o desempenho dos alunos ao longo do tempo. Observamos que, dos registros analisados, 34.88% obtiveram a aprovação na disciplina, indicando um bom nível de aproveitamento. Por outro lado, 35.74% dos alunos foram classificados como reprovados, evidenciando a necessidade de atenção em relação a esse grupo. Além disso, notamos que 13.65% dos alunos foram reprovados por falta, sugerindo a importância de fortalecer a frequência dos estudantes. Também identificamos que 13.19% dos alunos receberam dispensa na disciplina, indicando que alguns foram liberados da obrigatoriedade de cursar a disciplina. Por fim, um percentual de 1.13% optou pelo trancamento da disciplina. Esses insights permitem uma compreensão inicial do desempenho dos alunos em “Cálculo I”, fornecendo subsídios para a tomada de decisões e estratégias de melhoria no contexto acadêmico.
Com base na análise dos dados da disciplina “Cálculo I”, podemos observar que há desafios em relação à evasão e retenção dos alunos. O percentual de reprovação (35.74%) indica a presença de um número significativo de estudantes com dificuldades na disciplina, enquanto a taxa de aprovação (34.88%) demonstra que há alunos que conseguem progredir com sucesso. A presença de alunos com dispensa (13.19%), reprovados por falta (13.65%), e trancados (1.12%) levanta questões sobre a evasão relacionada à desistência, participação irregular e decisões de pausa nos estudos. Essas informações destacam a importância de investigar e abordar as causas desses resultados, visando melhorar o suporte aos estudantes, a qualidade do ensino e promover estratégias para aumentar a retenção no curso.
Renomear a variavel “status” para “status_students”
students <- read.csv("~/Mestrado UFCG/Semestre 2023.1/FPCC 2/fpcc2-reproducao-Diego-Kazadi/dados/students.csv", sep = ";")
head(students)
## registro status_students admissao
## 1 100110001 Inativo (GRADUADO 2004.1) VESTIBULAR 2000.1
## 2 100110002 Inativo (GRADUADO 2005.2) VESTIBULAR 2000.1
## 3 100110003 Inativo (CANCELAMENTO POR ABANDONO 2005.2) VESTIBULAR 2000.1
## 4 100110004 Inativo (GRADUADO 2004.1) VESTIBULAR 2000.1
## 5 100110005 Inativo (GRADUADO 2003.2) VESTIBULAR 2000.1
## 6 100110006 Inativo (CANCELAMENTO POR ABANDONO 2003.1) VESTIBULAR 2000.1
## politicaAfirmativa dataNascimento escolaSegundaria anoGraduacao email
## 1 17/03/1981 0
## 2 22/08/1982 0
## 3 14/10/1981 0
## 4 18/11/1981 0
## 5 28/10/1981 0
## 6 13/01/1981 0
## genero estadoCivil nacionalidade pais localNascimento raca
## 1 Masculino Solteiro(a) Brasileira Brasil VERTENTES - PE No declarada
## 2 Masculino Solteiro(a) Brasileira Brasil CAMPINA GRANDE - PB No declarada
## 3 Masculino Solteiro(a) Brasileira Brasil JOO PESSOA - PB No declarada
## 4 Masculino Solteiro(a) Brasileira Brasil CAMPINA GRANDE - PB No declarada
## 5 Feminino Solteiro(a) Brasileira Brasil JOO PESSOA - PB No declarada
## 6 Masculino Solteiro(a) Brasileira Brasil CAMPINA GRANDE - PB No declarada
## deficiencia codigoCurso codigoCurriculum horasObrigatorio
## 1 Sem defici?cias 14102100 1999 1710
## 2 Sem defici?cias 14102100 1999 1710
## 3 Sem defici?cias 14102100 1999 690
## 4 Sem defici?cias 14102100 1999 1710
## 5 Sem defici?cias 14102100 1999 1710
## 6 Sem defici?cias 14102100 1999 0
## creditoObrigatorio horasOpcional credditoOpcional horasComplemtarios
## 1 114 780 42 780
## 2 114 780 42 780
## 3 46 0 0 60
## 4 114 645 43 780
## 5 114 645 43 780
## 6 0 0 0 0
## creditoComplementares gpa mc iea periodoConcluido periodoSuspensos
## 1 52 7,73 7,79 6,88 9 0
## 2 52 6,79 8,66 4,75 12 0
## 3 4 8,03 8,03 6,43 2 4
## 4 52 8,65 8,65 7,58 9 0
## 5 52 8,35 8,35 8,23 8 0
## 6 0 0 0 0 0 4
## maticulaInstitucioanis periodoMobilidade creditoMatriculados notaAdmissao
## 1 0 0 0 589
## 2 0 0 0 716
## 3 0 0 0 711
## 4 0 0 0 700
## 5 0 0 0 682
## 6 1 0 0 672
glimpse(students)
## Rows: 3,767
## Columns: 32
## $ registro <int> 100110001, 100110002, 100110003, 100110004, 100…
## $ status_students <chr> "Inativo (GRADUADO 2004.1)", "Inativo (GRADUADO…
## $ admissao <chr> "VESTIBULAR 2000.1", "VESTIBULAR 2000.1", "VEST…
## $ politicaAfirmativa <chr> "", "", "", "", "", "", "", "", "", "", "", "",…
## $ dataNascimento <chr> "17/03/1981", "22/08/1982", "14/10/1981", "18/1…
## $ escolaSegundaria <chr> "", "", "", "", "", "", "", "Somente escola pri…
## $ anoGraduacao <int> 0, 0, 0, 0, 0, 0, 0, 1999, 1999, 0, 1997, 0, 0,…
## $ email <chr> "", "", "", "", "", "", "", "aliandro@gmail.com…
## $ genero <chr> "Masculino", "Masculino", "Masculino", "Masculi…
## $ estadoCivil <chr> "Solteiro(a)", "Solteiro(a)", "Solteiro(a)", "S…
## $ nacionalidade <chr> "Brasileira", "Brasileira", "Brasileira", "Bras…
## $ pais <chr> "Brasil", "Brasil", "Brasil", "Brasil", "Brasil…
## $ localNascimento <chr> "VERTENTES - PE", "CAMPINA GRANDE - PB", "JOO P…
## $ raca <chr> "No declarada", "No declarada", "No declarada",…
## $ deficiencia <chr> "Sem defici?cias", "Sem defici?cias", "Sem defi…
## $ codigoCurso <int> 14102100, 14102100, 14102100, 14102100, 1410210…
## $ codigoCurriculum <chr> "1999", "1999", "1999", "1999", "1999", "1999",…
## $ horasObrigatorio <int> 1710, 1710, 690, 1710, 1710, 0, 0, 1710, 1710, …
## $ creditoObrigatorio <int> 114, 114, 46, 114, 114, 0, 0, 114, 114, 12, 114…
## $ horasOpcional <int> 780, 780, 0, 645, 645, 0, 0, 630, 780, 0, 810, …
## $ credditoOpcional <int> 42, 42, 0, 43, 43, 0, 0, 42, 42, 0, 44, 8, 44, …
## $ horasComplemtarios <int> 780, 780, 60, 780, 780, 0, 0, 780, 780, 60, 780…
## $ creditoComplementares <int> 52, 52, 4, 52, 52, 0, 0, 52, 52, 4, 52, 10, 52,…
## $ gpa <chr> "7,73", "6,79", "8,03", "8,65", "8,35", "0", "0…
## $ mc <chr> "7,79", "8,66", "8,03", "8,65", "8,35", "0", "0…
## $ iea <chr> "6,88", "4,75", "6,43", "7,58", "8,23", "0", "0…
## $ periodoConcluido <int> 9, 12, 2, 9, 8, 0, 0, 9, 9, 3, 14, 8, 9, 4, 8, …
## $ periodoSuspensos <int> 0, 0, 4, 0, 0, 4, 1, 0, 0, 0, 0, 2, 0, 2, 0, 0,…
## $ maticulaInstitucioanis <int> 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ periodoMobilidade <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ creditoMatriculados <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ notaAdmissao <chr> "589", "716", "711", "700", "682", "672", "668"…
enrollments <- read.csv("~/Mestrado UFCG/Semestre 2023.1/FPCC 2/fpcc2-reproducao-Diego-Kazadi/dados/enrollments.csv", sep = ";")
head(enrollments)
## registro codigoDisciplina periodo IdTurma credito nota status_enrollments
## 1 100110001 1108089 2000.2 0 4 - Trancado
## 2 100110001 1108089 2001.1 0 4 7,6 Aprovado
## 3 100110001 1108090 2001.2 0 4 8,3 Aprovado
## 4 100110001 1109035 2000.1 0 4 7,5 Aprovado
## 5 100110001 1109101 2001.1 0 4 5,7 Aprovado
## 6 100110001 1109103 2000.1 0 4 8,5 Aprovado
# Mesclar as tabelas usando a coluna "registro"
merged_data <- left_join(enrollments, students, by = "registro")
head(merged_data)
## registro codigoDisciplina periodo IdTurma credito nota status_enrollments
## 1 100110001 1108089 2000.2 0 4 - Trancado
## 2 100110001 1108089 2001.1 0 4 7,6 Aprovado
## 3 100110001 1108090 2001.2 0 4 8,3 Aprovado
## 4 100110001 1109035 2000.1 0 4 7,5 Aprovado
## 5 100110001 1109101 2001.1 0 4 5,7 Aprovado
## 6 100110001 1109103 2000.1 0 4 8,5 Aprovado
## status_students admissao politicaAfirmativa dataNascimento
## 1 Inativo (GRADUADO 2004.1) VESTIBULAR 2000.1 17/03/1981
## 2 Inativo (GRADUADO 2004.1) VESTIBULAR 2000.1 17/03/1981
## 3 Inativo (GRADUADO 2004.1) VESTIBULAR 2000.1 17/03/1981
## 4 Inativo (GRADUADO 2004.1) VESTIBULAR 2000.1 17/03/1981
## 5 Inativo (GRADUADO 2004.1) VESTIBULAR 2000.1 17/03/1981
## 6 Inativo (GRADUADO 2004.1) VESTIBULAR 2000.1 17/03/1981
## escolaSegundaria anoGraduacao email genero estadoCivil nacionalidade
## 1 0 Masculino Solteiro(a) Brasileira
## 2 0 Masculino Solteiro(a) Brasileira
## 3 0 Masculino Solteiro(a) Brasileira
## 4 0 Masculino Solteiro(a) Brasileira
## 5 0 Masculino Solteiro(a) Brasileira
## 6 0 Masculino Solteiro(a) Brasileira
## pais localNascimento raca deficiencia codigoCurso
## 1 Brasil VERTENTES - PE No declarada Sem defici?cias 14102100
## 2 Brasil VERTENTES - PE No declarada Sem defici?cias 14102100
## 3 Brasil VERTENTES - PE No declarada Sem defici?cias 14102100
## 4 Brasil VERTENTES - PE No declarada Sem defici?cias 14102100
## 5 Brasil VERTENTES - PE No declarada Sem defici?cias 14102100
## 6 Brasil VERTENTES - PE No declarada Sem defici?cias 14102100
## codigoCurriculum horasObrigatorio creditoObrigatorio horasOpcional
## 1 1999 1710 114 780
## 2 1999 1710 114 780
## 3 1999 1710 114 780
## 4 1999 1710 114 780
## 5 1999 1710 114 780
## 6 1999 1710 114 780
## credditoOpcional horasComplemtarios creditoComplementares gpa mc iea
## 1 42 780 52 7,73 7,79 6,88
## 2 42 780 52 7,73 7,79 6,88
## 3 42 780 52 7,73 7,79 6,88
## 4 42 780 52 7,73 7,79 6,88
## 5 42 780 52 7,73 7,79 6,88
## 6 42 780 52 7,73 7,79 6,88
## periodoConcluido periodoSuspensos maticulaInstitucioanis periodoMobilidade
## 1 9 0 0 0
## 2 9 0 0 0
## 3 9 0 0 0
## 4 9 0 0 0
## 5 9 0 0 0
## 6 9 0 0 0
## creditoMatriculados notaAdmissao
## 1 0 589
## 2 0 589
## 3 0 589
## 4 0 589
## 5 0 589
## 6 0 589
A tabela merged_data resultante da mesclagem das tabelas students e enrollments contém as informações combinadas das duas tabelas com base na coluna “registro”. Um único conjunto de dados que combina as informações de cada aluno com as informações de suas matrículas em disciplinas.
# Filtrar os registros de evasão no período de 2006.1 até 2019.2
registros_evasao <- merged_data %>%
filter(status_enrollments != "Aprovado" & grepl("^2006\\.(1|2)|^2007|^2008|^2009|^2010|^2011|^2012|^2013|^2014|^2015|^2016|^2017|^2018|^2019\\.1|^2019\\.2", periodo))
# Calcular a taxa de evasão
taxa_evasao <- nrow(registros_evasao) / nrow(merged_data) * 100
# Exibir a taxa de evasão
cat("Taxa de Evasão: ", taxa_evasao, "%\n")
## Taxa de Evasão: 22.95206 %
Com base na análise da tabela “merged_data”, a taxa de evasão no curso de Computação na UFCG em Campina Grande, no período de 2006.1 até 2019.2, é de aproximadamente 22.95%. Isso significa que cerca de 22.95% dos alunos matriculados no curso abandonaram ou não concluíram o curso dentro desse período.
# Filtrar os alunos que não foram aprovados no período de 2006.1 até 2019.2
nao_aprovados_periodo <- merged_data %>%
filter(grepl("^2006\\.(1|2)|^2007|^2008|^2009|^2010|^2011|^2012|^2013|^2014|^2015|^2016|^2017|^2018|^2019\\.1|^2019\\.2", periodo))
# Verificar o gênero desses alunos
genero_nao_aprovados <- nao_aprovados_periodo$genero
head(genero_nao_aprovados)
## [1] "Masculino" "Masculino" "Masculino" "Masculino" "Masculino" "Masculino"
Com base no resultado obtido, podemos observar que os alunos que não foram aprovados ao longo do tempo, no período de 2006.1 até 2019.2, são predominantemente do gênero masculino. Isso pode indicar uma possível disparidade de gênero em relação à evasão no curso de Computação na UFCG em Campina Grande.
codigo_calculo_i <- "1109103"
matriculas_calculo_i <- merged_data %>%
filter(codigoDisciplina == codigo_calculo_i & grepl("^2006\\.(1|2)|^2007|^2008|^2009|^2010|^2011|^2012|^2013|^2014|^2015|^2016|^2017|^2018|^2019\\.1|^2019\\.2", periodo))
genero_nao_aprovados <- matriculas_calculo_i %>%
filter(status_enrollments != "Aprovado") %>%
pull(genero)
genero_periodo <- matriculas_calculo_i %>%
filter(status_enrollments != "Aprovado") %>%
group_by(periodo, genero) %>%
summarise(count = n()) %>%
mutate(percent_reprovados = count / sum(count) * 100)
## `summarise()` has grouped output by 'periodo'. You can override using the
## `.groups` argument.
# Ordenar o fator dos períodos para garantir a ordem correta no gráfico
genero_periodo$periodo <- factor(genero_periodo$periodo, levels = unique(genero_periodo$periodo))
# Gráfico de barras para visualizar a reprovação por gênero em cada período
ggplot(data = genero_periodo, aes(x = periodo, y = percent_reprovados, fill = genero)) +
geom_bar(stat = "identity", position = "stack") +
labs(title = "Reprovação por Gênero em Cálculo I por Período",
x = "Período", y = "Percentil de Reprovação") +
scale_fill_manual(values = c("blue", "red"), labels = c("Masculino", "Feminino")) +
theme_minimal() +
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)) +
scale_y_continuous(labels = scales::percent_format())
A partir do gráfico, podemos observar que a taxa de reprovação para o gênero feminino é alta, com mais de 80% das alunas não sendo aprovadas em “Cálculo I” ao longo do período considerado. Por outro lado, a taxa de reprovação para o gênero masculino é baixa, com menos de 20% dos alunos não sendo aprovados.
Essa diferença significativa na taxa de reprovação entre os gêneros pode ser um indicativo de um possível desafio específico enfrentado pelas alunas no curso de Computação na UFCG em Campina Grande. Para investigar essa questão, seria interessante analisar fatores como o desempenho acadêmico, a participação nas atividades do curso e possíveis barreiras ou dificuldades enfrentadas pelas alunas.
codigo_calculo_i <- "1109103"
matriculas_calculo_i <- merged_data %>%
filter(codigoDisciplina == codigo_calculo_i & grepl("^2006\\.(1|2)|^2007|^2008|^2009|^2010|^2011|^2012|^2013|^2014|^2015|^2016|^2017|^2018|^2019\\.1|^2019\\.2", periodo))
genero_nao_aprovados <- matriculas_calculo_i %>%
filter(status_enrollments != "Aprovado") %>%
pull(genero)
genero_matriculados <- merged_data %>%
filter(codigoDisciplina == codigo_calculo_i & grepl("^2006\\.(1|2)|^2007|^2008|^2009|^2010|^2011|^2012|^2013|^2014|^2015|^2016|^2017|^2018|^2019\\.1|^2019\\.2", periodo)) %>%
pull(genero)
# Calcular os percentis dos gêneros
percentil_masculino <- sum(genero_nao_aprovados == "Masculino") / length(genero_nao_aprovados) * 100
percentil_feminino <- sum(genero_nao_aprovados == "Feminino") / length(genero_nao_aprovados) * 100
# Criar um data frame com os percentis
df_percentis <- data.frame(genero = c("Masculino", "Feminino"),
percentil = c(percentil_masculino, percentil_feminino))
# Gráfico de barras para visualizar a distribuição de gênero dos alunos não aprovados em Cálculo I ao longo do tempo
ggplot(data = df_percentis, aes(x = genero, y = percentil, fill = genero)) +
geom_bar(stat = "identity") +
labs(title = "Distribuição de Gênero dos Alunos Não Aprovados em Cálculo I",
x = "Gênero", y = "Percentil") +
scale_fill_manual(values = c("blue", "red"), labels = c("Masculino", "Feminino")) +
theme_minimal() +
scale_y_continuous(labels = scales::percent_format())
Compreender os motivos por trás dessa alta taxa de reprovação entre as
alunas é essencial para identificar possíveis medidas de apoio e
intervenções que visem reduzir a evasão e promover a retenção das alunas
no curso. Para investigar essa questão, seria interessante analisar
fatores como o desempenho acadêmico, a participação nas atividades do
curso, o acesso a recursos de apoio, como tutoria e orientação
acadêmica, e possíveis barreiras ou dificuldades enfrentadas pelas
alunas, como estereótipos de gênero, falta de representatividade e
ambiente acadêmico desfavorável.
# Filtrar os dados da tabela merge_data para o período de 2006.1 até 2019.2, considerando apenas a disciplina de interesse (códigoDisciplina = 1109103)
dados_periodo <- merged_data %>%
filter(grepl("^2006\\.(1|2)|^2007|^2008|^2009|^2010|^2011|^2012|^2013|^2014|^2015|^2016|^2017|^2018|^2019\\.1|^2019\\.2", periodo),
codigoDisciplina == "1109103")
# Contar a quantidade de alunos matriculados por categoria de escola de ensino médio
contagem_escola <- dados_periodo %>%
count(escolaSegundaria)
# Calcular a proporção de alunos não aprovados por categoria de escola de ensino médio
proporcao_escola <- contagem_escola %>%
mutate(proporcao = n / sum(n))
# Ordenar as categorias de escola de ensino médio por proporção de não aprovação
proporcao_escola <- proporcao_escola %>%
arrange(desc(proporcao))
# Gráfico de barras para visualizar a proporção de alunos não aprovados por categoria de escola de ensino médio
ggplot(data = proporcao_escola, aes(x = escolaSegundaria, y = proporcao, fill = escolaSegundaria)) +
geom_bar(stat = "identity") +
labs(title = "Proporção de Alunos matriculados Calculo I por Categoria de Escola de Ensino Médio",
x = "Escola de Ensino Médio", y = "Proporção") +
theme_minimal() +
scale_fill_manual(values = rainbow(length(unique(proporcao_escola$escolaSegundaria)))) +
guides(fill = guide_legend(title = "Escola de Ensino Médio"))
Com base no gráfico, podemos observar que aproximadamente 40% dos alunos matriculados no curso de Cálculo I cursaram o ensino médio em escolas privadas, enquanto cerca de 30% dos alunos não informaram a sua escola de ensino médio. Além disso, cerca de 27% dos alunos cursaram somente escolas públicas. Essas informações são relevantes para compreender a distribuição dos alunos em relação à origem escolar e podem fornecer insights sobre possíveis diferenças no desempenho acadêmico e no processo de adaptação dos alunos ao curso de Computação na UFCG em Campina Grande.
Ao compararmos os resultados obtidos na reprodução do trabalho original com a análise realizada, podemos observar algumas semelhanças. Ambos os estudos destacam a predominância de alunos provenientes do ensino privado no curso de Computação. No trabalho original, é mencionado que os estudantes cotistas do ensino público têm ocupado uma parcela significativa das vagas a partir de 2016, o que pode justificar o aumento no número de alunos do ensino público matriculados.
Em conclusão, tanto o trabalho original quanto a análise reproduzida apontam para a predominância de alunos provenientes de escolas privadas no curso de Computação, mas a análise reproduzida não menciona a presença significativa de estudantes cotistas do ensino público. Além disso, a falta de informação sobre a escola de ensino médio de alguns alunos pode limitar a interpretação dos resultado. Essas informações destacam a importância de investigar a relação entre a origem escolar dos alunos e o desempenho acadêmico, bem como a necessidade de coletar dados completos e precisos para uma análise mais abrangente.
dados_periodo <- merged_data %>%
filter(grepl("^2006\\.(1|2)|^2007|^2008|^2009|^2010|^2011|^2012|^2013|^2014|^2015|^2016|^2017|^2018|^2019\\.1|^2019\\.2", periodo),
codigoDisciplina == "1109103")
proporcao_aprovados_escola <- dados_periodo %>%
filter(status_enrollments == "Aprovado") %>%
count(escolaSegundaria) %>%
mutate(proporcao = n / sum(n),
percentil = percent_rank(proporcao))
# Gráfico de barras para visualizar a proporção de alunos aprovados por categoria de escola de ensino médio
ggplot(data = proporcao_aprovados_escola, aes(x = escolaSegundaria, y = proporcao, fill = escolaSegundaria)) +
geom_bar(stat = "identity") +
geom_text(aes(label = paste0(round(percentil * 100), "%")), position = position_stack(vjust = 0.5), color = "black") +
labs(title = "Proporção de Alunos Aprovados por Categoria de Escola de Ensino Médio",
x = "Escola de Ensino Médio", y = "Proporção") +
theme_minimal() +
scale_fill_manual(values = rainbow(length(unique(proporcao_aprovados_escola$escolaSegundaria)))) +
guides(fill = guide_legend(title = "Escola de Ensino Médio"))
No gráfico, podemos observar que 100% dos alunos que cursaram o ensino médio em escolas privadas foram aprovados na disciplina de interesse. Em seguida, cerca de 75% dos alunos que cursaram somente escolas públicas foram aprovados. Já os alunos cuja informação sobre a escola de ensino médio não foi disponibilizada apresentaram uma taxa de aprovação de aproximadamente 50%, seguidos por cerca de 25% para aqueles que cursaram tanto escolas públicas quanto privadas, tendo ficado mais tempo em escola privada. Esses resultados sugerem uma tendência de maior aprovação entre os alunos provenientes de escolas privadas e públicas, com uma menor taxa de aprovação entre aqueles com informações não disponibilizadas sobre a escola de ensino médio. Isso indica a importância de investigar possíveis fatores que podem influenciar o desempenho acadêmico e a aprovação dos alunos, como a qualidade do ensino, recursos disponíveis e suporte educacional oferecido pelas diferentes instituições de ensino médio.
# Filtrar os dados da tabela merged_data considerando o período e a disciplina
dados_periodo_disciplina <- merged_data %>%
filter(grepl("^2006\\.(1|2)|^2007|^2008|^2009|^2010|^2011|^2012|^2013|^2014|^2015|^2016|^2017|^2018|^2019\\.1|^2019\\.2", periodo),
codigoDisciplina == "1109103")
# Filtrar os dados da tabela merged_data considerando o período, a disciplina e os critérios de evasão
dados_evasao <- dados_periodo_disciplina %>%
filter(!grepl("GRADUADO", status_students, ignore.case = TRUE) &
(grepl("CANCELAMENTO", status_students, ignore.case = TRUE) |
grepl("ABANDONO", status_students, ignore.case = TRUE) |
grepl("TRANSFERIDO", status_students, ignore.case = TRUE)))
# Calcular a taxa de evasão
taxa_evasao <- nrow(dados_evasao) / nrow(dados_periodo_disciplina) * 100
# Mostrar o resultado da taxa de evasão formatado
paste("Taxa de Evasão:", round(taxa_evasao, 2), "%")
## [1] "Taxa de Evasão: 18.95 %"
Com base nos dados analisados, podemos observar que a taxa de evasão na disciplina “Cálculo I” ao longo do período considerado foi de aproximadamente 25.15%. Isso significa que cerca de 25.15% dos alunos matriculados nessa disciplina não concluíram o curso e tiveram alguma forma de evasão, como cancelamento, abandono ou transferência.
A taxa de evasão é um indicador importante para entender o fenômeno da evasão escolar, que pode ser influenciado por diversos fatores, como dificuldades acadêmicas, falta de interesse, problemas pessoais, entre outros. Identificar e compreender as razões por trás dessa taxa de evasão pode ajudar a instituição a desenvolver estratégias e ações que visem melhorar a retenção dos alunos e promover um ambiente acadêmico mais favorável ao seu desenvolvimento.
# Criar uma tabela com a contagem de matrículas por período
contagem_matriculas <- dados_periodo_disciplina %>%
group_by(periodo) %>%
summarise(total_matriculas = n())
# Criar uma tabela com a contagem de evasões por período
contagem_evasao <- dados_evasao %>%
group_by(periodo) %>%
summarise(total_evasao = n())
# Juntar as tabelas de contagem
taxas_evasao <- merge(contagem_matriculas, contagem_evasao, by = "periodo", all.x = TRUE)
# Calcular a taxa de evasão para cada período
taxas_evasao$taxa_evasao <- (taxas_evasao$total_evasao / taxas_evasao$total_matriculas) * 100
# Gráfico de barras para visualizar a taxa de evasão ao longo do tempo
ggplot(data = taxas_evasao, aes(x = periodo, y = taxa_evasao)) +
geom_bar(stat = "identity", fill = "blue", color = "red") +
labs(title = "Taxa de Evasão ao Longo do Tempo",
x = "Período 2006.1 até 2019.2", y = "Taxa de Evasão (%)") +
theme_minimal()
## Warning: Removed 2 rows containing missing values (`position_stack()`).
A análise do gráfico de barras mostra que houve um pico de evasão/desistência no curso de Computação na UFCG em Campina Grande nos períodos 2007.1 e 2015.1. Esses períodos foram marcados pela presença de alunos que não concluíram o curso e que tiveram seus registros marcados como “Inativo (Cancelado)” ou “Transferido”. Essas informações são relevantes para compreender os momentos em que houve uma maior taxa de evasão e podem indicar possíveis problemas ou desafios enfrentados pelos estudantes durante esses períodos.
Com base nos resultados obtidos na reprodução do trabalho, podemos observar que houve uma alta taxa de evasão no período 2015.1, em torno de 40% dos alunos perderam o vínculo com a instituição. Além disso, no período 2006.1 a taxa de evasão foi de aproximadamente 35% e no período 2006.2 foi de aproximadamente 33%.
Esses resultados diferem da interpretação do trabalho original, que menciona que os alunos que ingressaram entre os períodos 2006.1 a 2012.1 já perderam seu vínculo com a UFCG ao se graduarem ou evadirem do curso, considerando a taxa de evasão como uma taxa efetiva. No entanto, na reprodução do trabalho, observamos que a taxa de evasão varia ao longo dos períodos, incluindo os períodos de ingresso após 2012.2.
# Filtrar os alunos que não concluíram o curso (status diferente de "GRADUADO") e se matricularam em Cálculo
alunos_evasao <- merged_data %>%
filter(!grepl("GRADUADO", status_students, ignore.case = TRUE),
codigoDisciplina == "1109103",
grepl("^2006\\.(1|2)|^2007|^2008|^2009|^2010|^2011|^2012|^2013|^2014|^2015|^2016|^2017|^2018|^2019\\.1|^2019\\.2", periodo))
# Contar a quantidade de alunos em evasão por período
contagem_evasao <- alunos_evasao %>%
group_by(periodo) %>%
summarise(n = n())
# Ordenar os períodos em ordem crescente
contagem_evasao <- contagem_evasao %>%
arrange(periodo)
# Gráfico para os alunos em evasão
ggplot(data = contagem_evasao, aes(x = periodo, y = n)) +
geom_bar(stat = "identity", width = 0.8, fill = "red") +
labs(title = "Alunos em Evasão do Curso de Cálculo",
x = "Período",
y = "Quantidade") +
theme_minimal()
## Warning: `position_stack()` requires non-overlapping x intervals
O gráfico de evasão no curso de Cálculo ao longo do tempo mostra a
quantidade de alunos que não concluíram o curso e foram matriculados na
disciplina de Cálculo I. Cada barra no gráfico representa um período
específico, e a altura da barra indica o número de alunos que evadiram
do curso nesse período.
Ao analisar o gráfico, podemos observar variações na evasão ao longo dos anos. Isso pode indicar diferentes cenários e fatores que podem ter influenciado a decisão dos alunos de abandonarem o curso. Essas informações podem ser úteis para identificar possíveis problemas e desafios enfrentados pelos estudantes, bem como para propor estratégias de retenção e suporte aos alunos
# Filtrar os alunos que não concluíram o curso (status diferente de "GRADUADO") e se matricularam em Cálculo
alunos_evasao <- merged_data %>%
filter(grepl("GRADUADO", status_students, ignore.case = TRUE),
codigoDisciplina == "1109103",
grepl("^2006\\.(1|2)|^2007|^2008|^2009|^2010|^2011|^2012|^2013|^2014|^2015|^2016|^2017|^2018|^2019\\.1|^2019\\.2", periodo))
# Contar a quantidade de alunos em evasão por período
contagem_evasao <- alunos_evasao %>%
group_by(periodo) %>%
summarise(n = n())
# Ordenar os períodos em ordem crescente
contagem_evasao <- contagem_evasao %>%
arrange(periodo)
# Gráfico para os alunos em evasão
ggplot(data = contagem_evasao, aes(x = periodo, y = n)) +
geom_bar(stat = "identity", width = 0.8, fill = "blue") +
labs(title = "Alunos que concluir Curso ",
x = "Período",
y = "Quantidade") +
theme_minimal()
## Warning: `position_stack()` requires non-overlapping x intervals
O gráfico de concluintes no curso de Computação ao longo do tempo mostra a quantidade de alunos que foram matriculados na disciplina de Cálculo I. Cada barra no gráfico representa um período específico, e a altura da barra indica o número de alunos que se formaram nesse período.
Ao analisar o gráfico, podemos observar variações no número de concluintes ao longo dos anos. Isso pode refletir diferentes cenários e fatores que influenciaram o desempenho dos alunos e sua capacidade de concluir o curso dentro do período esperado.
O gráfico de concluintes no curso de Computação ao longo do tempo mostra a quantidade de alunos que foram matriculados na disciplina de Cálculo I e concluíram o curso. Cada barra no gráfico representa um período específico, e a altura da barra indica o número de alunos que se formaram nesse período.
Ao analisar o gráfico, podemos observar variações no número de concluintes ao longo dos anos. Essas variações podem ser influenciadas por diferentes fatores, como a qualidade do ensino, a dedicação dos alunos, o apoio acadêmico oferecido, entre outros. Além disso, fatores externos, como mudanças na economia ou no mercado de trabalho, também podem ter impacto no número de alunos que concluem o curso em determinado período.
subjects <- read.csv("~/Mestrado UFCG/Semestre 2023.1/FPCC 2/fpcc2-reproducao-Diego-Kazadi/dados/subjects.csv", sep = ";")
head(subjects)
## codigoCurso codigoCurriculum codigoDiscplina unidadeAcademica credito horas
## 1 14102100 2017 1411311 1411 4 60
## 2 14102100 2017 1411174 1411 4 60
## 3 14102100 2017 1411180 1411 4 60
## 4 14102100 2017 1411167 1411 4 60
## 5 14102100 2017 1109126 1109 4 60
## 6 14102100 2017 1411312 1411 4 60
## nome codigoEquivalente periodoIdeal
## 1 FUND DE MATEMATICA P/ C.DA COMPUTACAO I 1109126,111 1
## 2 INTRODUO A COMPUTAO 1
## 3 LABORATRIO DE PROGRAMAO I 1
## 4 PROGRAMAO I 1
## 5 CALCULO DIFERENCIAL E INTEGRAL I 1109103 2
## 6 FUND DE MATEMATICA P/ C.DA COMPUTACAO II 1109103,111 2
## preRequisito coRequisito tipo
## 1 NA M
## 2 NA M
## 3 1411167 M
## 4 1411180 M
## 5 1411311 NA M
## 6 1411311 NA M
Tratar a tabela separando as colunas por virgulas
enrollments <- read.csv("~/Mestrado UFCG/Semestre 2023.1/FPCC 2/fpcc2-reproducao-Diego-Kazadi/dados/enrollments.csv", sep = ";")
head(enrollments)
## registro codigoDisciplina periodo IdTurma credito nota status_enrollments
## 1 100110001 1108089 2000.2 0 4 - Trancado
## 2 100110001 1108089 2001.1 0 4 7,6 Aprovado
## 3 100110001 1108090 2001.2 0 4 8,3 Aprovado
## 4 100110001 1109035 2000.1 0 4 7,5 Aprovado
## 5 100110001 1109101 2001.1 0 4 5,7 Aprovado
## 6 100110001 1109103 2000.1 0 4 8,5 Aprovado
# Filtrar os dados da tabela merged_data considerando o período, a disciplina e os critérios de situações
dados_situacoes <- merged_data %>%
filter(grepl("^2006\\.(1|2)|^2007|^2008|^2009|^2010|^2011|^2012|^2013|^2014|^2015|^2016|^2017|^2018|^2019\\.1|^2019\\.2", periodo),
codigoDisciplina == "1109103",
status_enrollments %in% c("Aprovado", "Reprovado", "Reprovado por Falta"))
# Calcular as taxas de cada situação em relação ao total de alunos
taxas_situacoes <- dados_situacoes %>%
group_by(status_enrollments) %>%
summarize(taxa = n() / nrow(dados_situacoes) * 100)
# Arredondar as taxas para dois números após a vírgula
taxas_situacoes$taxa <- round(taxas_situacoes$taxa, 2)
# Definir cores para as situações
cores_situacoes <- c("#1f78b4", "#e31a1c", "#ff7f00")
# Plotar o gráfico de pizza com as taxas
ggplot(data = taxas_situacoes, aes(x = "", y = taxa, fill = status_enrollments)) +
geom_bar(stat = "identity", width = 1) +
coord_polar("y", start = 0) +
labs(title = "Situação dos Alunos em Cálculo I",
fill = "Situação") +
scale_fill_manual(values = cores_situacoes) +
theme_void() +
theme(panel.grid = element_blank(),
axis.text = element_blank(),
legend.position = "right") +
geom_text(aes(label = paste0(taxa, "%")), position = position_stack(vjust = 0.5), size = 4)
Com base nos resultados obtidos na reprodução, podemos comparar com os dados do trabalho original para identificar semelhanças e diferenças.
No trabalho original, a taxa de aprovação encontrada para a disciplina de Cálculo I foi de 40,38%, enquanto na reprodução obtivemos uma taxa de aprovação de 41,4%. Isso indica que, na reprodução, houve um aumento 1,03% na taxa de aprovação.
No que diz respeito à taxa de reprovação, o trabalho original registrou uma taxa de 44,72%, enquanto na reprodução obtivemos uma taxa de 42,41%. Isso indica que, na reprodução, houve uma redução na taxa de reprovação, indicando um desempenho melhor dos alunos nessa categoria.
No entanto, é importante observar que os valores das taxas de aprovação e reprovação podem variar ao longo do tempo, de acordo com diferentes fatores e contextos. Portanto, as diferenças encontradas entre os resultados do trabalho original e da reprodução podem ser atribuídas a essas variações.
Em relação à taxa de reprovação por falta, o trabalho original registrou uma taxa de 14,90%, enquanto na reprodução obtivemos uma taxa de 16,2%. Nesse caso, a reprodução mostrou uma taxa ligeiramente maior de reprovação por falta.
Essas diferenças entre os resultados do trabalho original e da reprodução podem ser influenciadas por diversos fatores, como a amostra de dados utilizada, as metodologias de análise empregadas, entre outros. É importante considerar essas variações ao interpretar e comparar os resultados.
Em conclusão, os resultados da reprodução mostram uma taxa de aprovação mais alta e uma taxa de reprovação ligeiramente menor em relação ao trabalho original. Essas informações podem fornecer insights valiosos sobre o desempenho dos alunos na disciplina de Cálculo I e auxiliar na identificação de possíveis áreas de melhoria no processo de ensino-aprendizagem.