;(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

Volta às aulas: SP mantém cronograma, mas condiciona retorno aos municípios

Do UOL, em São Paulo

05/10/2020 13h23

O governador de São Paulo João Doria (PSDB) confirmou hoje o cronograma de volta às aulas presenciais no estado, que prevê o retorno a partir de quarta-feira (07). No entanto, Doria lembrou que a decisão de retomar as atividades letivas após a suspensão por causa da pandemia do novo coronavírus continua a cargo das prefeituras.

Para esta semana, o governo estadual permitiu a volta de alunos do ensino médio e do EJA (Educação de Jovens Adultos) da rede estadual. Já o ensino fundamental tem retorno programado para 3 de novembro.

"O governo decidiu iniciar o retorno pelos alunos matriculados no ensino médio e na educação de jovens e adultos porque são os ciclos de ensino que podem ser mais afetados pela evasão escolar, prejudicando os estudantes mais vulneráveis, mais pobres", afirmou Doria durante entrevista coletiva no Palácio dos Bandeirantes, em São Paulo.

"Mas a volta às aulas está condicionada aos prefeitos. As prefeituras têm autonomia para decidir se vão acompanhar o cronograma estadual. Para as escolas se prepararem, o governo disponibilizou R$ 50 milhões para a compra de equipamentos e itens de higiene", completou o governador paulista.

Foco no monitoramento

Rossieli Soares, secretário estadual de Educação, também comentou sobre a volta às aulas presenciais e afirmou que o governo terá uma atenção especial ao monitoramento de alunos e profissionais em casos de contaminação pelo coronavírus.

"À medida que a escola começa a ter testagem, vamos ter monitoramento. Mas sempre que necessário haverá testagem. No mundo inteiro a educação trabalha com monitoramento. Mais importante do que testar é monitorar, para que o próprio teste surta efeito. Para assim tomarmos decisões a cada escola e município", explicou Soares.

O secretário anda minimizou as posições contrárias ao retorno das aulas, que vêm inclusive dos próprios sindicatos de professores, que chegaram a entrar na Justiça contra a volta marcada para esta semana.

"Nós temos reuniões com sindicatos, entendemos posições contrárias. Mas é retorno opcional, construído com a comunidade. Não há o que se falar de greve quando você tem opção de fazer o retorno ou não com a comunidade", disse o secretário.

"Todas as ações judiciais movidas para impedimento de retorno foram perdidas. Estamos calcados pelo poder Judiciário", completou Rossieli.

Preocupação com psicológico

Para o secretário estadual, o retorno também é importante para evitar os efeitos psicológicos que o período sem aulas presenciais tem provocado em alguns alunos. Por isso, Rossieli defendeu que mesmo alunos bem adaptados ao ensino remoto, com condições tecnológicas favoráveis, também devem considerar a volta às escolas.

"Ter condição ou não de o à tecnologia não pode ser único fator para dizer se o aluno deve ou não voltar. Temos alunos com níveis de depressão por não ter outro ambiente de socialização. Inclusive porque o ambiente principal de bullying, mesmo antes da pandemia, já era a internet", afirmou o secretário.

"Então, sempre que puder, com segurança, o retorno é fundamental. Por mais que tenha equipamento, o aluno não vai ter todas condições de um ambiente escolar. A OMS (Organização Mundial da Saúde) já falou de uma pandemia da depressão. Se for possível, envie seus filhos à escola com segurança. Acho que esse é o caminho", acrescentou Rossieli.