Alguns trechos que gosto de leituras que fiz para o meu mestrado (alumas entraram na dissertação, outras não).
Há uma diferença fundamental entre ensinar programação para alunos de ciência da computação e para alunos de arte e design. Espera-se que os estudantes de ciência da computação se tornem programadores profissionais que poderão programar aplicações de missão crítica no futuro. Estudantes de arte e design, por outro lado, são usuários de programação que precisam da programação para criar seus artefatos exploratórios, experimentais e artísticos. Não estão necessariamente interessados nos meandros da linguagem por si só. Talvez uma boa analogia seja a diferença entre ensinar uma língua estrangeira a um linguista e a um viajante. O viajante precisa da linguagem para poder se comunicar com as pessoas, explorar o novo ambiente e para sobreviver. O linguista precisa entender a sintaxe, a semântica e a pragmática da linguagem, mesmo que nunca precise se comunicar com um falante nativo dessa língua. (AMIRI, 2011, p.205)
Como matemáticos, cientistas da computação usam linguagens formais para indicar ideias (especificamente computações). Como construtores*, projetam algo, reunindo componentes e avaliando as vantagens e desvantagens entre alternativas. Como cientistas, observam o comportamento de sistemas complexos, formando hipóteses e testando previsões. (DOWNEY, 2015)
*
No original ele diz engenheiros, mas eu como arquiteto resolvi entortar a tradução para construtores :)
Na minha opinião, todo artista utilizando software deveria ser alfabetizado em software. O que alfabetização significa no contexto do software? Alan Kay, um inovador no pensamento sobre o computador como um meio, escreveu: A habilidade de ‘ler’ um meio significa que você pode acessar os materiais e as ferramentas criadas pelos outros. A habilidade de ‘escrever’ em um meio significa que você pode gerar materiais e ferramentas para os outros. Você precisa dos dois para ser alfabetizado. Na escrita, as ferramentas de que você precisa são retóricas; elas demonstram e convencem. Na escrita computacional, as ferramentas que você gera são processos; elas simulam e decidem — Casey Reas, em tradução de Patrícia Oakim.
Patrícia Oakim traduz e ressalta trecho de Schachman (2012) que afirma estar surgindo uma nova geração de programadores alternativos com diferentes interesses:
…esses programadores “alternativos” são pessoas que não se identificam como programadores, mas que regularmente programam computadores para alcançar seus objetivos. Programadores alternativos podem incluir músicos, performers, escritores, artistas visuais, designers, cientistas e ativistas.
AMIRI, Faramarz. Programming as Design: The Role of Programming in Interactive Media Curriculum in Art and Design. International Journal of Art & Design Education, v. 30, n. 2, p. 200–210, June 2011. Disponível em: https://onlinelibrary.wiley.com/doi/epdf/10.1111/j.1476-8070.2011.01680.x. Acesso em: 29 dez. 2018.
DOWNEY, Allen B. Think Python: How to Think Like a Computer Scientist. 2nd ed. Sebastopol: O’Reilly, 2015.
__. Pense em Python : Pense como um cientista da computação. Tradução de Sheila Gomes. São Paulo, Novatec, 2016.
OAKIM, Patricia, Arte feita em código: um estudo de caso sobre a linguagem de programação Processing e sua utilização por artistas-programadores, São Paulo, Intermeios, 2019.
SCHACHMAN, Toby. Alternative programming interfaces for alternative programmers. ACM international symposium on New ideas, new paradigms, and reflections on programming and software, p.1N10, 2012. Anais eletrônicos. Disponível em < http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.476.6506&rep=rep1&type=pdf>.