Tenho estudado Advanced Placement Computer Science no último ano no ensino médio. Parece que somos ensinados simplesmente a memorizar códigos e funções e não como ser engenhoso e eficiente no uso de documentação e afins.
Na prática, imagino que muitos (se não todos) trabalhos de programação permitiriam que você folheasse a documentação, revisasse o código passado e o código de outras pessoas, essencialmente fazendo o que meu professor consideraria "trapaça".
Embora eu concorde que os conceitos básicos sejam essenciais para memorizar (em qualquer assunto), me parece supérfluo e impraticável fazer um exame com caneta e papel para uma aula de ciências, especialmente quando praticamente você teria um compilador, depurador, referência manuais e toda a Internet a que se refere em qualquer situação de trabalho do mundo real.
Por que o ensino de CS é focado na memorização de código e funções, em vez de ensinar habilidades úteis, incluindo como usar e interpretar documentação, código de exemplo, depurador e outros?