quinta-feira, 29 de outubro de 2020

Desafios Pocket Code: Monstros de Halloween

Nestes desafios, vais programar um monstro que nunca pára, Ou um monstro que se multiplica sem parar. Arriscas estes desafios arrepiantes?

Desafio Halloween

Vamos fazer coisas assustadoras com programação? O desafio é criar programas de susto no Pocket Code. Este desafio tem dois níveis: Nível 1, simples, e Nível 2, complicado.

Nível 1: O Monstro Irrequieto

 



Neste vídeo, podes ver a sequência de ações para criares este programa. Vais trabalhar com eventos, ciclos (nas estruturas de controle) e movimento. Usando a opção Place Visually consegues posicionar visualmente o teu personagem nas coordenadas cartesianas, sem teres de te preocupar com os valores de X e Y.

Blocos do programa:


Com estes blocos, controlas a animação do personagem. Necessitas de um ciclo Forever, de Próxima Aparência e Aguarde Segundos.


Com esta sequência, controlas o movimento. Os blocos Posicionar Em Planar Segundo estão na categoria Movimento. Para alterares as coordenadas das posições, toca no valor de X e escolhe a opção Place Visually. Não te esqueças de incluir um ciclo Forever para que o monstro seja imparável.

Nível 2: Monstros Infinitos

 



Neste vídeo, podes ver como é criado este programa. Vais precisar de trabalhar com diversos eventos: When Scene Starts, que define o que acontece quando o programa se inicia; e Quando Fores Criado como um Clone, que define o que acontece aos clones de um ator ou recurso. Precisas também do Cria um Clone de, que faz cópias de um ator ou recurso; e usar a Função Random, que gera números aleatórios, para poderes movimentar o ator e os seus clones.

Blocos novos:


Clonar: Podes encontrar estes blocos nas categorias Evento e Controlo. O clonar faz uma cópia do teu ator. Se estiver dentro de um ciclo infinito, faz cópias infinitas...


Função Random: Esta função gera números aleatórios. Vais ter de gerar números para os valores de X (coordenada horizontal) e de Y (coordenada vertical), para controlar as coordenadas para onde o teu monstro desliza. Dica: com o programa na vertical, podes colocar random( -500, 500 ) para os valores de X, e random( -900, 900 ) para os valores de Y. Com o programa na horizontal, podes colocar random( -900, 900 ) para os valores de X, e random( -500, 500 ) para os valores de Y. 


Para usares a função random, tocas nos valores de X e de Y. No editor de equações, tocas em Funções e escolhes random(1,6) da lista. Depois, alteras os valores originais para os que quiseres.

Blocos do Programa


Com estes dois eventos When Scene Starts, controlas as ações do teu ator original.


Com estes dois eventos Quando fores criado como clone, controlas o que acontece aos clones do teu ator. 

Se estiveste atento ao vídeo, reparaste que bastou copiar parte da programação. Há uma forma mais eficaz de fazer isso, criando procedimentos. Mais tarde, iremos aprendê-la.

E agora... divirtam-se a criar programas assustadores!

segunda-feira, 26 de outubro de 2020

Desafio Pocket Code: Detetar Rosto

Reconhecimento Facial

As tecnologias de reconhecimento facial estão ligadas ao campo da inteligência artificial. Combinando algoritmos de inteligência artificial, bases de dados de imagens de rostos e câmaras de vídeo, é hoje possível desenvolver aplicações que reconhecem indivíduos em qualquer local, ou analisam as expressões para determinar as emoções das pessoas, entre outros usos. 

O Pocket Code não tem recursos avançados de Inteligência Artificial, mas tem uma função que, usando a câmara do telemóvel, permite à aplicação perceber se está a detetar um rosto.  

Vamos usar a função is face detected para criar um programa que reaja sempre que a câmara detecte um rosto.

Programa que Deteta o Rosto

 



Vê atentamente o vídeo, que mostra os vários passos para conseguires criar este programa.

Código do Programa


