Terceiro Checkpoint 2020

Na quinta-feira, dia 17/09, ocorreu o terceiro Checkpoint do Desafio UniSoma 2020! Neste, Monica Quast e ONG Matemática em Movimento apresentaram sobre as entregas da próxima semana e conheceram melhor o trabalho da organização! Além disso, a Monica respondeu as perguntas enviadas durante a última semana. Abaixo segue o vídeo da Live do Youtube:


Seguem todas as perguntas e as respectivas respostas de todos os grupos:

1) Depois do Solver, as tabelas “sol_aluno”, “sol_turma” e “sol_priorizacao_formulario” devem ser preenchidas com as informações de saída do solver, certo?. Na tabela “sol_aluno” devemos preencher as informações de todos os alunos alocados ou somente dos matriculado?

Certo. Na “sol_aluno” devem ser preenchidas as informações de alunos de continuidade que foram alocados pelo modelo.

2) Na tabela “sol_turma”, preenchemos com o id e os nomes das turmas, conforme discuto na Live do segundo checkpoint, podemos criar novos nomes e novos id para as turmas, certo? O que deve ser preenchido na coluna “aprova” deste tabela?

Se for uma turma nova (que não exista no cadastro de entrada), podem ser criados novos nomes. A coluna “aprova” deve ser marcada como 1 (verdadeiro) se a turma já existe no cadastro. Caso contrário, a coluna deve vir nula.

3) Conforme a descrição completa do desafio, “ONG pode aprovar ou não as turmas sugeridas”. Por exemplo, como resultado do modelo matemática, sugere-se a criação de mais uma turma no colégio 1, do Terceiro ano. Caso a ONG não quiser aprovar essa turma (que é composto por alunos inscritos, já que se fosse composto por aluno matriculado ele deveria obrigatoriamente aceitar, certo?), isso quer dizer que devemos rodar de novo o modelo matemática com uma nova restrição (restrição de não poder formar mais turmas no colégio 1 do Terceiro ano)? Ou simplesmente não alocamos esses alunos inscritos na turma nova, ou seja, só faremos uma rodada de otimização?

Após uma otimização, se for necessária outra rodada por qualquer motivo, a ONG deverá fazer o download dos dados gerados pela web e usá-los como input. Assim, do ponto de vista da trilha de modelagem, o problema será sempre uma única otimização. A trilha da web será responsável por permitir a aprovação ou reprovação das turmas, lembrando que as pré-existentes devem ser marcadas como aprovadas por padrão. A partir daí, a web deve gerar as tabelas de saída de acordo. A ONG pode, então, usar esses dados como input para uma nova rodada, desativando a opção de sugestão de novas turmas, por exemplo. Note que, se a rodada inicial era de planejamento de ano, a nova rodada será considerada como planejamento dentro do ano, com os alunos alocados inicialmente já nas suas séries corretas.   

4) Conforme a descrição completa do desafio, “No caso dos candidatos de formulário, deve ser exibido uma lista de candidatos em ordem de prioridade a serem convocados e suas respectivas turmas, onde a ONG pode atualizar o status desses candidatos (VAI PARTICIPAR/NÃO VAI PARTICIPAR/NÃO SABE) após entrar em contato com os mesmos.” Nossa dúvida na verdade é parecido com a pergunta 3, gostaríamos de saber se devemos fazer uma outra rodada de otimização quando a ONG preencher que o aluno inscrito X na verdade “NÃO VAI PARTICIPAR”, ou apenas fazemos uma rodada de otimização?

Seguindo a resposta da pergunta anterior, se ao ligar para um inscrito, este desistir de participar, a ONG deve atualizar seu status na tela, a web gera o conjunto de dados de saída sem esse candidato e a ONG pode rodar uma nova otimização.

5) Podemos dizer que a prioridade do modelo é sempre formar turmas com maior quantidade de alunos possíveis? E a prioridade por ordem de inscrição somente é usada com alunos que vão estudar na mesma série no mesmo colégio? Ou seja, o modelo matemático, ao alocar e sugerir turmas, não se preocupa com a ordem de inscrição. Quando o modelo sugerir uma nova turma com 20 alunos da Terceira série do colégio 1, é somente neste instante que devemos alocar os alunos que vão na Terceira série do colégio 1 conforme a ordem de inscrição. 

Exatamente, a ordem de inscrição serve para alocar alunos em vagas/turmas já existentes. Para criar turmas novas, deve-se levar em conta, primeiro, a demanda por cada série e, havendo empate nessa demanda, a ordem de preferência das séries (9o ano > 1o ano> 2o ano > 3o ano).

