SlideShare uma empresa Scribd logo
*Codificação Criativa*
com Swift Playgrounds
Frederick van Amstel @usabilidoido
Escola de Arquitetura e Design - PUCPR
www.usabilidoido.com.br
O que é codificação criativa?
• Utilização de linguagens de programação
existentes para fins expressivos ao invés de
funcionais
• Novas linguagens de programação para arte e
design
• Ambiente de programação para iniciantes
• Hardware para instalações artísticas
Processing (2001), Casey Reas e Benjamin Fry.
XCode interactive playgrounds (2016), Chris Lattner.
Artigo Learnable Programming (Bret Victor, 2012) que inspirou
Chris Lattner a criar o modo playgrounds.
Será que o playgrounds é bom
para codificação criativa?
Práticas de codificação
criativa identificadas na
literatura
1 - Escrever código tal como esboçar
2 - Fazer bricolagem com código
3 - Expressar sentimentos e ideias
4 - Projetar performances emergentes
5 - Cometer erros felizes de programação
6 - Implementar aleatoreidade
7 - Apreciar a estética do código
Práticas de codificação
criativa identificadas na
Apple Developer
Academy PUCPR
Playgrounds feitos por estudantes da Apple Developer Academy
PUCPR submetidos para ganhar uma bolsa para WWDC 2017.
Questionário sobre práticas de codificação criativa na Apple
Developer Academy.
Vídeos, relatório de reflexão e conversa de feedback.
Tabela de evidências sobre presença das práticas de codificação
criativa durante o 2017' WWDC Scholarship Challenge.
Presença de práticas
Práticas de Codificação Criativa Com bolsa Sem bolsa
Escrever código tal como esboçar 50% 58%
Fazer bricolagem com código 50% 46%
Expressar sentimentos e ideias 38% 54%
Projetar performances emergentes 50% 29%
Cometer erros felizes de programação 38% 54%
Implementar aleatoreidade 50% 33%
Apreciar a estética do código 50% 54%
Avaliação do playgrounds
Práticas de Codificação Criativa Suporte
Escrever código tal como esboçar Bom
Fazer bricolagem com código Médio
Expressar sentimentos e ideias Médio
Projetar performances emergentes Ruim
Cometer erros felizes de programação Médio
Implementar aleatoreidade Ruim
Apreciar a estética do código Bom
Conclusões
• Playgrounds serve para codificação criativa,
porém, ainda precisa melhorar muito
• A linguagem Swift é melhor do que a linguagem
Java para codificação criativa
• O foco em software proprietário da Apple não
estimula a comunidade de desenvolvedores a
compartilhar código generosamente
Referência
• Esta apresentação está baseada em um artigo que
se encontra em avaliação por um periódico
• A autoria do artigo é de Frederick M.C. van
Amstel, Fabio Vinicius Binder, Thiago Schaedler
Uhlmann, Sheila Reinehr e Andreia Malucelli.
• Uma versão anterior deste artigo foi rejeitada no
Simpósio Brasileiro de Engenharia de Software
Obrigado!
Frederick van Amstel @usabilidoido
Escola de Arquitetura e Design - PUCPR
www.usabilidoido.com.br

Mais conteúdo relacionado

Semelhante a Codificação Criativa com Swift Playgrounds

III CAFÉ e CODE - PROVOCAÇÕES DO MESTRE
III CAFÉ e CODE - PROVOCAÇÕES DO MESTRE III CAFÉ e CODE - PROVOCAÇÕES DO MESTRE
III CAFÉ e CODE - PROVOCAÇÕES DO MESTRE Cloves da Rocha
 
Design de Interação em Produtos Eletrônicos
Design de Interação em Produtos EletrônicosDesign de Interação em Produtos Eletrônicos
Design de Interação em Produtos EletrônicosEdyd B. Junges
 
Design de Interação em Produtos Eletrônicos
Design de Interação em Produtos EletrônicosDesign de Interação em Produtos Eletrônicos
Design de Interação em Produtos EletrônicosUTFPR
 