Este é o programa completo. Usámos um personagem com dois trajes. Quando a função deteta um rosto, apresenta um dos trajes; se não o deteta, o personagem muda de traje. Ainda se usou a câmara como fundo do programa. Tudo corre dentro de um ciclo Forever (para sempre), senão o programa não funciona corretamente.

Blocos que Necessitas:

Aqui podes ficar a saber que blocos necessitas para este desafio.

Se.. Verdadeiro... Outro...


O bloco mais importante que necessitas é a condição Se... Verdadeiro... Outro. Esta condição permite-te programar ações que dependam do funcionamento de um elemento. Se o reconhecimento facial reconhecer um rosto (ou seja, é verdadeiro), então programas uma ação. Se for falso, programas Outro ação.


Esta condição está na categoria Controlo. Quando a aplicas, tens três blocos, e podes encaixar outros blocos entre cada um deles.

Is Face Detected

Para acederes à função Is Face Detected tens de editar o campo editável da condição. 


Tocas nesse campo, e no editor de equações que aparece escolhes a opção Dispositivo. Esta é a que permite adicionar sensores do teu telemóvel como funções no Pocket Code.


Em seguida, consulta a lista de funções e procura na categoria Visual Sensors (sensores visuais) a função Is Face Detected.

Ativar a Câmara

Se reparaste atentamente no vídeo do desafio, a câmara é usada para complementar a ação do rosto detectado. Como usar?


Na lista de categorias de blocos, tens uma categoria denominada Device (também pode surgir como Dispositivo). Tocando nela, tens acesso a blocos que usam diretamente recursos do teu telemóvel.


Os blocos de cor verde controlam a câmara e o flash. O bloco Turn Camera permite-te controlar o ligar e desligar da câmara; o bloco Use Camera permite-te definir que câmara usar, se a frontal ou a traseira.

Diverte-te, explora, e cria programas giros. Como é que podes modificar o código deste tutorial para, por exemplo, fazeres com que o telemóvel cumprimente alguém sempre que o rosto é detetado?

Adaptado de Pocket Code - Face Detection.

domingo, 25 de outubro de 2020

Robótica Virtual @Codeweek AEVP

Sábado, dia 24 de outubro, decorreu uma sessão de formação sobre robótica virtual com Open Roberta. Esta sessão decorreu como ACD integrada no plano de formação do CFAE Rómulo de Carvalho, Mafra. 

Esta sessão estava originalmente prevista para decorrer no espaço do Centro de Recursos Poeta José Fanha, mas dada a situação pandémica, optou-se por um modelo de sessão à distância. No entanto, optei por realizar a conferência no espaço Maker do Centro de Recursos. 

O objetivo desta sessão era o de explorar o Open Roberta enquanto forma de explorar programação de robots, especialmente dado que as regras sanitárias em vigor nos impedem de colocar nas mãos dos alunos artefactos tangíveis programáveis. A experiência adquirida nesta plataforma decorre do seu uso durante o confinamento, para desafiar os alunos a trabalhar com robótica à distância.



A sessão decorreu com uma sequência de aprendizagem, onde se exploraram diversas componentes de programação de robots: movimentos, ciclos e sensores. O que me surpreendeu foi a rapidez com que os formandos seguiram os desafios propostos. As dinâmicas de formação à distância são diferentes das presenciais. 

O número de participantes não foi elevado (aqui por Mafra não é dada grande importância a estas áreas), mas vale sempre a pena estimular a descoberta destas experiências tecnológicas. Aliás, isso foi mesmo sublinhado por uma formanda, que referiu a importância de descobrir que estas ferramentas existem. É o primeiro passo. Daí pode partir o seu uso nas práticas letivas, ou não, se não forem relevantes para as estratégias pedagógicas.

Claro, os robots Anprino foram convidados especiais. Permitiram mostrar como transpor os conceitos e ideias aprendidos virtualmente para a programação de robots reais.

sexta-feira, 23 de outubro de 2020

Robótica Virtual @CodeWeekAEVP


