Fontes de Dados

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.

Resultados

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.

Faculty Staff

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

Students - Undergraduate

Para os estudantes, temos três casos:

  1. Estudantes vinculados apenas em 2022.1;
  2. Estudantes vinculados apenas em 2022.2;
  3. Estudantes vinculados em 2022.1 e 2022.2.

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

Students - Graduate/Postgraduate

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:

  1. Número de alunos de pós-graduação estrangeiros (não há coluna de nacionalidade nos dados);
  2. Número de alunos de pós-graduação da UFPE em intercâmbio (sanduíche?) em outros países e
  3. Número de alunos de pós-graduação estrangeiros em intercâmbio na UFPE.

Students - Overall

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:

  1. International Students – distance
  2. Exchange Students – Inbound
  3. Exchange Students – Outbound

Students Demographics

Additional Statistics

Average Tuition Fees

Employment Statistics

Employment Statistics Evidence