Mostrando postagens com marcador Tutoriais. Mostrar todas as postagens
Mostrando postagens com marcador Tutoriais. Mostrar todas as postagens

quarta-feira, 17 de novembro de 2021

Cálculo de Potência em Modo Recursivo

Os programas apresentados têm como objetivo a apresentação os conceitos relacionados a execução recursiva de uma exponenciação. Com ênfase na implementada em assembly, permite que sejam observadas as diferenças e semelhanças com outro programa de mesmo objetivo, escrito em linguagem de alto nível (C++).


O objeto de aprendizagem inicia com um programa em C++, que implementa o processo de cálculo de uma exponenciação em modo recursivo. O modelo recursivo usado no programa em C++ é adaptado para Assembly (8-Bit Assembler Simulator). O programa também apresenta, em seus comentários, alguns elementos que permitem a melhor observação sobre o método recursivo implementado no código Assembly.

Inicialmente, o programa verifica se o expoente inicial é 0, gerando 1 como resultado, ou iniciando a efetiva exponenciação, quando em processo de recursão. Quando iniciada a recursão, decrementa o expoente e reexecuta o subprograma e a cada recursão envia a base da exponenciação para a pilha. Quando em recursão, o expoente chegar a 0, inicia o desempilhamento da "base" e o devido produtório, usando as mesmas.

quinta-feira, 14 de abril de 2016

Jogo da Programação

Visão Geral e Objetivo

O ambiente simula, através de um jogo de tabuleiro, o processo de programação de um robô, sendo indicado como elemento lúdico tangível em aulas e/ou atividade de introdução à programação de computadores. O jogo tem como objetivo conduzir um robô pela trilha, do quadro inicial até o quadro final, executando um dos objetivos pré-determinado ou até mesmo criando novos objetivos.

Elementos do Jogo
  • Tabuleiro - contém a trilha composta por quinze casas, observando-se que o caminho a ser percorrida dependerá do objetivo selecionado;
  • Jogadores - três a cinco aprendizes, que serão divididos em programadores e controlador programável;
  • Peças - robô e marcadores amarelos e verdes (cinco de cada cor e podem ser substituídas por grãos ou moedas);
  • Cartões de Objetivo - descrevem qual objetivo deve ser alcançado em cada uma das rodadas do jogo;
  • Cartões de Programação - individualmente descrevem uma ação específica e logicamente agrupados descrevem como alcançar o objetivo.

O Jogo
  1. Inicialmente o instrutor (professor ou organizador da atividade) distribui aleatoriamente os marcadores pelo tabuleiro e organiza os jogadores em dois grupos, os programadores e o controlador programável, doravante chamado apenas de controlador;
  2. Sendo o controlador isolado do grupo de programadores, estes últimos devem receber um cartão de objetivo (selecionado ou sorteado pelo instrutor);
  3. Com base no cartão recebido, os programadores deverão traçar a melhor estratégia (caminho a ser percorrido) para alcançar o objetivo;
  4. Definido o caminho a ser percorrido, os programadores deverão selecionar ordenadamente os cartões de programação que orientarão o controlador quanto ao caminho a ser percorrido e como selecionar ou descartar os marcadores;
  5. O controlador deve ser trazido ao tabuleiro e a ele também devem ser passados os cartões de programação ordenados e empilhados, onde apenas a primeira instrução deve estar visível ao controlador;
  6. O robô deve ser posicionado pelo controlador na primeira casa do tabuleiro, com sua frete posicionada na mesma direção da seta ali encontrada;
  7. O controlador deve observar a carta visível da pilha, interpretar o seu conteúdo, executar a ação descrita e descartar a carta de programação, de maneira a poder visualizar a próxima instrução, podendo assim continuar a execução do programa.
O jogo será encerrado quando o robô alcançar a casa final, cumprindo com as determinação da carta de objetivo. Destaca-se que erros no programa, ou na execução das instruções, poderão fazer com que o controlador erre a trajetória e nunca chegue a casa final, sendo assim necessário definir um tempo máximo para execução da partida.

Observações
  • Este jogo exige dois tipos de habilidades para alcançar o objetivo: i) a lógica dos programadores para selecionar o caminho e para ordenar os cartões de programação e, ii) a destreza e precisão do controlador para executar as instruções;
  • Em ambientes com muitos aprendizes, estes devem ser divididos em grupos menores, de no máximo três aprendizes por grupo. Podendo haver uma competição, contabilizando o tempo de programação e o tempo de execução.
Possíveis Variações no Jogo
  • Mais de um controlador pode ser usado, onde as tarefas podem ser divididas;
  • Assim como podem ser personalizados os objetivos, os instrutores e aprendizes podem criar novas opções de tabuleiros;
  • Em ambientes amplos, o tabuleiro pode ser desenhado no chão, em tamanho suficiente para que o controlador programável personifique o robô.
Um Exemplo de Programa

Usando a distribuição mostrada à esquerda da figura a seguir, com o objetivo de "Coletar todos os marcadores amarelos e depositá-los na última casa do tabuleiro", uma das opções para programação é mostrada à direita da figura.


O vídeo a seguir apresenta uma demonstração das características e do uso da nova versão do Jogo. No vídeo são destacadas as principais funcionalidades do Jogo, assim como seus elementos e fases.


Download do Jogo

domingo, 24 de janeiro de 2016

Blockly-Games

O Blockly-Games é uma séria de jogos educacionais voltados ao ensino da programação. Desenvolvido pela Google for Education implementa tutoriais de programação visual por blocos lógicos, de maneira semelhante a aplicações profissionais como o AppInventor, ou educacionais como o Scratch.



Ao todo são sete tutoriais (jogos) que ao serem usados, progressivamente vão apresentando os fundamentos da programação e da ciência dos computadores. O Blockly-Games pode ser acessado via internet em https://blockly-games.appspot.com/, ou baixado de https://github.com/google/blockly-games/wiki/Offline.

domingo, 29 de novembro de 2015

Tutoriais

Um Tutorial pode ser definido como uma ferramenta de ensino/aprendizagem que auxilia este processo através da apresentação passo a passo do funcionamento de algo, orientando o aprendiz na compreensão deste algo ou na execução de uma tarefa. Pode ser tanto um programa de computador quanto um texto, contendo ou não imagens. Observa-se ainda que não é necessariamente obrigatória a presença ou a moderação de um especialista (professor ou tutor), de maneira que o próprio aprendiz, auxiliado pelas instruções, participa ativamente no processo de aprendizado.

Os tutoriais usados neste projeto, em sua grande parte, foram obtidos dos websites da iniciativa Hour of Code, que disponibiliza uma grande variedade de aplicações computacionais voltadas ao aprendizado da programação de computadores. A lista completa pode ser acessada clicando na imagem com o ícone da Code Org. Alguns tutoriais também estão diretamente disponíveis clicando em suas imagens.