Terminou a nossa segunda atividade EU Codeweek 2020. O desafio agora foi para os alunos de sexto ano: recordar os conceitos de programação, e descobrir a programação de objetos tangíveis com micro:bit. O primeiro objetivo? Criar uma pequena animação.


A situação de pandemia leva a mais um desafio - estas atividades decorrem usando apenas dispositivos móveis. A sala TIC está encerrada, e os projetos são desenvolvidos em telemóveis e tablets.

A curiosidade ficou totalmente desperta com os novos blocos de som do Makecode. Confessamos que ainda não sabemos muito bem como os usar. Mas isso não impediu os nossos alunos de os experimentar.


Só ficou a faltar um passo, novamente impossível devido à situação pandémica: cada aluno testar o seu programa numa placa micro:bit.

Pocket Code: Movimentos Aleatórios

Neste projeto, vais aprender a posicionar os teus atores com todo o rigor no Pocket Code, controlar os seus  movimentos, descobrir as coordenadas cartesianas, e fazer com que um ator se mova de forma imprevisível. Isto pode ser útil para afinar animações, ou criar personagens automáticos para jogos.

Movimentos no Pocket Code

Para mover atores no ecrã, tens de os posicionar e definir como, e para onde, se movem. Podes definir isto visualmente, ou usando operações matemáticas. Vê aqui como:

 



Isto é possível porque o Pocket Code usa um sistema de Coordenadas Cartesianas para saber exatamente onde estão todos os atores e objetos. 

Embora não te apercebas disso, este tipo de sistemas é fundamental para representar imagens 2D e 3D no ecrã do teu computador, tablet ou telemóvel. Sem ele, não conseguirias usar um rato, ou tocar no ecrã para usar o telemóvel.

Posicionar e Mover um Ator


Os blocos Posicionar permitem-te colocar o ator onde quiseres, no espaço do programa. Podes posicionar alterando os valores das coordenadas X e Y, ou colocando visualmente. 


Para isso, tocas nos valores, e escolhes ou a opção Place Visually (coloca visualmente), ou Edit Formula (edita os valores).

Mover um Ator


O bloco Planar é um dos mais adequados para controlar o movimento dos atores. Podes definir coordenadas, colocar visualmente, ou usar coordenadas aleatórias. Podes alterar o tempo que demora a executar o comando, tornando o movimento mais suave.

Movimento Aleatório

Podes criar uma sequência com blocos Planar para que o teu ator se mova mais do que uma vez. Mas poderá ser melhor definir que o ator se move de forma aleatória. Com isso, usas um só bloco dentro de um ciclo, e o ator move-se para sempre (ou o número de vezes que definires) de forma imprevisível.

Para isso, vamos ter de usar uma função matemática: a Função Random. Esta permite gerar valores aleatórios dentro de um intervalo de números. Por exemplo, se definires que a função está entre os números 1 e 5, sempre que for executada dá-te um número ao acaso que pode ser o 1, o 2, o 3, o 4 ou o 5.


Para ativares a Função Random, tens de clicar nos valores de X e de Y, o que vai abrir o Editor de Fórmulas. Em seguida, clicas no botão Funções.


E selecionas random (1,6) da lista de funções.


Agora, terás de alterar os valores da função, para gerar movimentos aleatórios. Terás de alterar os valores das coordenadas X (horizontal) e coordenadas Y (vertical)

Mas quais são esses valores?

Coordenadas Cartesianas no Pocket Code

O Pocket Code usa um sistema de coordenadas para posicionar elementos no espaço. Podes visualizá-las, se ao correr o programa clicares na opção ativar eixos.


Os valores máximos podem variar de acordo com a resolução do teu telemóvel ou tablet. Neste exemplo, o eixo X varia entre -600 e 600, enquanto o eixo Y varia entre -926 e 926. Noutros telemóveis, estes valores poderão ser diferentes, de acordo com a resolução do ecrã. 0 é sempre o centro do espaço.

Repara que temos o ecrã na posição vertical. Se estivesse na horizontal, os valores seriam eixo Y entre -600 e 600, e eixo X entre -926 e 926.

