;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Esse conteúdo é antigo

Perder ano de 2020 pode levar a colapso na educação em SP, diz secretário

 izusek/Getty Images
Imagem: izusek/Getty Images

Do UOL, em São Paulo

24/06/2020 20h42

O secretário da Educação do Estado de São Paulo, Rossieli Soares, afirmou em entrevista ao "Brasil Urgente" que o governo está se esforçando para que o ano de 2020 não seja perdido nas escolas. O receio, disse ele, é que haja um colapso no setor caso os alunos não progridam de ano.

Hoje, o governo de São Paulo anunciou que o retorno às aulas presenciais no estado está previsto para o dia 8 de setembro e terá escolas com 35% da capacidade máxima de alunos. Para isso, estão previstos um rodízio entre os alunos e a manutenção de um sistema híbrido, reunindo o ensino presencial e o ensino remoto.

"Nós temos um problema muito sério: nós temos um ciclo de entrada, os alunos precisam entrar. Então, se a gente não tiver alunos progredindo, nós podemos ter um colapso nos anos de entrada. Se perdermos o ano, como é que vamos atender todos os alunos que estão vindo da educação infantil, por exemplo?", questionou Soares.

Segundo o secretário, a recuperação da educação no estado de São Paulo será de dois anos, e criticou quem acha que basta acrescentar "um mês a mais" de aula para que o sistema volte para a normalidade.

"A gente está programando até o final de 2022 para recuperar a aprendizagem dos alunos, porque não recupera rápido assim, não. É um processo muito longo e contínuo, para que a gente possa recuperar a aprendizagem desse período da pandemia", acrescentou.

Soares explicou no programa comandado por José Luiz Datena que são as próprias escolas que poderão definir quais alunos voltarão às aulas.

"Eu posso priorizar por série, posso priorizar algumas. Posso priorizar, por exemplo, os alunos mais vulneráveis, acho isso importante, aqueles que não puderam ar ensino remoto, talvez terem mais oportunidade e continuar com outras atividades a distância, até chegar na etapa 2", disse.

O secretário ainda explicou que há uma articulação entre municípios, SUS e a própria secretaria de educação para que haja mais condições de realizar testes.

"Na primeira etapa de retorno, não volta grupo de risco. Não dá para colocar grupo de risco na escola, então esses já precisam ser protegidos, nem que a gente tenha que contratar mais pessoas, contratar outras pessoas para garantir".

A previsão que todos os alunos possam ir pelo menos uma vez por semana às escolas para entregar atividades e para que seu progresso seja acompanhado.

"O ideal, inclusive, é que a família já teste [a temperatura] em casa. Mas tem família que nem tem termômetro. Então, lógico, nós vamos ter termômetros, por exemplo, na escola, na entrada para medir", disse.