Com o uso frequente das novas tecnologias, muito se tem estudado sobre as vantagens da utilização das mesmas no âmbito educacional. A proximidade entre a realidade apresentada nos dispositivos móveis e a prática dos alunos na utilização de ferramentas e aplicações mostram-se favoráveis para a introdução de conceitos iniciais de programação vistos nos cursos da área de computação.
Dessa forma, apresentamos uma proposta pedagógica de ensino de programação, para alunos de ensino médio, utilizando-se de dinâmicas no ensino apoiadas pela metodologia ágil de gestão de projetos Scrum. Para a elaboração das dinâmicas, foi utilizada a ferramenta App Inventor (APP INVENTOR, 2016) que, através de blocos de instruções, cria aplicativos para dispositivos móveis de forma facilitada.
A ferramenta App Inventor possibilita, segundo (FINIZOLA et al, 2014), o desenvolvimento de aplicativos baseado na conexão de blocos de comandos, o que facilita o aprendizado de quem não tem conhecimento avançado em programação. Estando disponível online, a ferramenta App Inventor não necessita de memória para armazenamento dos dados. Ela permite desenvolver aplicativos para telefones Android usando um navegador da web e um telefone ou emulador conectado. Os servidores do App Inventor guardam o trabalho desenvolvido em nuvem. Para sua execução, é necessária a versão 7 do Java (ORACLE, 2015).
A ferramenta App Inventor é dividida em dois módulos: o App Inventor Designer e o App Inventor Editor de Blocos . No App Inventor Designer é desenvolvida a interface do aplicativo, com seus componentes escolhidos na “Palette” (em português, palheta). Esta palheta é dividida em seções para facilitar a localização dos componentes, que contém os componentes básicos como botões, rótulos, imagens, entre outros. Para utilizar um componente, basta clicar sobre ele e arrastar para cima da coluna “Viewer” (em português, visualizador).
O App Inventor Editor de Blocos é a ferramenta na qual são adicionados os eventos e funções de cada componente predefinido na interface. Isso é feito através de blocos de instruções que são encaixados, especificando como os componentes devem se comportar. Dentro desses blocos de instruções estão, por exemplo, os comandos de repetição, condicionais, variáveis que podem ser editadas, entre outras funcionalidades. O usuário tem que montar os blocos de forma lógica, para que a aplicação realize as atividades esperadas.
Esta pesquisa propôs o uso do framework de desenvolvimento ágil SCRUM para o desenvolvimento das atividades. Metodologias ágeis de desenvolvimento de software são iterativas, ou seja, o trabalho é dividido em iterações, que são chamadas de Sprints no caso do Scrum. O Product Backlog é uma lista contendo todas as funcionalidades desejadas para um produto. Scrum Team é a equipe de desenvolvimento:nela, não existe necessariamente uma divisão funcional através de papéis tradicionais, tais como programador, designer, analista de testes ou arquiteto. Todos no projeto trabalham juntos para completar o conjunto de trabalho, e entregar a tarefa proposta no Sprint.(SCRUM, 2015).
1.O método proposto
No início das dinâmicas propostas, deve ser usada a abordagem instrucionista, visto que os alunos não possuem conhecimento prévio de linguagens de programação e a abordagem que usa o computador como meio para transmitir a informação ao aluno mantém a prática pedagógica vigente, o instrucionismo. No entanto, os resultados em termos da adequação dessa abordagem no preparo de cidadãos capazes de enfrentar as mudanças que a sociedade está passando são questionáveis (VALENTE, 2016). Com o decorrer das atividades, os alunos deverão ser induzidos à prática da abordagem construcionista, proposta por PAPERT (1986), na qual a construção do conhecimento acontece quando o aluno constrói um objeto de seu interesse, como uma obra de arte, um relato de experiência ou um programa de computador. Segundo PAPERT (2016) o fato de o aluno estar construindo algo do seu interesse e para o qual ele está bastante motivado torna o envolvimento afetivo do aluno com a aprendizagem mais significativa (VALENTE, 2016; PAPERT, 1986).
O método de ensino proposto foi dividido em duas partes: uma parte teórica e uma parte prática. Na primeira aula, antes de iniciar o método em si, deve ser feita uma dinâmica para familiarização com a ferramenta App Inventor (o educador deve conhecer previamente o App Inventor e apresentar seus componentes aos alunos. Na parte teórica, o educador deve apresentar a estrutura da dinâmica utilizada na primeira parte da aula, mostrando como proceder com a dinâmica e como apresentar a ferramenta aos alunos. O educador deve ter conhecimento da ferramenta e suas funcionalidades previamente ao uso deste método.
Na parte prática do método os alunos são divididos em times. Um desafio de criação de um código no App Inventor será proposto para a turma e os times deverão se organizar para conseguirem entregar o desafio proposto pelo educador. As tarefas para a resolução do desafio deverão ser divididas entre os membros do time.
2. Dinâmica de familiarização com o App Inventor
O aluno deve ser familiarizado com a ferramenta App Inventor, sendo apresentado a ferramenta e suas funcionalidades pelo educador, bem como ter uma conta de e-mail Gmail (GMAIL, 2016) para fazer login na ferramenta. O App Inventor Designer deve ser apresentado ao aluno juntamente com sua palheta de opções
Em seguida, o Editor de Blocos do App Inventor deve ser mostrado ao aluno, de forma a apresentar o relacionamento dos itens colocados na interface com os blocos de instruções, que permitem atribuir funcionalidades a cada item da interface .
3. Parte teórica do método
A dinâmica a seguir é a aplicação do “Fluxograma Humano” (ANDRIANI et al., 2015). Essa dinâmica foi desenvolvida e aplicada na recepção de ingressantes em uma universidade e foi adaptada para esta pesquisa.
Na dinâmica do Fluxograma Humano, cada participante exerce um papel na execução de um programa de computador: alguns deles são variáveis, outros representam diferentes instruções, um representa o usuário que informa entradas ao programa e recebe as saídas deste e há ainda aquele que é responsável por percorrer as instruções, seguindo o fluxo criado pelo programador e interpretando o funcionamento passo a passo. Por isso, o nome sugestivo de “Fluxograma Humano”, pois nela o fluxograma computacional é representado e executado por pessoas e suas ações.
Com base nessa dinâmica, que obteve resultados positivos em sua aplicação, foi criada para esta pesquisa uma dinâmica que segue uma estrutura específica e será aplicada para o desenvolvimento de um algoritmo relacionado ao tema da aula.
A estrutura proposta para a dinâmica para cada aula é:
1 – Apresentar o problema aos alunos;
2 – Escolher um aluno aleatoriamente para dizer o primeiro passo a ser feito;
3 – Escolher outro aluno para dizer o próximo passo, e assim sucessivamente;
4 – Avaliar suas respostas, fazendo correções oralmente para todos os alunos;
5 – Discutir a solução correta para o problema inicialmente proposto.
Ao final de cada aula teórica, a turma de alunos deverá ser dividida em equipes e cada equipe sorteará uma pergunta a respeito do conteúdo apresentado na presente aula. Cada resposta certa acrescentará pontos à equipe que respondeu. Ganhará a disputa a equipe que obtiver mais respostas certas ao fim do curso.
O educador que for usar o método proposto por esta pesquisa poderá escolher o conteúdo, bem como os códigos que utilizará em sala de aula. O número de aulas pode variar de acordo com a necessidade do educador.
Para servir como modelo, foi proposto um cronograma para seis aulas, elaboradas para ilustrar o método. As aulas são divididas em partes teóricas e práticas. Essas aulas foram divididas com base no ensino convencional de lógica de programação, seguindo a ementa característica dessa disciplina.
4. Parte Prática do Método:
Para o apoio das dinâmicas, será usada a metodologia ágil SCRUM para gestão das atividades, na qual cada equipe de alunos representará um time.
Deverá ser proposto aos alunos e suas respectivas equipes uma divisão de papéis, de forma a formarem um time e organizar entre si a divisão das tarefas para a solução da atividade proposta na parte prática de cada aula. Cada equipe fará as anotações das atividades a serem desenvolvidas em uma folha, bem como o responsável para cada uma das atividades, anotando as tarefas que já foram concluídas.
O desafio proposto na última aula do curso deverá abordar o conteúdo de todas as aulas propostas. A proposição do mesmo fica a critério do professor.
5. Referências
ANDRIANI, F.C; SENA, C.P.P; CARDOSO, N.S (2015) – “Fluxograma Humano: Dinâmica para o ensino de algoritmos baseada na computação desplugada para cursos de engenharia e T.I” – XXXV Encontro Nacional de Engenharia de Produção (2015) – Fortaleza/CE
APP INVENTOR (2016) – “About Us”- < https://appinventor.mit.edu/explore/about-us.html>. Acesso em 23/05/2016.
FINIZOLA, A.B; RAPOSO, E.H.S; PEREIRA, M.B.P.N; GOMES, W.S; ARAÚJO, A.L.S.O; SOUZA, F.V.C (2014); “O ensino de programação para dispositivos móveis utilizando o MIT-App Inventor com alunos do ensino médio” – 3º Congresso Brasileiro de Informática na Educação (CBIE 2014), 20ª Workshop de Informática na Escola (WIE 2014) – DOURADOS/MS.
ORACLE (2015): “Java SE Runtime Environment 7”
<https://www.oracle.com/technetwork/pt/java/javase/downloads/jre7-downloads-1880261.html > Acesso em 01/12/2015.
PAPERT, S (1986). Constructionism: a new opportunity for elementary science education. Massachusetts Institute of Technology, The Epistemology and Learning Group. Proposta para a National Science Foundation, 1986.
VALENTE (2016): “Informática na educação: instrucionismo x construcionismo” < https://www.educacaopublica.rj.gov.br/biblioteca/tecnologia/0003.html > Acesso em 21/03/2016.