Sequência Didática
Aula 2
Algoritmos no App Inventor
Na segunda aula se espera discutir como é estruturado o processo de resolução de um problema computacional; apresentar as partes que constituem um algoritmo; como se dá a escrita de um algoritmo no App Inventor; introduzir os conceitos de variável e operadores; criar um aplicativo de cálculo de média de notas.
Três Momentos Pedagógicos
Discutir com os alunos como se dá o processo de resolução de um problema computacional ou não. Quais os passos necessários desde o entendimento de um problema até a construção e validação de uma solução adequada? Quais problemas reais podem ser resolvidos ou otimizados a partir da construção de um algoritmo?
Ainda, apresentar as partes que compõem um algoritmo e propor que os alunos analisem o primeiro aplicativo desenvolvido na aula anterior procurando identificar tais partes e a importância de cada uma delas.
Conceituar as partes de um algoritmo e realizar uma atividade prática colaborativa no Google Jamboard procurando esclarecer a composição de um algoritmo de cálculo de média entre dois números. Após a construção do quadro pelos alunos, fomentar a discussão a respeito de como os pilares do pensamento computacional podem ser aplicados na resolução desse cálculo.
Apresentar os conceitos de variável e operadores e como ocorre a escrita de um algoritmo no App Inventor. Desenvolver de um aplicativo para cálculo de média de duas notas.
Retomar a discussão sobre o processo de resolução de problemas computacionais, agora procurando empregar os conceitos apresentados (ex: quais variáveis e operadores seriam utilizados para a construção dos algoritmos sugeridos na problematização inicial?).
Lançar o desafio de incrementar o aplicativo de cálculo de média desenvolvido em aula, sendo capaz de obter a média de quatro notas.
Como resolver problemas?
Existem diferentes formas de se pensar a solução de um problema, seja ele computacional ou não. No entanto, guiar-se através de uma sequência lógica pode otimizar o processo de resolução. Com base nos preceitos do pensamento computacional, podemos seguir os seguintes passos para solucionar um problema:
Entendimento do problema;
Análise considerando os pilares do pensamento computacional (decomposição, reconhecimento de padrões, abstração);
Criação de uma sequência de operações para a solução (algoritmo);
Execução dessa sequência;
Verificação da adequação da solução;
Partes de um algoritmo
Os algoritmos normalmente possuem uma estrutura dividida em 3 partes: entrada, processamento e saída (MANZANO; OLIVEIRA, 2016). O entendimento de como começar a construção do algoritmo e como conduzir o seu desenvolvimento passa pela compreensão destas partes.
Entrada de dados: informações necessárias para que o algoritmo possa ser executado (usuário -> computador);
Processamento de dados: avaliadas todas as expressões algébricas, relacionais e lógicas existentes no algoritmo;
Saída de dados: resultados do processamento (computador -> usuário);
Num algoritmo computacional, a entrada normalmente ocorre a partir do teclado ou de dados armazenados em memória. No processamento esses dados são tratados para que possam resolver o problema ao qual o algoritmo se propõe. Essa é a principal e mais complexa parte do trabalho. Por fim, os resultados são exibidos em um ou mais dispositivos de saída, como: monitor, impressora ou a memória do dispositivo (ASCENCIO; CAMPOS, 2012).
Vamos entender na prática?
Utilize o Google Jamboard para realizar uma atividade coletiva colaborativa de construção das partes de um algoritmo para o cálculo da média entre dois números, dividindo o quadro em "Entrada | Processamento | Saída" e solicitando aos participantes que insiram notas autoadesivas em cada uma das partes.
Após, discuta com os participantes como é possível abordar a resolução desse problema utilizando os pilares do pensamento computacional.
Escrita de Algoritmos
Independentemente da linguagem de programação utilizada, a escrita de um algoritmo deve sempre considerar:
Sintaxe: forma como os comandos devem ser escritos para que sejam interpretados e entendidos pelo dispositivo;
se (<expressão>) então
<instrução>
Semântica: é o significado, conjunto de ações executadas a partir dos comandos;
se o valor da expressão for verdadeiro,
a instrução será executada
Além disso, um algoritmo computacional costuma seguir uma estrutura básica com a definição de nome, declaração de variáveis e blocos de comandos com início e fim delimitados, a exemplo:
algoritmo_nome
declaração de variáveis globais
início_bloco
bloco de comandos
fim_bloco
fim_algoritmo
Podem existir um ou mais blocos de comandos em um algoritmo, cada qual contendo: declaração de variáveis locais, comentários, comandos de E/S e atribuição, estruturas de seleção e repetição e chamadas de funções (MANZANO; OLIVEIRA, 2016).
Algoritmos no App Inventor
O fato do App Inventor ser uma linguagem de programação visual em blocos acaba por simplificar a construção de aplicativos, uma vez que abstrai parte da estrutura tradicional de um algoritmo.
No App Inventor os trechos de comandos são limitados pelos próprios blocos [1] que, por sua vez, são divididos entre internos [2] e de componentes [3], tendo a sua funcionalidade categorizada por diferentes cores (MIT, 2020).
Variáveis
Variáveis são entidades destinadas a guardar uma determinada informação (números, palavras, arquivos, etc.) (MANZANO; OLIVEIRA, 2016). Cada variável possui um nome único e, no App Inventor, a sua declaração ocorre através de um bloco de inicialização [4]. Também existem blocos específicos para alterar [5] ou obter [6] o valor da variável enquanto o aplicativo é executado.
Operadores
Operadores são utilizados para a construção de algoritmos no App Inventor e se dividem em (MIT, 2020):
Aritméticos: conjunto de símbolos que representam as operações básicas da matemática (soma, subtração, multiplicação, divisão, etc) [7];
Relacionais: utilizados para comparar valores entre variáveis e expressões do mesmo tipo. O retorno é sempre um valor booleano/lógico (V ou F) [8];
Lógicos: fazem comparações com o objetivo de avaliar expressões em que o resultado pode ser verdadeiro ou falso (lógica booleana) [9];
Vamos entender na prática?
Execute a sequência de passos abaixo para criar um aplicativo de cálculo de média de dois números.
Selecionar o componente “Screen1” e alterar as propriedades:
- Theme = Device Default
- Título = Calcula Média
Arrastar para a tela um componente “Legenda” e alterar:
- FonteNegrito = V
- TamanhoDaFonte = 16
- Largura = Preencher principal...
- Texto = Calcula Média
- AlinhamentoDoTexto = centro:1
Arrastar para a tela um componente “Legenda” e alterar:
- Texto = Nota 1
Arrastar para a tela um componente “CaixaDeTexto” e alterar:
- Renomear = txtNota1
- Dica = Informe a primeira nota
- SomenteNúmeros = V
Arrastar para a tela um componente “Legenda” e alterar:
- Texto = Nota 2
Arrastar para a tela um componente “CaixaDeTexto” e alterar:
- Renomear = txtNota2
- Dica = Informe a segunda nota
- SomenteNúmeros = V
Arrastar para a tela um componente “OrganizaçãoHorizontal” e alterar:
- Largura = Preencher principal...
Arrastar um componente “Botão” para dentro do “OrganizaçãoHorizontal” e alterar:
- Renomear = btnCalcular
- FonteNegrito = V
- Largura = Preencher principal...
- Texto = Calcular
Arrastar outro componente “Botão” para dentro do “OrganizaçãoHorizontal” e alterar:
- Renomear = btnLimpar
- FonteNegrito = V
- Largura = Preencher principal...
- Texto = Limpar
Arrastar para a tela um componente “Legenda” e alterar:
- FonteNegrito = V
- Largura = Preencher principal...
- Texto = A sua média é:
- AlinhamentoDoTexto = centro:1
Arrastar para a tela um componente “Legenda” e alterar:
- Renomear = txtMedia
- FonteNegrito = V
- Largura = Preencher principal...
- Texto = ---
- AlinhamentoDoTexto = centro:1
Na janela de Blocos, inserir variáveis para o cálculo e inicializá-las com “0” (bloco “Matemática”) [1];
Nos blocos do “btnCalcular”, inserir o evento “Clique” e definir as variáveis globais conforme as notas informadas pelo usuário [2];
Nos blocos de “Matemática”, inserir o bloco de adição e somar as variáveis de notas [3];
Nos blocos de “Matemática”, inserir o bloco de divisão, incluir o bloco de soma no primeiro parâmetro, informar o número de notas no segundo parâmetro (com outro bloco “Matemática”) e atribuir para a variável “media” [4];
Nos blocos do “txtMedia”, inserir o método “ajustar txtMedia.Texto para” e atribuir o valor da variável “media” [5];
Nos blocos do “btnLimpar”, inserir o evento “Clique” e definir a propriedade “Texto” dos campos nota e media [6];
Vamos aprofundar os conhecimentos?
Para saber mais sobre algoritmos, variáveis e operadores, explore o material abaixo que contém vídeos sobre a temática abordada na aula 2.
Curso "Introdução a Algoritmos", Prof. Gustavo Guanabarra
O que é "o tal do Algoritmo?", Prof. Dionatan Simioni
Aula sobre variáveis, comandos de entrada e saída, atribuição e operadores, Prof. Dr. Junior Freitas (IFC)
Referências
ASCENCIO, Ana F. G.; CAMPOS, Edilene A. V. de. Fundamentos da Programação de Computadores: Algoritmos, Pascal, C/C++ e Java. 3. ed. São Paulo: Pearson, 2012.
MANZANO, J.; OLIVEIRA, J. Algoritmos - Lógica para desenvolvimento de Programação. 28. ed. São Paulo: Saraiva, 2016.
MIT. MIT App Inventor. 2020. Disponível em: http://appinventor.mit.edu. Acesso em: 25 de mar. de 2020.