TDC2018SP | Trilha Machine Learning - Automacao de Machine Learning - Do data...
TDC2018SP | Trilha Machine Learning - Automacao de Machine Learning - Do data...TDC2018SP | Trilha Machine Learning - Automacao de Machine Learning - Do data...
TDC2018SP | Trilha Machine Learning - Automacao de Machine Learning - Do data...tdc-globalcode
 
Apresentação Scratch
Apresentação ScratchApresentação Scratch
Apresentação ScratchMichele Felkl
 
[INFNET] Criando layouts em PSD pensando no front-end e back-end
[INFNET] Criando layouts em PSD pensando no front-end e back-end[INFNET] Criando layouts em PSD pensando no front-end e back-end
[INFNET] Criando layouts em PSD pensando no front-end e back-end@cristianoweb
 
Desenvolvimento de jogos - O que você precisa saber
Desenvolvimento de jogos - O que você precisa saberDesenvolvimento de jogos - O que você precisa saber
Desenvolvimento de jogos - O que você precisa saberKleber da Silva
 
Desenvolvendo Jogos com Scratch
Desenvolvendo Jogos com ScratchDesenvolvendo Jogos com Scratch
Desenvolvendo Jogos com ScratchDiogo Padilha
 
Porque Xamarin.Forms é Incrivel - MVPConfLatam2019
Porque Xamarin.Forms é Incrivel - MVPConfLatam2019Porque Xamarin.Forms é Incrivel - MVPConfLatam2019
Porque Xamarin.Forms é Incrivel - MVPConfLatam2019Thiago Bertuzzi
 
Curso de progrmação para crianças e adolescentes
Curso de progrmação para crianças e adolescentesCurso de progrmação para crianças e adolescentes
Curso de progrmação para crianças e adolescentesRicardo Henrique Roson
 
Resumo do TheDeveloperConference 2014 - POA
Resumo do TheDeveloperConference 2014 - POAResumo do TheDeveloperConference 2014 - POA
Resumo do TheDeveloperConference 2014 - POARafael Pacheco
 
Desenvolvendo APPs para múltiplas resoluções
Desenvolvendo APPs para múltiplas resoluçõesDesenvolvendo APPs para múltiplas resoluções
Desenvolvendo APPs para múltiplas resoluçõestalkitbr
 

Semelhante a Codificação Criativa com Swift Playgrounds (20)

III CAFÉ e CODE - PROVOCAÇÕES DO MESTRE
III CAFÉ e CODE - PROVOCAÇÕES DO MESTRE III CAFÉ e CODE - PROVOCAÇÕES DO MESTRE
III CAFÉ e CODE - PROVOCAÇÕES DO MESTRE
 
Design de Interação em Produtos Eletrônicos
Design de Interação em Produtos EletrônicosDesign de Interação em Produtos Eletrônicos
Design de Interação em Produtos Eletrônicos
 
Design de Interação em Produtos Eletrônicos
Design de Interação em Produtos EletrônicosDesign de Interação em Produtos Eletrônicos
Design de Interação em Produtos Eletrônicos
 
Microsoft C#
Microsoft C#Microsoft C#
Microsoft C#
 
PHP Anti Patterns
PHP Anti PatternsPHP Anti Patterns
PHP Anti Patterns
 
Apresentação TCC Games
Apresentação TCC GamesApresentação TCC Games
Apresentação TCC Games
 
TDC2018SP | Trilha Machine Learning - Automacao de Machine Learning - Do data...
TDC2018SP | Trilha Machine Learning - Automacao de Machine Learning - Do data...TDC2018SP | Trilha Machine Learning - Automacao de Machine Learning - Do data...
TDC2018SP | Trilha Machine Learning - Automacao de Machine Learning - Do data...
 
Condingdojo
CondingdojoCondingdojo
Condingdojo
 
Apresentação Scratch
Apresentação ScratchApresentação Scratch
Apresentação Scratch
 