6) Um dos “parametro” é a “possibilita_abertura_novas_turmas” que pode ser 0 (não possibilita) ou 1 (possibilita). Quando fazemos planejamento do ano para o outro, é comum sugerir uma turma nova para os alunos matriculados, conforme tínhamos discutido nos outros emails, desta forma, é válido dizer que se o usuário quiser fazer o planejamento do ano para o outro  (otimiza_dentro_do_ano=0) e ao mesmo tempo não quiser abrir novas turmas ( possibilita_abertura_novas_turmas=0), ele estaria tornando o problema totalmente infactível, certo? Devemos supor que a ONG não comete esse tipo de erro, certo?

Esse tipo de situação pode acontecer. É importante que vocês pensem em uma saída para que o problema não seja infactível.

7) Gostaríamos de saber se podemos mudar os nomes das turmas. Por exemplo, temos a turma “ZO_9A”, que é turma pré-existente e aceita por padrão. Podemos mudar o nome dessa turma para “E1_9A”? (Seria escola 1 Nona série). Nos parece que fica mais fácil para identificar já que temos duas escolas na Zona Oeste. Se podemos mudar o nome, quer dizer que a turma “E1_9A” é aceita por padrão, certo ?  

Não há regras sobre os nomes das turmas, mas recomendamos fortemente que não se alterem os nomes já existentes.

8) Nos dados do banco SQlite disponibilizados no site da Unisoma, na tabela “parametro”, a qtd_professores_pedagogico é igual a 6 e a qtd_professores_acd = 2. No entanto, na tabela “turma”, percebe-se que a qtd_professores_pedagogico é igual  a 2 e a qtd_professores_acd é igual a 6. Qual informação que estaria correta? prof_pedagogico=6 e prof_acd=2 ou prof_pedagogico=2 e prof_acd=6?

Vocês devem usar a informação do banco. É essa que irá entrar, de fato, no modelo. Atentem-se ao fato de que o usuário pode, eventualmente, mudar esses valores. Portanto, o valor exato que entra não deve ser preocupação para vocês.

9) Precisamos enviar um relatório do que fizemos até o momento? 

Não é necessário o envio de relatório no momento, apenas na data de entrega da fase inicial (27/09/2020).

10) Quanto a interface gráfica, o usuário deve conseguir alterar as informações inconsistentes dentro do app ou podem apenas mostrar os alertas e erros e então pedir para o usuário alterar esses direto na planilha?

O mínimo esperado é a listagens das inconsistências encontradas durante a importação. Neste caso, a ONG fica encarregada de fazer as alterações manualmente no arquivo e subi-lo novamente. Porém, nada impede que vocês façam uma tela mais refinada, permitindo uma alteração na própria aplicação.

11) Se propusermos análises extras, elas devem constar no código fornecido ou apenas no relatório, considerando apenas essa primeira fase? Se precisar constar no código, nós também podemos fazer mudanças no arquivo de entrada para adicionar parâmetros ou abas de modo a controlar essas análises extras?

Análises extras podem ser feitas e devem constar tanto do relatório quanto do código. A estrutura do arquivo de entrada não pode ser alterada, ou seja, não podem ser adicionados parâmetros e/ou abas a ele.

12) Se tivermos sugestões de mudanças quanto ao arquivo de entrada, o que deve ser feito? Deve constar no relatório ou deve ser sugerido antes?

A estrutura do arquivo de entrada não pode ser alterada, ou seja, não podem ser adicionados parâmetros e/ou abas a ele.

13) Após a alocação dos alunos as turmas, a ONG deve entrar em contato com esses alunos para confirmar o interesse. Se tiverem alunos que não queiram mais a vaga, a ONG deve fazer uma re-otimização para preencher as vagas que sobraram. Essa re-otimização será passada como um problema de alocação no meio do ano com os alunos alocados na primeira otimização constando como alunos antigos da ONG? É dever da equipe web fazer essa adaptação dos dados de entrada?

Sim, nesse caso, a re-otimização será passada como um problema de alocação no meio do ano. Os dados de entrada serão os gerados pela web na primeira otimização, então, sim, fica a cargo da web fazer as mudanças necessárias.

