Uploaded avatar of iHiD

O Projeto de Apoio à Mentoria Automatizada

@iHiD
há Mais de 7 anos

Atualização: é com entusiasmo que anunciamos que a Mozilla atribuiu-nos um Open Source Support Award para este projeto. Podes ler mais aqui.

Este artigo assinala o início do Projeto de Apoio Automatizado à Mentoria do Exercism, no qual vamos desenvolver um framework que analisa programaticamente as soluções dos utilizadores, para melhorar o ciclo de feedback de quem aprende e reduzir o esforço dos mentores. A curto prazo, o nosso objetivo é aprovar automaticamente as soluções que cumpram determinados critérios de aceitação e dar feedback sobre melhorias frequentes.

O objetivo deste artigo é descrever o problema que estamos a tentar resolver e o plano geral para o abordarmos nos próximos meses. Vamos publicar mais artigos que aprofundam o contexto do problema e a história da análise automatizada no Exercism, bem como mais detalhes sobre a nossa estratégia de implementação.

Porquê apoio automatizado à mentoria?

A maior barreira do Exercism é conseguir lidar com a escala.

Os nossos mentores voluntários são essenciais para o sucesso do Exercism. São eles que revêem as soluções dos estudantes, analisam se cumprem os critérios de sucesso do exercício ou se precisam de ser melhoradas, compreendem com empatia o raciocínio de quem está a aprender, dão feedback útil e incentivador e orientam as pessoas nos idiomatismos da linguagem. Hoje, conseguimos, com dificuldade, acompanhar a procura de mentoria. Se queremos crescer, precisamos de uma estratégia melhor do que "arranjar mais mentores".

Nos exercícios principais que formam a espinha dorsal de um percurso de uma linguagem no Exercism, estimamos que cerca de 25% das submissões são suficientemente boas para serem marcadas como concluídas à primeira tentativa. Outros 55% das submissões têm problemas que se enquadram em categorias comuns e que podem ser objeto de mentoria através de copiar e colar excertos de feedback. Apenas cerca de 20% das soluções exigem que um mentor seja criativo e atento no seu feedback.

Os 80% de soluções que não envolvem verdadeiramente o cérebro do mentor são uma perda de tempo frustrante para quem está disposto a oferecer o seu tempo a ajudar os outros, e não tiram o melhor partido da sua experiência.

Da mesma forma, um estudante pode esperar entre um dia e uma semana até receber feedback e, entretanto, não consegue avançar no percurso. Para quem submeteu uma iteração que faz parte dos 25% de soluções perfeitamente válidas, este atraso é extremamente frustrante. Para os restantes, é, na melhor das hipóteses, pouco satisfatório. Os estudantes perdem muitas vezes o ímpeto por causa deste atraso e ficam frustrados com o processo.

Ao desenvolver um sistema que consegue analisar automaticamente uma solução e aprová-la ou dar feedback predefinido para problemas conhecidos, estimamos que conseguiremos reduzir drasticamente a carga de trabalho dos mentores, eliminando as partes "aborrecidas", e ao mesmo tempo melhorar significativamente a experiência de quem aprende. Como bónus adicional, as pessoas receberão feedback mais consistente no que diz respeito a questões estruturais e de estilo, o que as prepara para conversas mais interessantes sobre os temas menos óbvios.

Como vai funcionar?

O nosso objetivo a longo prazo é desenvolver algoritmos de aprendizagem profunda que consigam analisar as Árvores de Sintaxe Abstrata (ASTs) das quase um milhão de submissões enviadas desde o lançamento do Exercism, em 2013. Uma ferramenta destas poderia detetar padrões comuns e os comentários dos mentores associados a esses padrões. A curto prazo, o nosso objetivo é usar análise estática para determinar que feedback pode ser dado com base nos erros mais repetidos que os mentores observam.

O projeto divide-se, de forma geral, nas seguintes áreas:

  1. Alterações ao produto: Precisamos de perceber como é que esta análise automatizada se encaixa na interface de mentoria atual, como comunicamos este feedback (mensagens de sistema, um "bot", etc.) e, depois, implementar isto no site do Exercism.
  2. Infraestrutura: Vamos conceber e construir a infraestrutura capaz de suportar, de forma eficiente, a execução de análise estática em várias linguagens.
  3. Protótipo de análise estática: Desenvolver um analisador de exemplo que aprove automaticamente boas soluções para o Two-fer de Ruby e documentar este processo, para que a comunidade em geral possa contribuir.

Pretendemos lançar o protótipo inicial em meados de 2019. Assim que tivermos as bases prontas, contamos alargá-lo a outras linguagens além de Ruby e a outros exercícios além do Two-fer. Embora só tenhamos o framework pronto para integrar outras linguagens e exercícios no site depois de avançarmos com o protótipo, se queres começar já a escrever analisadores para as tuas linguagens e exercícios preferidos, não há razão para esperar! Abre um issue no repositório GitHub deste projeto e diz-nos o que gostarias de fazer.

Estamos muito entusiasmados por trabalhar com outras pessoas da comunidade do Exercism que já usam análise estática para ajudar na mentoria, como tehsphinx e bitfield, que desenvolveram uma ferramenta de análise estática para mentores do percurso de Go. A forma como essa ferramenta levou o percurso de uma enorme lista de espera a ser um dos percursos de linguagem mais rápidos a responder no Exercism mostra o impacto que o apoio automatizado à mentoria pode ter.

Nas próximas semanas, vamos explicar melhor estes primeiros passos fundamentais e como tudo vai funcionar.

Teremos todo o gosto em responder às tuas perguntas na secção de comentários abaixo! :)

07 de fevereiro de 2019 · Foi útil?