Para coleta das informações de estudantes de graduação e de docentes, utilizamos os dados do Censo da Educação Superior de 2022. Para os dados de pós-graduação, utilizamos (?????).
Em cada uma das abas abaixo são apresentados os códigos utilizados para computar as informações solicitadas, bem como a metodologia utilizada para obter o Full Time Equivalent para docentes e discentes.
Nesta atualização de dados, procuramos seguir as {diretrizes}
apontadas pelo QS World Rankings, exceto na sugestão de fórmula para
calcular o FTE:
\[ FTE = FT + \frac{PT}{3} \] Em que \(FT\) é a quantidade observada de indivíduos em tempo integral e \(PT\) é a quantidade observada de indivíduos em tempo parcial.
Nossa definição para aluno em tempo integral \((=1)\) corresponde ao discente presencial
matriculado no turno integral, enquanto os demais discentes são
incluídos na categoria tempo parcial
\((=0.5)\).
Analogamente, para os docentes a ideia é a mesma: aqueles que trabalham em tempo parcial são contados como 0.5, enquanto os docentes em tempo integral são contabilizados como 1.
Em cada um dos tópicos abaixo, apresentamos a metodologia, os resultados e a necessidade de novos dados para preenchimento completo do ranking.
Primeiramente, vamos abrir os dados de docentes utilizados no Censo da Educação Superior relativos a 2022 e verificar a distribuição por regime de trabalho. Tomamos como critério a exclusão dos docentes visitantes, além disso, há 70 docentes que não possuem registro do regime de trabalho. Estes também deverão ser excluídos do contagem. Neste ponto, já temos um total de 328 docentes em tempo parcial e 2651 docentes em tempo integral:
# QS World University Rankings - dados de 2022
library(readr)
library(dplyr)
library(readxl)
library(knitr)
#setwd("C:/Users/kassi/workspace/QS World University Rankings/Atualizacao_2022/")
# abrindo dados do censo
dados_docentes_2022 <- read_delim("dados/relatorio_detalhado_docente_ies_580_20230728_134940 (2).csv",
delim = ";", escape_double = FALSE,
locale = locale(encoding = "ISO-8859-1"),
trim_ws = TRUE)
# Faculty Staff -----------------------------------------------------------
# Regra para o FULL TIME: se o regime de trabalho for tempo parcial = 0.5
dados_docentes_2022 %>% distinct(NU_CPF, .keep_all = TRUE) %>%
filter(DOCENTE_VISITANTE=="Não") %>%
mutate(FULL_TIME = ifelse(REGIME_TRABALHO=="Tempo Parcial", 0.5, 1)) ->
dados_docentes_2022
# existem 70 docentes sem regime de trabalho preenchido
dados_docentes_2022 %>% select(FULL_TIME) %>% table(useNA = "ifany") %>% kable
FULL_TIME | Freq |
---|---|
0.5 | 328 |
1 | 2651 |
NA | 70 |
Os docentes em tempo integral podem ser “com dedicação exclusiva” ou “sem dedicação exclusiva”:
# numero total Full Time (nao eh o equivalente)
dados_docentes_2022 %>% group_by(REGIME_TRABALHO) %>%
summarise(Totais = n()) %>% kable
REGIME_TRABALHO | Totais |
---|---|
Tempo Parcial | 328 |
Tempo integral com DE | 2208 |
Tempo integral sem DE | 443 |
NA | 70 |
Agora, criamos uma nova coluna para registrar os valores 1 ou 0.5, de acordo com o regime de trabalho do docente. Em seguida computamos as somas por sexo. Assim, obtemos o FTE por sexo para os docentes.
Para o sexo masculino, temos:
# contabilizando o FTE
dados_docentes_2022$FULL_TIME %>% sum(na.rm = TRUE) -> faculty_staff_FTE
# por sexo
dados_docentes_2022 %>% group_by(REGIME_TRABALHO, SEXO) %>%
summarise(Totais = n(), fte=sum(FULL_TIME)) -> docentes_2022_sexo
docentes_2022_sexo %>% filter(SEXO=="Masculino") %>% kable
REGIME_TRABALHO | SEXO | Totais | fte |
---|---|---|---|
Tempo Parcial | Masculino | 179 | 89.5 |
Tempo integral com DE | Masculino | 1124 | 1124.0 |
Tempo integral sem DE | Masculino | 210 | 210.0 |
NA | Masculino | 35 | NA |
Para o sexo feminino:
docentes_2022_sexo %>% filter(SEXO=="Feminino") %>% kable
REGIME_TRABALHO | SEXO | Totais | fte |
---|---|---|---|
Tempo Parcial | Feminino | 149 | 74.5 |
Tempo integral com DE | Feminino | 1084 | 1084.0 |
Tempo integral sem DE | Feminino | 233 | 233.0 |
NA | Feminino | 35 | NA |
Para os docentes estrangeiros, basta filtrar a base de dados onde a nacionalidade é diferente de “Brasileira”. Novamente, a partir do regime de trabalho, computamos o total headcount e o FTE:
# international
dados_docentes_2022 %>%
mutate(ESTRANGEIRO=ifelse(NOME_NACIONALIDADE!="Brasileira", "Sim", "Não")) ->
dados_docentes_2022
dados_docentes_2022 %>% group_by(ESTRANGEIRO, REGIME_TRABALHO) %>%
summarise(Total = n(), fte = sum(FULL_TIME)) %>% kable
ESTRANGEIRO | REGIME_TRABALHO | Total | fte |
---|---|---|---|
Não | Tempo Parcial | 328 | 164 |
Não | Tempo integral com DE | 2189 | 2189 |
Não | Tempo integral sem DE | 439 | 439 |
Não | NA | 70 | NA |
Sim | Tempo integral com DE | 19 | 19 |
Sim | Tempo integral sem DE | 4 | 4 |
Finalmente, para preenchimento do ranking, temos para os docentes os seguintes dados:
Full Time | Part Time | HC | FTE | |
Faculty Staff | 2651 | 328 | 2979 | 2815 |
Faculty Staff Male | 1334 | 179 | 1513 | 1423,5 |
Faculty Staff Female | 1317 | 149 | 1466 | 1391,5 |
International Faculty Staff | 23 | 0 | 23 | 23 |
Para os estudantes, temos três casos:
Assim, o primeiro passo é obter todos os números de CPF que aparecem no ano de 2022.
Em seguida, obtemos os CPFs dos alunos matriculados apenas em 2022.1 ou 2022.2 e utilizamos para separar os três conjuntos de dados.
dados_alunos <- readRDS("./dados/base_censo_2013_2022_V2.rds")
# Students - Undergraduate ------------------------------------------------
dados_alunos %>% filter(ANO=="2022") -> dados_alunos_2022
# cpf dos alunos que aparecem em pelo menos um semestre
dados_alunos_2022 %>% select(NU_CPF) %>% unique -> CPFs_2022
# cpf dos alunos que aparecem em 2022.1
dados_alunos_2022 %>% filter(PERIODO_REFERENCIA == 1) %>% select(NU_CPF) %>%
unique -> CPFs_2022.1
# cpf dos alunos que aparecem em 2022.2
dados_alunos_2022 %>% filter(PERIODO_REFERENCIA == 2) %>% select(NU_CPF) %>%
unique -> CPFs_2022.2
# dim(CPFs_2022)
# dim(CPFs_2022.1)
# dim(CPFs_2022.2)
# CPFs que aparecem em dois semestres
intersect(CPFs_2022.1, CPFs_2022.2) -> alunos_2_semestres
# CPFs que aparecem somente em 2022.1
setdiff(CPFs_2022.1, alunos_2_semestres) -> alunos_so_2022.1
# CPFs que aparecem somente em 2022.2
setdiff(CPFs_2022.2, alunos_2_semestres) -> alunos_so_2022.2
Utilizandos os CPFs nos três casos, podemos agora criar em cada dataframe uma coluna FULL_TIME contanto o FTE de cada aluno. Novamente, atribuimos o valor 1 para o estudantes em turno integral e 0.5 para os demais, excluindo os alunos EaD do cálculo.
# agora, faz o filtro
# testar com 0.5 e 1 mesmo se ele passou somente um semestre
# apenas 2022.1
dados_alunos_2022 %>% filter(NU_CPF %in% alunos_so_2022.1$NU_CPF,
VINCULADO=="Sim", TURNO!="Ead") %>%
mutate(FULL_TIME = ifelse(TURNO!="Integral", 0.5, 1)) -> dados_alunos_so_2022.1
# apenas 2022.2
dados_alunos_2022 %>% filter(NU_CPF %in% alunos_so_2022.2$NU_CPF, VINCULADO=="Sim",
TURNO!="Ead") %>%
mutate(FULL_TIME = ifelse(TURNO!="Integral", 0.5, 1)) -> dados_alunos_so_2022.2
# ambos
dados_alunos_2022 %>% filter(NU_CPF %in% alunos_2_semestres$NU_CPF, VINCULADO=="Sim",
TURNO!="Ead") %>%
distinct(NU_CPF, .keep_all = TRUE) %>%
mutate(FULL_TIME = ifelse(TURNO!="Integral", 0.5, 1)) -> dados_alunos_ambos
Agora, utilizamos a coluna FULL_TIME anteriormente criada para computar o FTE, o número de discentes em tempo integral e o número de discentes em tempo parcial:
# FTE
dados_alunos_so_2022.1 %>% select(FULL_TIME) %>% sum +
dados_alunos_so_2022.2 %>% select(FULL_TIME) %>% sum +
dados_alunos_ambos %>% select(FULL_TIME) %>% sum
## [1] 25660
Para quantidade de alunos de graduação em tempo integral:
# Full Time
(dados_alunos_so_2022.1 %>% group_by(TURNO) %>% summarise(Total=n()) %>% filter(TURNO=="Integral"))$Total +
(dados_alunos_so_2022.2 %>% group_by(TURNO) %>% summarise(Total=n()) %>% filter(TURNO=="Integral"))$Total +
(dados_alunos_ambos %>% group_by(TURNO) %>% summarise(Total=n()) %>% filter(TURNO=="Integral"))$Total
## [1] 16691
FInalmente, a quantidade de alunos de graduação em tempo parcial:
# Part Time
((dados_alunos_so_2022.1 %>% group_by(TURNO) %>% summarise(Total=n()) %>% filter(TURNO!="Integral"))$Total +
(dados_alunos_so_2022.2 %>% group_by(TURNO) %>% summarise(Total=n()) %>% filter(TURNO!="Integral"))$Total +
(dados_alunos_ambos %>% group_by(TURNO) %>% summarise(Total=n()) %>% filter(TURNO!="Integral"))$Total) %>% sum
## [1] 17938
Para computar o número de estudantes de graduação estrangeiros, realizamos o mesmo procedimento, filtrando os alunos cujo país de origem é diferente de “Brasil”. Assim, o FTE de graduandos estrangeiros fica:
# undergraduate international students
# FTE
dados_alunos_so_2022.1 %>% filter(NOME_PAIS_ORIGEM!="Brasil") %>% select(FULL_TIME) %>% sum +
dados_alunos_so_2022.2 %>% filter(NOME_PAIS_ORIGEM!="Brasil") %>% select(FULL_TIME) %>% sum +
dados_alunos_ambos %>% filter(NOME_PAIS_ORIGEM!="Brasil") %>% select(FULL_TIME) %>% sum
## [1] 47.5
A quantidade de alunos de graduação estrangeiros em tempo integral:
# Full Time
(dados_alunos_so_2022.1 %>% filter(NOME_PAIS_ORIGEM!="Brasil") %>%
group_by(TURNO) %>% summarise(Total=n()) %>% filter(TURNO=="Integral"))$Total +
(dados_alunos_so_2022.2 %>% filter(NOME_PAIS_ORIGEM!="Brasil") %>%
group_by(TURNO) %>% summarise(Total=n()) %>% filter(TURNO=="Integral"))$Total +
(dados_alunos_ambos %>% filter(NOME_PAIS_ORIGEM!="Brasil") %>%
group_by(TURNO) %>% summarise(Total=n()) %>% filter(TURNO=="Integral"))$Total
## [1] 41
Quantidade de alunos de graduação estrangeiros em tempo parcial:
# Part Time
((dados_alunos_so_2022.1 %>% filter(NOME_PAIS_ORIGEM!="Brasil") %>%
group_by(TURNO) %>% summarise(Total=n()) %>% filter(TURNO!="Integral"))$Total +
(dados_alunos_so_2022.2 %>% filter(NOME_PAIS_ORIGEM!="Brasil") %>%
group_by(TURNO) %>% summarise(Total=n()) %>% filter(TURNO!="Integral"))$Total +
(dados_alunos_ambos %>% filter(NOME_PAIS_ORIGEM!="Brasil") %>%
group_by(TURNO) %>% summarise(Total=n()) %>% filter(TURNO!="Integral"))$Total) %>% sum
## [1] 14
# undergraduate Exchange student - inbound
Quantidade de alunos de graduação da UFPE em mobilidade internacional em tempo integral:
# undergraduate Exchange Student - Outbound
# Full time
dados_alunos_2022 %>% filter(!is.na(MOB_ACAD_PAISDESTINO)) %>%
distinct(NU_CPF, CODIGO_CURSO, .keep_all = TRUE) %>%
select(TURNO) %>%
filter(TURNO=="Integral") %>% nrow
## [1] 66
dados_alunos_so_2022.1 %>% filter(!is.na(MOB_ACAD_PAISDESTINO)) %>%
distinct(NU_CPF, CODIGO_CURSO, .keep_all = TRUE) %>% select(TURNO) %>%
filter(TURNO=="Integral") %>% nrow
## [1] 0
dados_alunos_so_2022.2 %>% filter(!is.na(MOB_ACAD_PAISDESTINO)) %>%
distinct(NU_CPF, CODIGO_CURSO, .keep_all = TRUE) %>% select(TURNO) %>%
filter(TURNO=="Integral") %>% nrow
## [1] 0
Quantidade de alunos de graduação da UFPE em mobilidade internacional em tempo parcial:
# Partial Time
dados_alunos_2022 %>% filter(!is.na(MOB_ACAD_PAISDESTINO)) %>%
distinct(NU_CPF, CODIGO_CURSO, .keep_all = TRUE) %>% select(TURNO) %>%
filter(TURNO!="Integral") %>% nrow
## [1] 18
FTE de alunos de graduação da UFPE em mobilidade internacional:
# FTE
dados_alunos_2022 %>% filter(!is.na(MOB_ACAD_PAISDESTINO)) %>%
distinct(NU_CPF, CODIGO_CURSO, .keep_all = TRUE) %>%
mutate(FULL_TIME = ifelse(TURNO=="Integral", 1, 0.5)) %>% select(FULL_TIME) %>%
sum
## [1] 75
Em relação ao número de graduandos estrangeiros na UFPE em programas de mobilidade (Undergraduate Exchange Students – Inbound), não há disponibilidade destes dados no Censo da Educação Superior. Necessitamos de outra fonte de dados para obter esta informação.
Finalmente, para o item Students - Undergraduate, fornecemos os seguintes dados:
Full Time | Part Time | HC | FTE | |
---|---|---|---|---|
Undergraduate Students | 16691 | 17938 | 34629 | 25660 |
Undergraduate International Students | 41 | 14 | 55 | 43,75 |
Undergraduate Exchange Students – Inbound | ||||
Undergraduate Exchange Students – Outbound | 66 | 18 | 84 | 75 |
Para pós-graduação, consideramos os matriculados em cursos de mestrado e doutorado. Consideramos todos os alunos da pós stricto sensu como tempo integral.
dados_pos <- read_excel("dados/relatorio_dados_enviados_coleta_publico (3) (1).xlsx")
dados_pos %>% filter(`Situação Discente` == "MATRICULADO",
`Nível Discente` %in% c("Mestrado", "Doutorado")) %>% dim
## [1] 9596 18
Nesta seção, maior parte dos dados exige informações que não consta nas planilha da pós-graduação:
- Número de alunos de pós-graduação estrangeiros (não há coluna de nacionalidade nos dados);
- Número de alunos de pós-graduação da UFPE em intercâmbio (sanduíche?) em outros países e
- Número de alunos de pós-graduação estrangeiros em intercâmbio na UFPE.
Vamos computar o número de estudantes EaD (Students - Distance):
# FTE
dados_alunos_2022 %>% filter(TURNO=="EaD", PERIODO_REFERENCIA==1) %>%
distinct(NU_CPF, CODIGO_CURSO, .keep_all = TRUE) %>% nrow()
## [1] 828
Os dados solicitados nesta seção que não temos são:
- International Students – distance
- Exchange Students – Inbound
- Exchange Students – Outbound