[INFNET] Criando layouts em PSD pensando no front-end e back-end
[INFNET] Criando layouts em PSD pensando no front-end e back-end[INFNET] Criando layouts em PSD pensando no front-end e back-end
[INFNET] Criando layouts em PSD pensando no front-end e back-end
 
[Ci2015] sim rva
[Ci2015] sim  rva[Ci2015] sim  rva
[Ci2015] sim rva
 
Desenvolvimento de jogos - O que você precisa saber
Desenvolvimento de jogos - O que você precisa saberDesenvolvimento de jogos - O que você precisa saber
Desenvolvimento de jogos - O que você precisa saber
 
Desenvolvendo Jogos com Scratch
Desenvolvendo Jogos com ScratchDesenvolvendo Jogos com Scratch
Desenvolvendo Jogos com Scratch
 
Qualidade no desenvolvimento de softwre
Qualidade no desenvolvimento de softwreQualidade no desenvolvimento de softwre
Qualidade no desenvolvimento de softwre
 
Porque Xamarin.Forms é Incrivel - MVPConfLatam2019
Porque Xamarin.Forms é Incrivel - MVPConfLatam2019Porque Xamarin.Forms é Incrivel - MVPConfLatam2019
Porque Xamarin.Forms é Incrivel - MVPConfLatam2019
 
Curso de progrmação para crianças e adolescentes
Curso de progrmação para crianças e adolescentesCurso de progrmação para crianças e adolescentes
Curso de progrmação para crianças e adolescentes
 
Lie
LieLie
Lie
 
Resumo do TheDeveloperConference 2014 - POA
Resumo do TheDeveloperConference 2014 - POAResumo do TheDeveloperConference 2014 - POA
Resumo do TheDeveloperConference 2014 - POA
 
Gamification Reduzida
Gamification ReduzidaGamification Reduzida
Gamification Reduzida
 
Desenvolvendo APPs para múltiplas resoluções
Desenvolvendo APPs para múltiplas resoluçõesDesenvolvendo APPs para múltiplas resoluções
Desenvolvendo APPs para múltiplas resoluções
 

Mais de UTFPR

Cascading oppression in design
Cascading oppression in designCascading oppression in design
Cascading oppression in designUTFPR
 
Inteligência artificial e o trabalho de design
Inteligência artificial e o trabalho de designInteligência artificial e o trabalho de design
Inteligência artificial e o trabalho de designUTFPR
 
Expanding the design object
Expanding the design objectExpanding the design object
Expanding the design objectUTFPR
 
Creating possibilities for service design innovation
Creating possibilities for service design innovationCreating possibilities for service design innovation
Creating possibilities for service design innovationUTFPR
 
Contradiction-driven design
Contradiction-driven designContradiction-driven design
Contradiction-driven designUTFPR
 
Design expansivo: pensar o possível para fazer o impossível
Design expansivo: pensar o possível para fazer o impossívelDesign expansivo: pensar o possível para fazer o impossível
Design expansivo: pensar o possível para fazer o impossívelUTFPR
 
Metacriatividade: criatividade sobre criatividade
Metacriatividade: criatividade sobre criatividadeMetacriatividade: criatividade sobre criatividade
Metacriatividade: criatividade sobre criatividadeUTFPR
 
Gestão do conhecimento na pesquisa de experiências
Gestão do conhecimento na pesquisa de experiênciasGestão do conhecimento na pesquisa de experiências
Gestão do conhecimento na pesquisa de experiênciasUTFPR
 
Jogos Surrealistas e Inteligência Artificial
Jogos Surrealistas e Inteligência ArtificialJogos Surrealistas e Inteligência Artificial
Jogos Surrealistas e Inteligência ArtificialUTFPR
 
El hacer como quehacer: notas para un diseño libre
El hacer como quehacer: notas para un diseño libreEl hacer como quehacer: notas para un diseño libre
El hacer como quehacer: notas para un diseño libreUTFPR
 
Expressando a posicionalidade do cria-corpo
Expressando a posicionalidade do cria-corpoExpressando a posicionalidade do cria-corpo
Expressando a posicionalidade do cria-corpoUTFPR
 
