Ir para o conteúdo principal

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