Se no valor de X definires que random (-600, 600) e no valor de Y definires que random (-926, 926), sempre que o bloco for executado o ator desliza para um ponto ao acaso no ecrã.


Se colocares o Planar dentro de um ciclo para sempre, o ator vai estar constantemente a deslocar-se no ecrã de forma imprevisível. Nunca sabes para onde é que vai. Isso será decidido pelos números aleatórios que a função random gera.

quinta-feira, 22 de outubro de 2020

Desafio Pocket Code: Criar uma Bússola

Neste desafio, vais aprender a programar uma bússola no Pocket Code, tirando partido dos sensores do teu telemóvel.

Desafio: Criar uma Bússola

O Pocket Code permite-te tirar partido dos sensores do teu telemóvel para usar em projetos de programação. Neste desafio, vais aprender a usar o sensor bússola num projeto.

 



Vê aqui o código:


O código é muito simples. Precisas de um evento, e de um ciclo Para Sempre (Forever). Dentro desse ciclo, colocas um bloco Apontar na direção, e alteras o valor original para ir ler a bússola do telemóvel.


Para alterar os valores, clicas neles, e abre-se o Editor de Fórmulas. O sensor Bússola encontra-se no Dispositivo.


A lista de sensores varia de acordo com as capacidades do telemóvel. O de bússola é o direcao_bussola. Se não o encontrares, o teu telemóvel não tem esse sensor.

Desafio criado com base em Compass App in 1 Minute.

terça-feira, 20 de outubro de 2020

Tutoriais micro:bit: Partilha de Projetos e Transferência de HEX

Como partilhar projetos no Makecode, e enviar a ligação para o projeto por correio eletrónico.

Usar um cabo OTG para ligar o micro:bit a um telemóvel ou tablet, e transferir um ficheiro HEX do Makecode para a placa micro:bit usando dispositivos móveis.

Transferir um ficheiro HEX do Makecode para a placa micro:bit no computador.

domingo, 18 de outubro de 2020

EU Codeweek 2020: Mobile Coding

Decorreu durante a semana passada a nossa primeira atividade EU Codeweek 2020. O desafio foi o de introduzir todos os alunos de 5.º ano da escola à programação. A atividade decorreu articulada com a disciplina de TIC, sendo, por questões de calendário, a primeira aula de trabalho prático dos alunos.

Este ano temos um desafio adicional. Com as condicionantes da escola em tempos de pandemia, inativou-se a sala TIC e passámos a trabalhar na sala dos alunos, exclusivamente em dispositivos móveis. Combinam-se tablets com telemóveis para abordar as experiências de aprendizagem. Se todas as semanas correrem como esta, podemos arriscar dizer que foi uma boa aposta. Mas claro que é ainda muito prematuro tirar quaisquer conclusões, o ano letivo ainda mal arrancou.


O desafio foi o de criar uma pequena animação, usando o ambiente de programação Pocket Code. Similar ao Scratch, esta app de programação visual tem como principal vantagem o ter sido concebida a pensar em dispositivos de pequeno ecrã. Isso significa que a usabilidade se mantém, independentemente do dispositivo.

Para criar a animação, os alunos tiveram de descobrir o conceito de algoritmo, e aprender as noções de sequência, evento, ciclo e tempo. Apesar do tempo reduzido, todos os alunos conseguiram chegar ao final da aula com o seu primeiro programa feito. Alegres, entusiasmados a mostrar as suas animações. E é esse o objetivo, despertar a atenção, entusiasmar. Agora, é continuar a capacitar os alunos para serem criativos com tecnologia.

quarta-feira, 14 de outubro de 2020

Ação de Formação: Tecnologia Criativa

Ação

 Tecnologia Criativa  Projetos Interdisciplinares com Pensamento Computacional, Robótica e Inteligência Artificial.

