Sugerir melhorias nos exercícios

O que deves ter em conta antes de sugerir melhorias nos exercícios


Então encontraste algo que gostarias de melhorar num exercício. Antes de mais, obrigado por te importares e por arranjares tempo para nos dizeres! 💙

Ao alterar um exercício, há algumas coisas a ter em conta, e são ligeiramente diferentes para os Exercícios de Aprendizagem (os que ensinam tópicos do plano de estudos) e para os Exercícios de Prática (os restantes). Abaixo explicamos essas diferenças.

No entanto, antes de mais, há um par de coisas genéricas a ter em conta.

Alterar um exercício tem consequências

Há bastantes consequências em alterar um exercício:

  1. Acrescentar novos testes pode fazer com que soluções existentes deixem de funcionar. Isto tem como consequência tornar obsoleto o trabalho de milhares de pessoas, o que é frustrante para elas se os testes extra não estiverem a destacar nenhum bug existente.
  2. Temos de voltar a testar o trabalho de toda a gente, o que tem um custo ambiental e financeiro.
  3. Um ou mais responsáveis têm de arranjar tempo para rever as alterações, o que significa que não conseguem fazer outras melhorias no percurso durante esse período.

Por todas estas razões, temos o cuidado de só alterar exercícios quando existe um benefício claro e identificável.

Evita caminhar para a entropia

O objetivo dos conjuntos de testes dos exercícios não é serem exaustivos em relação a todos os casos possíveis. Os nossos exercícios não são software de produção, nem estão concebidos para imitar casos de uso do mundo real. Estão concebidos como problemas de treino para te ajudarem a ganhar fluência numa linguagem de programação. Por isso, evitamos deliberadamente tentar abranger todos os casos limite, forçar muita validação de dados de entrada, ou outras preocupações do género do mundo real. Se a melhoria que sugeres serve para apanhar um caso limite ou para verificar a validação de dados de entrada, é pouco provável que seja aceite, a não ser que faça uma diferença substancial no exercício.

Exercícios de Aprendizagem

Os Exercícios de Aprendizagem são concebidos com um único objetivo: ensinar conceitos. Todas as alterações a um exercício serão consideradas, antes de mais, em função de melhorarem ou não o ensino dos conceitos.

Os Exercícios de Aprendizagem (sobretudo) não são concebidos para serem exaustivos nos seus testes. Também podem ser muitas vezes um pouco artificiais ou rebuscados, para evitar usar conceitos que o estudante ainda não aprendeu, ou para não sobrecarregar o estudante.

Se a alteração que sugeres puder desviar a atenção da aprendizagem do conceito, provavelmente será rejeitada. Se a alteração tornar a aprendizagem mais fácil, será seriamente considerada. Se ficar algures no meio, pode ser aceite, mas é pouco provável que seja prioritária.

Exercícios de Prática

A principal coisa a compreender sobre os Exercícios de Prática é que quase todos vivem num repositório central (conhecido como "Problem Specifications"). Fazer uma alteração a um exercício tem, por isso, efeitos em cadeia em todos os percursos. Isso significa que uma boa alteração é especialmente poderosa, pois ajudará todas as linguagens. Mas também aumenta o esforço da alteração, porque vários responsáveis de diferentes percursos têm de concordar com a alteração para que esta seja aceite, e depois os responsáveis de cada linguagem têm de trazer as alterações para os seus percursos.

As alterações aos exercícios também podem fazer com que os conceitos a que estão ligados nos planos de estudos fiquem mais confusos, ou que os exercícios precisem de funcionalidades extra para serem resolvidos, o que altera o ponto em que ficam desbloqueados. Isto também tem de ser considerado em todos os percursos antes de as alterações serem aceites.

Embora tenhamos mecanismos para que apenas alguns percursos tenham determinados casos de teste, tendemos a desaconselhá-lo, pois essa divergência pode gerar confusão tanto nos responsáveis como nos estudantes. Por isso, ao propores alterações aos Exercícios de Prática, tem em conta o panorama geral em todos os percursos.

Como conseguir que as tuas alterações sejam aceites

Embora haja muitas razões para não aceitarmos sugestões, muitas vezes as pessoas têm ideias excelentes que aceitamos!

Também estamos quase sempre abertos a alterações de redação que tragam mais clareza, especialmente nos Exercícios de Aprendizagem.

Para dares às tuas sugestões a melhor hipótese de serem aprovadas, escreve-as de forma a mostrares que consideraste o seguinte:

  • A melhoria concreta que esta alteração traz (de preferência com exemplos de código do que a tua alteração permite ou impede).
  • O impacto nas soluções existentes e porque vale a pena.
  • Quaisquer alterações aos conceitos ensinados ou utilizados.
  • A compreensão de porque as coisas poderão ser como são. (Lê o nosso artigo sobre a cerca de Chesterton.)

E lembra-te de expressar opiniões como opiniões e factos como factos. Isso costuma levar às conversas mais produtivas.

Obrigado mais uma vez por arranjares tempo para fazer uma sugestão e por leres este documento!