quinta-feira, 16 de setembro de 2021

Observando a Organização e a Arquitetura de Sistemas

Esta oficina, através da execução de pequenos programas (em diferentes plataformas computacionais), tem como objetivo, conduzir o aluno à observação de elementos e características que possivelmente permitirão a estes, a observação dos elementos da organização e da arquitetura das plataformas de programação usadas.

São cinco pequenos programas (1 em linguagem de máquina, 3 em Assembly e 1 em C++). O programa em C++ é encontrado diretamente no link, para execução via Web. Os outros programa, assim como as instruções de uso, são disponibilizados como comentários ao programa em C++. Basta seguir as orientações encontradas logo após o cabeçalho do programa. A seguir você pode observar o programa.

terça-feira, 25 de abril de 2017

Curso de Programação - Dados e Variáveis

No mundo da computação, dados podem ser definidos como quaisquer elementos que serão "manipulados/usados" por um programa de computador. Para serem usados, os dados necessitam ser armazenados na memória do computador. O local onde cada elemento de dado (p.ex. o peso de uma pessoa) é armazenado chama-se variável.

A figura a seguir mostra um pequeno programa que manipula dados numéricos (valor1, valor2, valor3, soma e média) e de caracteres (mensagem). O programa calcula e exibe o resultado da média aritmética entre valores.


A janela a seguir permite a execução do programa apresentado na figura anterior - é só clicar na bandeira verde.


Observa-se que os dados são apenas apresentados, fazendo com que para outro conjunto de dados haja a necessidade de alterar o programa ou inserir comandos de entrada de dados - o que será mostrado no próximo exemplo.

Para Saber Mais

domingo, 13 de novembro de 2016

Aprendendo a Programar com o Scratch

O Scratch é um ferramenta que pode ser usado para conduzir o aluno iniciante à compreensão dos elementos fundamentais da programação de computadores. Este software utiliza de elementos gráficos para representar as principais estruturas de programação, assim e outros eventos necessários para execução de operações em um ambiente totalmente interativo e de fácil compreensão e utilização.


O software pode ser obtido em seu site oficial, na sua página de download, onde também pode ser encontrado um pequeno tutorial para instalação. O módulo de ajuda conta também com um completo guia de referência e outras informações úteis.

Para Saber Mais

domingo, 23 de outubro de 2016

Curso de Programação - Programação Sequencial

Este é o primeiro programa do curso de programação de computadores usando o Scratch. Entenda-se que este não é um curso de Scratch e sim um curso de programação que usa o Scratch como ferramenta de programação.

O conceito aqui exemplificado é o da Programação Sequencial (veja a figuras a seguir). Nesta modalidade de programação a principal característica é a execução das instruções em sequência, sem repetições ou seleção de linha a serem, ou não, executadas.

 Curso de Programação - Exemplo 1

Ressalta-se que por mais difícil que se possa imaginar, esta modalidade de programação é comumente encontrada em programas profissionais. A janela a seguir permite que seja executado o programa da figura anterior - é só clicar na bandeira verde.


Obviamente os programas completos não usam esta modalidade de programação. Entretanto, é muito usada nos atuais módulos da Programação Orientada a Objetos, como classes e métodos. 

Para Saber Mais

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

Oficinas

Este termo tem definição semelhante ao de uma palestra, por ser caracterizado por uma apresentação de curta duração. No entanto, na palestra a plateia é mera espectadora, enquanto que no contexto educacional da oficina o público-alvo é convidado a participar ativamente, desenvolvendo algum tipo de atividade.

Seguindo o conceito apresentado, este projeto tem previsão (para cada grupo de alunos selecionado) de execução de três oficinas. Cada oficina deverá ser conduzida por um professor da escola contemplada, o qual terá apoio de um ou dois alunos da UFOPA. Um intervalo de pelo menos três semanas deve ser inserido entre cada uma das oficinas. Este tempo deve ser o suficiente para que os alunos de cada grupo possam por em prática as atividades extras especificadas ao final de cada oficina. Durante este tempo a interação entre os alunos e o grupo de apoio deverá ocorrer, preferencialmente, via fórum.

Sempre que possível, as primeira oficinas deverão coincidir com o período determinado para os tutoriais do projeto internacional Hour of Code, de maneira que todos os atores (alunos, professores e voluntários) sintam-se inseridos em um projeto de maior importância, o que deve ser mais um elemento motivador da execução das atividades.