Pensamento visual expansivo
Pensamento visual expansivoPensamento visual expansivo
Pensamento visual expansivoUTFPR
 
O segredo da criatividade no design
O segredo da criatividade no designO segredo da criatividade no design
O segredo da criatividade no designUTFPR
 
Por que pesquisar e não somente fazer design?
Por que pesquisar e não somente fazer design?Por que pesquisar e não somente fazer design?
Por que pesquisar e não somente fazer design?UTFPR
 
Making work visible in the theater of service design
Making work visible in the theater of service designMaking work visible in the theater of service design
Making work visible in the theater of service designUTFPR
 
Can designers change systemic oppression?
Can designers change systemic oppression?Can designers change systemic oppression?
Can designers change systemic oppression?UTFPR
 
Design contra opressão
Design contra opressãoDesign contra opressão
Design contra opressãoUTFPR
 
O papel da teoria na pesquisa de experiências
O papel da teoria na pesquisa de experiênciasO papel da teoria na pesquisa de experiências
O papel da teoria na pesquisa de experiênciasUTFPR
 
Diseño y la colonialidad del hacer
Diseño y la colonialidad del hacerDiseño y la colonialidad del hacer
Diseño y la colonialidad del hacerUTFPR
 
Problematizando a experiência do usuário (ExU)
Problematizando a experiência do usuário (ExU)Problematizando a experiência do usuário (ExU)
Problematizando a experiência do usuário (ExU)UTFPR
 

Mais de UTFPR (20)

Cascading oppression in design
Cascading oppression in designCascading oppression in design
Cascading oppression in design
 
Inteligência artificial e o trabalho de design
Inteligência artificial e o trabalho de designInteligência artificial e o trabalho de design
Inteligência artificial e o trabalho de design
 
Expanding the design object
Expanding the design objectExpanding the design object
Expanding the design object
 
Creating possibilities for service design innovation
Creating possibilities for service design innovationCreating possibilities for service design innovation
Creating possibilities for service design innovation
 
Contradiction-driven design
Contradiction-driven designContradiction-driven design
Contradiction-driven design
 
Design expansivo: pensar o possível para fazer o impossível
Design expansivo: pensar o possível para fazer o impossívelDesign expansivo: pensar o possível para fazer o impossível
Design expansivo: pensar o possível para fazer o impossível
 
Metacriatividade: criatividade sobre criatividade
Metacriatividade: criatividade sobre criatividadeMetacriatividade: criatividade sobre criatividade
Metacriatividade: criatividade sobre criatividade
 
Gestão do conhecimento na pesquisa de experiências
Gestão do conhecimento na pesquisa de experiênciasGestão do conhecimento na pesquisa de experiências
Gestão do conhecimento na pesquisa de experiências
 
Jogos Surrealistas e Inteligência Artificial
Jogos Surrealistas e Inteligência ArtificialJogos Surrealistas e Inteligência Artificial
Jogos Surrealistas e Inteligência Artificial
 
El hacer como quehacer: notas para un diseño libre
El hacer como quehacer: notas para un diseño libreEl hacer como quehacer: notas para un diseño libre
El hacer como quehacer: notas para un diseño libre
 
Expressando a posicionalidade do cria-corpo
Expressando a posicionalidade do cria-corpoExpressando a posicionalidade do cria-corpo
Expressando a posicionalidade do cria-corpo
 
Pensamento visual expansivo
Pensamento visual expansivoPensamento visual expansivo
Pensamento visual expansivo
 
O segredo da criatividade no design
O segredo da criatividade no designO segredo da criatividade no design
O segredo da criatividade no design
 
Por que pesquisar e não somente fazer design?
Por que pesquisar e não somente fazer design?Por que pesquisar e não somente fazer design?
Por que pesquisar e não somente fazer design?
 
Making work visible in the theater of service design
Making work visible in the theater of service designMaking work visible in the theater of service design
Making work visible in the theater of service design
 
Can designers change systemic oppression?
Can designers change systemic oppression?Can designers change systemic oppression?
Can designers change systemic oppression?
 