14) Suponha a situação na qual o modelo matemática, como solução, sugere a criação de uma nova turma no colégio 1, Terceira série. Essa nova turma será preenchido com 18 alunos inscritos. Suponha que apenas há 18 alunos inscritos que irão cursar a Terceira série no colégio 1 no ano de planejamento. Conforme a descrição, “Ao finalizar o planejamento, a ONG entra em contato com todos os candidatos de formulário selecionados e confirma a participação dos mesmos. Caso algum desses candidatos desista, uma readequação precisa ser feita para que essas vagas sejam ocupadas pelos candidatos que continuam na lista de espera.” Suponhamos que, ao entrar em contato com esses 18 alunos inscritos, 15 “NÃO VAI PARTICIPAR”. Neste caso, o que deveríamos fazer? Deveríamos rodar outra vez o modelo matemático com os novos dados (esses dados são, por exemplo, que esses 15 alunos não vão participar) ou deveríamos formar essa turma com 3 pessoas e talvez sugerir outra turma (já que deve ter bastante dinheiro sobrando). Caso tenhamos que rodar o modelo matemática mais de uma vez, podemos dizer que o critério de parada é quando todos os alunos inscritos convocados quiserem participar da ONG? Porque, caso contrário, a solução não seria ótima, já que ao rodar o modelo matemática, supomos que esses alunos inscritos irão participar da ONG.

Seguindo a resposta da pergunta 4, se ao ligar para um inscrito, este desistir de participar, a ONG deve atualizar seu status na tela, a web gera o conjunto de dados de saída sem esse candidato e a ONG pode rodar uma nova otimização. Para o modelo matemático, é como se fosse uma nova otimização, com um novo conjunto de dados.

15) Pelo que entendemos no Checkpoint, os alunos de formulário que confirmarem a participação com a ONG vão passar a ser alunos de continuidade já para fins de retroalimentação do modelo. Nossa dúvida é a seguinte: na retroalimentação, devemos considerar o planejamento de turmas que já existia para esses alunos que eram de formulário? Os alunos de formulário que confirmarem interesse e passarem a ser de continuidade podem mudar de turma, se isso resultar em uma solução melhor?

Quando o modelo é retroalimentado, as turmas de todos os alunos de continuidade são atualizadas com a solução anterior e o planejamento passa a ser dentro do ano. Então, valem as premissas para esse tipo de situação: a turma dos alunos de continuidade não muda, exceto quando há necessidade de juntar turmas.

16) Todas as condições da otimização precisam de serem implementadas necessariamente no modelo matemático ou também podem ser trabalhadas por meio da programação do código?

Contanto que as estruturas dos dados de entrada e de saída não sejam modificadas, e sejam respeitadas as regras sobre linguagens usadas, o código pode ser da forma como vocês acharem mais adequada.

17) na tabela “sol_priorizacao_formulario”, deve ser preenchido somente com os alunos inscritos que foram alocados em uma sala pelo modelo matemático ou deve ser preenchido com todos os alunos inscritos? Com qual serie_id devemos preencher na tabela “sol_priorizacao_formulario”? Seria a serie_id do aluno inscrito que vai estudar no ano de planejamento? Ou seria a mesma serie_id do aluno inscrito na tabela “formulario_inscricao”?

Deve ser preenchido somente com os candidatos de formulário de inscrição que foram alocados e a série deve ser a que o aluno vai estudar no ano de planejamento.

​18) O relatório e o manual do sistema deve ser entregue em PDF?

Não há uma regra definida sobre o formato, porém sugerimos fortemente que seja em PDF.

19) Qual seria o melhor formato para entregar os cenários rodados? Enviar em um arquivo csv, por exemplo, ou pdf?

Time Modelagem: por cenário que desejarem enviar, nos enviar o SQLite referente. 

Time Web: por cenário que desejarem enviar, nos enviar o SQLite, Excel a importar e Excel exportado.

20) Gostaria de saber como foi a adaptação dos alunos ao ensino remoto! Eles estão conseguindo acompanhar? Estão gostando do novo formato? Achei bem legal que vcs conseguiram se adaptar ao momento!

No início, foi um baque e muitos alunos tiveram muita dificuldade. Houve muitas desistências, principalmente ao longo do primeiro semestre. Agora, no início do segundo semestre, com a maior adaptação de todos, muitos alunos voltaram e as turmas estão mais cheias. 

21) ​Já pensaram então em tipo um cursinho talvez?

No momento, não. Mas é algo que sempre é perguntado e não descartamos que no futuro possamos abrir um.

23) O relatório pode ultrapassar 5 páginas?

Não, o relatório deve ter até no máximo 5 páginas. Outros documentos anexos com informações que desejarem poderão ser enviados; porém, estes documentos extras não serão necessariamente considerados para a avaliação. Ou seja, o relatório tem que ser elaborado como um documento suficiente sozinho.

Estamos a disposição para responder as próximas dúvidas.