Conteúdos: 

  • Pensamento Computacional e unplugged computing: Introdução ao conceito de pensamento computacional; atividades de programação sem computador.
  • Introdução à Programação Visual: conceitos elementares de programação em ambientes visuais (Scratch/Scratch Jr.).
  • Criar Narrativas Digitais com Programação Visual: usar programação como forma de desafiar alunos a contar historias.
  • Criar Jogos: Estruturas de criação de jogos simples em programação visual.
  • Introdução à Robótica (Física e Virtual): Explorar conceitos de robótica usando plataformas digitais.
  • Placas: Exploração da placa controladora Micro:bit.
  • Desenho 3D com Dispositivos Móveis: Introdução à modelação 3D em telemóveis/tablets.
  • Criar com Inteligência Artificial: Uso de interfaces acessíveis de algoritmos de Inteligência Artificial para expressão plástica.

Esta atividade insere-se no âmbito da EU Codeweek 2020, é desenvolvida em parceria com o Centro de Recursos Poeta José Fanha.Será desenvolvida com equipamentos do AE Venda do Pinheiro. Sugere-se que os participantes tragam tablet.

sábado, 10 de outubro de 2020

Notas Formação PTD

 Tema III - Disciplinas TIC 9.º e 10º e 1000 Salas TIC - Atividade 8

Da comparação entre o antigo programa da disciplina de TIC (9º e 10º anos) com as aprendizagens essenciais de TIC, sublinho o aspeto que me parece mais fundamental - o foco no tipo de aprendizagens a efetuar.

O antigo programa de TIC era conhecido, de forma depreciativa, como o programa Microsoft. Algo que até nem é muito justo, uma vez que o documento incentivava ao uso de software livre, mas este aspeto diluiu-se entre os hábitos dos docentes, formatados para uso de ferramentas específicas, e a disponibilidade de uma sala TIC equipada com computadores em LAN dedicada, que corriam sistema operativo windows com o correspondente pacote de aplicações de produtividade. No entanto, a verdadeira razão para este tom depreciativo tem origem, de acordo com o que observei enquanto coordenador TIC que acompanhava os docentes desta disciplina, no tipo de atividades que eram propostas.

Estas eram, essencialmente, procedimentais. O currículo na prática abordava-se através de atividades em que o foco estava aprendizagem rotinável de funções, opções e metodologias de trabalho de ferramentas digitais específicas. Tal estava previsto no programa, que elenca de forma exaustiva ferramentas e aprendizagens esperadas de acordo com as suas funções. Isto desassocia a ferramenta digital do seu contexto. É o foco na ferramenta pela ferramenta, o aprender a usar funções sem, no entanto, ser-se desafiado a dar o passo seguinte: que uso dar às ferramentas, como é que elas podem realmente capacitar o indivíduo. É um pouco como aprender a ler memorizando e rotinando o alfabeto, mas nunca dar o passo de ler um texto.

É fácil criticar, após estes anos todos, o que hoje nos parece uma evidente falta de visão. Mas na verdade, talvez a questão não seja de falta de visão como de passo elementar. À época, com a ainda incipiente sociedade de informação a despertar-nos para o digital, essas competências elementares faziam falta. Entretenanto evoluiu-se, e abordar hoje TIC dessa forma é caminho certo para garantir baixo nível de aprendizagem nos alunos. Se o elementar de ferramentas não deixa de ter a sua importância, já não é o fundamental na sociedade contemporânea e de futuro próximo.

Há aquela frase-chavão sobre a escola estar a preparar futuros adultos para profissões que ainda não foram concebidas. Uma metáfora para ser tomada em doses adequadas, mas que espelha a realidade da evolução conceptual do digital. Compreender a computação, perceber o impacto transformativo que está a ter nas nossas vidas, aprender conceitos de base que permitam aos alunos apropriar-se dos aspetos avançados da computação e usá-los em seu proveito, ao invés de serem atores passivos na sociedade digital são hoje mais importantes do que a aprendizagem de técnicas de formatação em documentos. Empoderamento do indivíduo, e não rotinação, é o que se necessita para uma formação tecnológica e humanista completa. 

Exato, acabaram de ler uma variação do "entregar os meios de produção aos trabalhadores".