Design contra opressão
Design contra opressãoDesign contra opressão
Design contra opressão
 
O papel da teoria na pesquisa de experiências
O papel da teoria na pesquisa de experiênciasO papel da teoria na pesquisa de experiências
O papel da teoria na pesquisa de experiências
 
Diseño y la colonialidad del hacer
Diseño y la colonialidad del hacerDiseño y la colonialidad del hacer
Diseño y la colonialidad del hacer
 
Problematizando a experiência do usuário (ExU)
Problematizando a experiência do usuário (ExU)Problematizando a experiência do usuário (ExU)
Problematizando a experiência do usuário (ExU)
 

Codificação Criativa com Swift Playgrounds

  • 1. *Codificação Criativa* com Swift Playgrounds Frederick van Amstel @usabilidoido Escola de Arquitetura e Design - PUCPR www.usabilidoido.com.br
  • 2. O que é codificação criativa? • Utilização de linguagens de programação existentes para fins expressivos ao invés de funcionais • Novas linguagens de programação para arte e design • Ambiente de programação para iniciantes • Hardware para instalações artísticas
  • 3. Processing (2001), Casey Reas e Benjamin Fry.
  • 4. XCode interactive playgrounds (2016), Chris Lattner.
  • 5. Artigo Learnable Programming (Bret Victor, 2012) que inspirou Chris Lattner a criar o modo playgrounds.
  • 6. Será que o playgrounds é bom para codificação criativa?
  • 7. Práticas de codificação criativa identificadas na literatura
  • 8. 1 - Escrever código tal como esboçar
  • 9. 2 - Fazer bricolagem com código
  • 10. 3 - Expressar sentimentos e ideias
  • 11. 4 - Projetar performances emergentes
  • 12. 5 - Cometer erros felizes de programação
  • 13. 6 - Implementar aleatoreidade
  • 14. 7 - Apreciar a estética do código
  • 15. Práticas de codificação criativa identificadas na Apple Developer Academy PUCPR
  • 16. Playgrounds feitos por estudantes da Apple Developer Academy PUCPR submetidos para ganhar uma bolsa para WWDC 2017.
  • 17. Questionário sobre práticas de codificação criativa na Apple Developer Academy.
  • 18. Vídeos, relatório de reflexão e conversa de feedback.
  • 19. Tabela de evidências sobre presença das práticas de codificação criativa durante o 2017' WWDC Scholarship Challenge.
  • 20. Presença de práticas Práticas de Codificação Criativa Com bolsa Sem bolsa Escrever código tal como esboçar 50% 58% Fazer bricolagem com código 50% 46% Expressar sentimentos e ideias 38% 54% Projetar performances emergentes 50% 29% Cometer erros felizes de programação 38% 54% Implementar aleatoreidade 50% 33% Apreciar a estética do código 50% 54%
  • 21. Avaliação do playgrounds Práticas de Codificação Criativa Suporte Escrever código tal como esboçar Bom Fazer bricolagem com código Médio Expressar sentimentos e ideias Médio Projetar performances emergentes Ruim Cometer erros felizes de programação Médio Implementar aleatoreidade Ruim Apreciar a estética do código Bom
  • 22. Conclusões • Playgrounds serve para codificação criativa, porém, ainda precisa melhorar muito • A linguagem Swift é melhor do que a linguagem Java para codificação criativa • O foco em software proprietário da Apple não estimula a comunidade de desenvolvedores a compartilhar código generosamente
  • 23. Referência • Esta apresentação está baseada em um artigo que se encontra em avaliação por um periódico • A autoria do artigo é de Frederick M.C. van Amstel, Fabio Vinicius Binder, Thiago Schaedler Uhlmann, Sheila Reinehr e Andreia Malucelli. • Uma versão anterior deste artigo foi rejeitada no Simpósio Brasileiro de Engenharia de Software
  • 24. Obrigado! Frederick van Amstel @usabilidoido Escola de Arquitetura e Design - PUCPR www.usabilidoido.com.br