Enquadramento, Posicionamento e Taxa de Retenção
Conforme a INSTRUÇÃO NORMATIVA Nº 40, DE 20 DE DEZEMBRO DE 2019.
O Período de Enquadramento é o semestre de referência do estudante na estrutura curricular, que é definido a partir do total da carga horária de componentes curriculares obrigatórios cursados com aprovação.
O Período de Enquadramento do estudante corresponde ao semestre que contém a carga horária acumulada imediatamente superior à carga horária obrigatória do estudante, porém quando a diferença entre a carga horária acumulada do semestre referente ao Período de Enquadramento e a carga horária obrigatória do estudante for menor ou igual a 136h, o estudante deve ser enquadrado no semestre subsequente.
O Período de Posicionamento do estudante no curso corresponde ao número de períodos letivos em que o estudante regular mantém vínculo com a UFMS, desde o seu ingresso, subtraindo-se a quantidade de períodos em que a matrícula estiver trancada e os períodos de inverno e verão.
A Taxa de Retenção do curso corresponde ao percentual de estudantes enquadrados em um período inferior ao período de posicionamento no curso. Definida pela seguinte fórmula:
(Quantidade de estudante do Curso que encontram-se enquadrados em um período inferior do período de posicionamento no Curso/ Quantidade de Estudantes Ativos no Curso) X 100
Script postgres SQL:
/**
* Ticket: 2411170006 — Cálculo da Taxa de Retenção na Graduação
* Relatório para 2024/2, sem considerar o período de verão de 2024/2
*/
select totais."UAS_SIGLA" as "UAS",
totais.curso_codigo as "Codigo Curso",
totais.curso_nome as Curso,
totais.retidos as "Alunos Retidos",
totais.ativos as "Alunos Ativos",
div(totais.retidos*100, totais.ativos) as "Percentual Retencao"
from (
select curso_acad_ativos."curso_ativos_codigo" as curso_codigo,
curso_acad_ativos."curso_ativos_nome" as curso_nome,
curso_acad_ativos."curso_ativos" as ativos,
count(academicos."RGA_Estudante") as retidos,
academicos."UAS_SIGLA"
from (
--Acadêmicos ativos no semestre
select cur.codigo as "curso_ativos_codigo",
cur.nome as "curso_ativos_nome",
count(cur_acad.id) as "curso_ativos"
from siscad.cursos cur
join siscad.cursos_sequencias cur_seq on cur.codigo = cur_seq.codigo
join siscad.academicos cur_acad on cur_acad.curso_id = cur_seq.id
join siscad.ocorrencias cur_acad_o on cur_acad_o.academico_id = cur_acad.id
join siscad.tipo_ocorrencias cur_acad_toc on cur_acad_toc.id = cur_acad_o.tipo_ocorrencia_id
where cur_acad_o.ano = 2024
and cur_acad_o.semestre = 2
-- Alunos matriculados regularmente e não matriculados em período especial
and (cur_acad_toc.tipo = 'MAT' and cur_acad_toc.sigla <> 'MPE')
group by
cur.codigo,
cur.nome
) curso_acad_ativos
left join (
--Retenção de acadêmicos semestre
select distinct on (u.id, u.sigla, cs.codigo, a.rga, f.nome)
u.id as "UAS_cod",
u.sigla as "UAS_SIGLA",
cs.codigo as "Curso_Cod",
a.rga as "RGA_Estudante",
f.nome as "Nome_Estudante",
o.periodo as "Posicionamento_estudante",
s.i as "Enquadramento_estudante",
-- da.carga_horaria_total_cumprida contém a C.H. das disciplinas e CCNDs
(da.carga_horaria_total_cumprida - da.carga_horaria_optativa_total_cumprida) as "CH_OBR_DW",
(
select
sum(g.carga_horaria_teorica + g.carga_horaria_pratica)
from
siscad.grades g
where
g.curso_id = cs.id
and g.tipo_disciplina_id = 'OBR'
and g.periodo <= s.i
) as "CH_cumulativa",
cs.carga_horaria_ufms as "CH_total_curso"
from
siscad.unidades u
join siscad.cursos_sequencias cs on cs.unidade_id = u.id
join siscad.academicos a on a.curso_id = cs.id
join pessoas.fisicas f on f.pessoa_id = a.pessoa_id
join siscad.ocorrencias o on o.academico_id = a.id
join siscad.tipo_ocorrencias toc on toc.id = o.tipo_ocorrencia_id
join siscad_dw.academicos da on da.academico_id = a.id and da.ano = o.ano and da.semestre = o.semestre
join (
select
s.i as i
from
generate_series(1, (select max(cs.duracao_minima)::integer from siscad.cursos_sequencias cs)) as s(i)
order by
s.i
) s on true
where
1=1
and o.ano = 2024
and o.semestre = 2
-- Alunos matriculados regularmente e não matriculados em período especial
and (toc.tipo = 'MAT' and toc.sigla <> 'MPE')
and (
--O aluno está enquadrado no semestre por sua carga horária ser menor que a do semestre
(
-- soma carga horária obrigatória cumprida pelo ano
-- da.carga_horaria_total_cumprida contém a C.H. das disciplinas e CCNDs
(da.carga_horaria_total_cumprida - da.carga_horaria_optativa_total_cumprida)
) <
(
--soma carga horária das disciplinas obrigatórias enquadradas no período
select
sum(g.carga_horaria_teorica + g.carga_horaria_pratica)
from
siscad.grades g
where
g.curso_id = cs.id
and g.tipo_disciplina_id = 'OBR'
and g.periodo <= s.i
)
or
s.i = cs.duracao_minima
)
--o aluno não pode estar enquadrado no semestre se faltam 168h ou menos para ele concluí-lo (parágrafo único)
and (
(
--soma carga horária das disciplinas obrigatórias enquadradas no período
select
sum(g.carga_horaria_teorica + g.carga_horaria_pratica)
from
siscad.grades g
where
g.curso_id = cs.id
and g.tipo_disciplina_id = 'OBR'
and g.periodo <= s.i
) -
(
-- soma carga horária obrigatória cumprida pelo ano
-- da.carga_horaria_total_cumprida contém a C.H. das disciplinas e CCNDs
da.carga_horaria_total_cumprida - da.carga_horaria_optativa_total_cumprida
) > 136 -- art 6º parágrafo unico
)
order by
u.id,
u.sigla,
cs.codigo,
a.rga,
f.nome,
s.i asc
) academicos on curso_acad_ativos."curso_ativos_codigo" = academicos."Curso_Cod"
--Acadêmicos retidos no semestre
where
academicos."Enquadramento_estudante" < academicos."Posicionamento_estudante"
group by
curso_acad_ativos."curso_ativos_codigo",
curso_acad_ativos."curso_ativos_nome",
curso_acad_ativos."curso_ativos",
academicos."UAS_SIGLA"
) totais
-- where
-- totais."UAS_SIGLA" = 'CPAR'
order by 1, 2