É nessa vertente que surgem as aprendizagens essenciais de TIC. As ferramentas não deixam de ser fundamentais, mas apenas como suporte a aprendizagens mais profundas. Trabalha-se programação, algoritmia, multimédia e 3D, publicação web, produção e edição documental não como objetivos finais, mas como meios para aprendizagens ricas, significativas, contextualizadas na realidade dos alunos. A metodologia de projeto, nisto, é essencial como o elemento aglutinador que une a necessária aprendizagem elementar de ferramentas à visão mais abrangente de empoderamento e capacitação do aluno. 

Para isto, o ter uma sala TIC de estrutura rígida deixa de ser fundamental. Pode até tornar-se um impedimento. Parte das atividades decorrentes desta ótica partem de bases colaborativas. Outras, envolvem o uso de artefactos (robots, placas) que não se ajustam a espaços de trabalho rígidos. A evolução técnica das ferramentas é implacável com hardware rígido. E ainda há a dimensão que a educação digital teima em ignorar, a do crescente potencial dos dispositivos móveis como ferramentas de trabalho, criatividade e aprendizagem - aprendizagem que se baseie no criar e fazer, não no consumir informação textual e vídeo. Diversidade de meios computacionais, para que os alunos apreendam fluxos de trabalho flexível e não rotinas específicas a um dado sistema operativo, são ambientes mais propícios a estes princípios do que uma sala de estrutura rígida.

A evolução de TIC passou-a de uma área de ensino elementar para uma de aprendizagem abrangente. Evoluiu-se do foco na ferramenta pela ferramenta para a capacitação dos alunos nos elementos avançados da tecnologia (pensamento computacional, programação e robótica, Inteligência Artificial, sociedade digital). Faz sentido que isso seja explorado em área própria, com docentes especializados. Mas sem perder de vista a interdisciplinaride, a conjugação dos contextos educacionais mais vastos dos alunos, enriquecendo outras áreas com a contribuição das vertentes contemporâneas do digital.

segunda-feira, 5 de outubro de 2020

domingo, 4 de outubro de 2020

Pocket Code - Programa 1: Animar, Mover e Fazer Falar um Personagem

Nesta sequência de aprendizagem, vamos criar o primeiro programa no Pocket Code, aprendendo a animar, mover e fazer falar um personagem. Permite ir conhecendo os diversos blocos de programação do Pocket Code, bem como desenvolver fluência no fluxo de trabalho nesta aplicação.

 1 - Animar um Personagem


Vamos começar por importar um fundo, e um personagem. De seguida, teremos de adicionar mais um aspeto ao nosso personagem. Para animar o personagem, vamos trabalhar como blocos de ciclo (Forever - repete para sempre), alternar aparência e controle (Tempo).


Estes são os blocos que formam o código da animação. 


Usar um bloco Próxima aparência em vez de Alternar aparência simplifica o programa. Mas se tiveres mais do que duas aparências, pode não dar o efeito desejado.

2 - Mover um Personagem

Agora que o nosso personagem já se mexe, vamos fazer com que se desloque no espaço do programa. Para isso, vamos usar blocos de Movimento.


Estes são os blocos do código do movimento.


Repara que não precisas de saber os valores das coordenadas X e Y. Podes usar a opção Place VisuallyPara isso, toca num dos valores, e vai aparecer a escolha de inserir valores ou colocar visualmente.

3 - Fazer o Personagem Falar




Agora que já sabemos animar e mover o personagem, vamos colocá-lo a falar. Para isso, podemos usar dois tipos de blocos: Say/Think (pertencem à categoria Aparências) ou Falar (pertencem à categoria Áudio). 


Os blocos Say/Think apresentam um balão ligado ao personagem, onde surge o texto que definires. 


O bloco Falar lê em voz computacional o texto que definires.

sábado, 3 de outubro de 2020

Tutorial Pocket Code: Interface

 

Neste vídeo, mostramos o interface do Pocket Code, as suas funções e blocos de programação.