A prática educacional de Dojo, também conhecida como Coding Dojo, é um método colaborativo e hands-on de ensino de programação e desenvolvimento de software. Geralmente realizada em grupo, essa abordagem envolve desafios de codificação em que os participantes trabalham juntos para resolver problemas utilizando programação. O foco principal está na aprendizagem prática, na troca de conhecimento entre os participantes e na melhoria contínua das habilidades de programação. Os desafios podem variar em complexidade e escopo, abrangendo desde tarefas simples até projetos mais elaborados. O objetivo é promover o aprendizado ativo, a resolução criativa de problemas e a construção colaborativa de soluções, proporcionando um ambiente propício ao crescimento e à aquisição de competências na área de tecnologia.
Objetivos
O principal objetivo desta prática é desenvolver habilidades de resolução de problemas nos estudantes, que vão aprimorar suas capacidades de abordar desafios de programação de maneira sistemática, identificando problemas, definindo estratégias e implementando soluções eficazes. Outros objetivos são:
a) promover a cooperação entre os estudantes, incentivando-os a trabalhar em equipe para encontrar soluções para os desafios propostos. Isso fortalece suas habilidades de comunicação e trabalho em grupo;
b) estimular a criatividade na programação através de problemas diversos e projetos práticos. Os estudantes serão encorajados a explorar abordagens criativas na escrita de código, resultando em soluções inovadoras e diferentes perspectivas para resolver os desafios;
c) promover a aprendizagem mútua com a troca de conhecimentos entre os estudantes, permitindo que compartilhem suas experiências, técnicas e soluções;
d) construir confiança na resolução de problemas ao enfrentar desafios progressivamente mais difíceis no contexto do Dojo, assim ganham confiança em sua capacidade de lidar com problemas complexos preparando-os para enfrentar desafios reais na área profissional;
e) incentivar a aprendizagem autodirigida buscando recursos externos, pesquisando e aprendendo também por conta própria;
f) aprimorar a habilidade de análise crítica para aperfeiçoar suas habilidades, garantindo que suas soluções sejam não apenas funcionais, mas também eficientes;
g) preparar para desafios do mercado de trabalho com desafios do mundo real proporcionando uma base sólida de habilidades práticas e competências necessárias.
Requisitos
Espaço
Um espaço de sala de aula ou laboratório de informática com mesas e cadeiras para os participantes é essencial. Os computadores devem estar prontos para uso, com os softwares de programação instalados. Uma tela grande ou um projetor podem ser usados para exibir o código sendo desenvolvido e facilitar a discussão.
Tempo
As sessões de Dojo podem variar em duração, mas geralmente duram de 1 a 2 horas. Para sessões mais curtas, como em ambientes escolares, é possível realizar desafios menores. Para sessões mais longas, podem ser abordados problemas mais complexos ou projetos maiores.
Participantes
O grupo de estudantes deve ser composto por pessoas com conhecimentos básicos em programação. A diversidade de níveis de habilidade pode ser benéfica, já que os participantes podem aprender uns com os outros. Grupos de até 10 pessoas podem funcionar bem para manter a colaboração e a interação.
Temática
Incentive um ambiente de colaboração e respeito, em que os estudantes se sintam à vontade para compartilhar suas ideias, fazer perguntas e aprender uns com os outros. Lembrando que a flexibilidade é importante. Os requisitos podem ser adaptados para melhor atender às necessidades e limitações do grupo de estudantes, bem como ao ambiente disponível.
Mediação
Um facilitador ou mediador é necessário para guiar a sessão, apresentar os desafios, moderar a discussão e auxiliar os participantes quando necessário. O facilitador não precisa ser um especialista absoluto, mas deve ter conhecimento sólido em programação e ser capaz de orientar e apoiar os estudantes.
Materiais de suporte
Será necessário um conjunto de desafios ou problemas de programação para os estudantes resolverem em grupo. Esses desafios podem variar em dificuldade e escopo. Além disso, materiais de apoio, como documentações, tutoriais ou links relevantes, podem ser fornecidos para que os estudantes se orientem durante a resolução dos desafios. Ferramentas de Desenvolvimento: certifique-se de que os computadores tenham os ambientes de desenvolvimento e linguagens de programação necessários instalados. Plataformas populares, como Python, Java, JavaScript ou C++, podem ser usadas, dependendo das preferências e dos conhecimentos dos estudantes. Acesso à Internet: ter acesso à internet pode ser útil para pesquisar soluções, documentação e recursos adicionais durante a sessão.
Procedimentos
A prática educacional Dojo, é uma abordagem interativa e colaborativa para o ensino e a aprendizagem de programação e desenvolvimento de software. Aqui está uma visão geral de como ela funciona:
Aplicações
Algumas das aplicações possíveis incluem:
desenvolvimento de habilidades de programação: para aprimorar as habilidades de codificação na resolução de desafios de programação que variam em complexidade;
trabalho em equipe e colaboração: a prática do Dojo incentiva a colaboração entre os estudantes, ajudando-os a desenvolver habilidades de trabalho em equipe, comunicação eficaz e compartilhamento de conhecimento.
Resolução de problemas práticos: os desafios de programação propostos durante as sessões de Dojo podem ser projetados para imitar problemas reais encontrados na indústria. Isso prepara os estudantes para enfrentar desafios do mundo real em suas futuras carreiras.
Aprendizado ativo e engajamento: o formato hands-on do Dojo mantém os estudantes engajados e ativamente envolvidos no processo de aprendizado. Isso pode aumentar a retenção de informações e a compreensão dos conceitos.
Familiarização com ferramentas e linguagens de programação: através da prática do Dojo, os estudantes podem se familiarizar com diferentes linguagens de programação e ferramentas de desenvolvimento, permitindo-lhes explorar uma variedade de tecnologias.
Preparação para entrevistas técnicas: muitas entrevistas de emprego para cargos de tecnologia envolvem desafios de programação. Participar de sessões de Dojo pode ajudar os estudantes a desenvolver confiança e habilidades para lidar com essas entrevistas.
Aprendizado contínuo e autodidatismo: incentiva os estudantes a buscar recursos externos, pesquisar soluções e aprender por conta própria. Isso os prepara para continuar aprendendo e se atualizando no campo em constante evolução da tecnologia.
Networking e comunidade: permite que os estudantes se conectem com colegas com interesses semelhantes. Isso pode levar a oportunidades de networking, colaborações futuras e compartilhamento de oportunidades profissionais.
Desenvolvimento de pensamento algorítmico: estimulam os estudantes a desenvolver habilidades de pensamento algorítmico, ajudando-os a abordar problemas de maneira sistemática e eficiente.
Construção de portfólio: resolver uma variedade de desafios, os estudantes podem construir um portfólio diversificado de projetos e soluções, o que pode ser benéfico para suas carreiras futuras.
Essas aplicações demonstram como a prática educacional Dojo pode ser uma ferramenta valiosa na educação profissional, preparando os estudantes para o sucesso na indústria de tecnologia por meio de aprendizado prático, colaborativo e centrado no aluno.
Exemplo
Uma professora de educação profissional na área de Tecnologia de Informação quer implementar a prática de Dojo para melhorar as habilidades técnicas e competências colaborativas dos estudantes na disciplina de Desenvolvimento Web do curso Técnico em Informática.
Objetivo: aprimorar as habilidades de codificação HTML e CSS dos estudantes, privilegiando as boas práticas de desenvolvimento web e promovendo a colaboração e o aprendizado prático.
Preparação: a professora seleciona um conjunto de desafios de programação relacionados ao desenvolvimento web usando HTML e CSS. Os desafios podem abranger desde a criação de layouts simples até a implementação de recursos mais avançados. Divide a turma em grupos de até 8 estudantes, tentando misturar níveis de habilidade.
Sessão de Dojo: o professor apresenta um desafio de programação aos grupos. Por exemplo, “Criar uma página de perfil pessoal com um layout responsivo usando HTML e CSS”. Os grupos têm 30 minutos para trabalhar no desafio. Durante esse tempo, um estudante atua como condutor, enquanto os outros contribuem com ideias e feedback.
Desenvolvimento e colaboração: os estudantes colaboram para criar o código HTML e CSS necessário para o desafio. Eles discutem abordagens, fazem pesquisas e experimentam diferentes soluções. O condutor escreve o código enquanto os outros membros do grupo oferecem sugestões, verificam a sintaxe e compartilham insights.
Testes e depuração: os estudantes testam sua solução em diferentes dispositivos e navegadores para garantir que o layout seja responsivo e funcione corretamente. Eles trabalham juntos para identificar e corrigir quaisquer erros ou problemas de exibição.
Apresentação e discussão: cada grupo apresenta sua solução para a turma. O condutor explica as decisões de design, os desafios enfrentados e como resolveram problemas específicos. A turma faz perguntas, oferece feedback construtivo e compartilha suas próprias abordagens.
Feedback geral e reflexão: o professor conduz uma discussão geral sobre os desafios, destacando as lições aprendidas, as melhores práticas identificadas e as estratégias eficazes utilizadas pelos grupos. Os estudantes refletem sobre o processo, compartilhando como se sentiram ao trabalhar em equipe e enfrentar os desafios.
Os estudantes aprimoram suas habilidades de codificação HTML e CSS em um ambiente prático. Eles desenvolvem habilidades de colaboração, comunicação e resolução de problemas em equipe. Os estudantes aprendem a criar layouts responsivos e a lidar com desafios comuns no desenvolvimento web. A prática do Dojo prepara os estudantes para projetos futuros e situações do mundo real na indústria de TI.
Dicas para formato on-line
Essa prática pode ser adaptada para formato on-line sem prejuízos. Algumas dicas são:
Ferramentas: use recursos tecnológicos adequadas para comunicação, tais como Zoom, Microsoft Teams ou Google Meet. Todos permitem a criação de salas simultâneas onde diferentes grupos podem trabalhar, além de recursos como compartilhamento de tela, chat e gravação. Pode-se usar ferramentas para codificação on-line em tempo real e colaborativamente, tais como Replit, CodePen, OnlineIDE, IDEOne.
Preparação: importante que as ferramentas sejam testadas com antecedência e todos os participantes tenham acesso e sejam capacitados nas ferramentas necessárias. Forneça uma agenda clara com links, tempos e expectativas para cada sessão, além de tutoriais e vídeos para que possam se preparar previamente.
Processo: encoraje os participantes a escolherem um espaço de trabalho tranquilo. É muito importante também estabelecer pausas regulares, uma vez que em geral em um ambiente virtual, é mais difícil manter o engajamento contínuo por longos períodos. É produtivo também, logo no início estabelecer regras claras, por exemplo: como as pessoas devem indicar que querem falar? O que elas devem fazer se precisarem sair rapidamente? Se a pessoa tiver problemas de conexão, como proceder? Entre outras questões particulares do ambiente virtual.
Facilitação: em ambientes virtuais, o papel do facilitador é ainda mais crucial, sendo importante que este seja engajado e capaz de manter a energia. Em processos virtuais, haver uma ou mais pessoas que possam apoiar a pessoa facilitadora, pode ser bastante produtivo e trazer maior segurança.
Referências
Coding Dojo
Site com diversos recursos e orientações para aplicação do coding dojo.
Coding Dojo: an environment for learning and sharing agile practices
por Danilo Sato, Hugo Corbucci e Mariana Bravo
https://www.dtsato.com/blog/wp-content/uploads/2008/06/sato-codingdojo.pdf
The Coder’s Dojo – a different way to teach and learn programming
por Laurent Bossavit e Emmanuel Gaillot
https://link.springer.com/chapter/10.1007/11499053_54
O Coding Dojo no ensino de práticas ágeis: um método de ensino de desenvolvimento ágil participativo e inclusivo
por Ramiro Luz
Livro sobre aplicação de coding dojo para ensino de programação e métodos ágeis.