# data[].attributes.body
José Benício dos Anjos França
Tassiana Schmitt
Hailisson Rodrigo Ferreira

# data[].attributes.body
Cada civilização ao longo da história possuía um tipo de linguagem diferente, assim como cada país tem seu próprio idioma que favorece a comunicação entre eles. Com o computador não é diferente, foi desenvolvido uma linguagem específica que programa os computadores na execução de uma determinada ordem, geralmente através de algoritmos. Neste sentido, analisar a evolução da linguagem de programação é verificar as contribuições do período da pré-história das linguagens, as primeiras linguagens e os paradigmas da programação com suas principais linguagens.

# data[].attributes.body
Com o surgimento, a partir da década de 1930,  dos primeiros computadores mecânicos e eletromecânicos fundamentados na estrutura imaginada por Charles Babbage (1792–1871) que já poderia ser viabilizada pela tecnologia da época. Muitos outros computadores eletrônicos concretizados posteriormente sofreram influências da máquina analítica de Babbage. Mas, foi o engenheiro civil Konrad Zuse (1910-1995) que desenvolveu a primeira máquina de cálculo controlada automaticamente. A calculadora construída só necessitava de três unidades básicas, são elas: uma controladora, uma memória e um dispositivo de cálculo para a aritmética. Daí surgiu o computador Z1, em 1936, construído inteiramente com peças mecânicas e uma fita de película cinematográfica para as instruções controlarem a máquina. Depois do computador Z1, Zuse chegou a desenvolver os computadores Z2, Z3 e Z4.
Zuse depois de salvar Z4 de um bombardeio e mudar-se para a vila Hinterstein nos Alpes percebeu que não existia uma notação formal para a descrição de algoritmos e começou a desenvolver uma linguagem chamada de Plankalkül (program calculus). Para Zuse, o Plankalkül tinha como missão fornecer uma descrição formal pura de qualquer procedimento computacional. Contudo, tal linguagem de programação não perdurou muito por não apresentar uma sintaxe amigável para expressar programas em um formato legível e facilmente editável apesar de possuir conceitos fundamentais para a programação: tipos de dados, estrutura de dados hierárquicos, atribuição, iteração, entre outros.

Para Fonseca Filho¹ (2007), um procedimento efetivo é uma sequência finita de instruções que podem ser executadas por um agente computacional, seja ele humano ou não. Tais propriedades apresentadas são:

I. A descrição deve ser finita;
II. Parte de um certo número de dados, pertencente a conjuntos específicos de objetos, e espera-se que produza um certo número de resultados que mantenham relação específica com os dados;
III. Supõe-se que exista um agente computacional (humano, eletrônico, mecânico, entre outros) que execute as instruções do procedimento;
IV. Cada instrução deve ser bem definida;
V. As instruções devem ser tão simples que poderiam ser executadas por alguém usando lápis e papel, em um espaço de tempo finito.

1 FONSECA FILHO, C. História da computação: O Caminho do Pensamento e da Tecnologia. Porto Alegre: EDIPUCRS, 2007.

# data[].attributes.attachment_link.title
O Primeiro Computador do Mundo - Charles Babbage & Ada Lovelace - Documentário

# data[].attributes.body
Diversos autores apresentam a linguagem de programação dividida de diferentes formas para classifica-las ao longo da história conhecidas como paradigmas de programação. Dentre elas evidencia-se a divisão dentro da seguinte taxonomia apresentada por Gudwin¹ (1997):

1. Linguagens de Baixo Nível: tais como “Linguagem Assembly”.

2. Linguagens Não-Estruturadas: tais como as linguagens COBOL (COmmon Business Oriented Language) e BASIC (Beginners All-purpose Symbolic Instruction Code).

3. Linguagens Procedurais: São linguagens com estruturas de controle que permitem, entre outras coisas, o teste de condições (if-then-else), controle de repetição de blocos de código (for, while, do), fazem a seleção de alternativas (switch, case) e dividem o código do programa em módulos intitulados também de funções ou procedimentos. Esse grupo de linguagem é representado pelos programas em C, Pascal, Fortran, Algol e Forth.

4. Linguagens Funcionais: A programação dessa linguagem evidenciava-se na avaliação de expressões ao invés da execução de comandos. As expressões nessa linguagem são formadas utilizando-se funções para combinar valores binários. As linguagens mais conhecidas são LISP (LISt Processor) e a Prolog, todavia, a linguagem Scheme é frequentemente mencionada por ser uma variante simplificada da LISP.

5. Linguagens Orientadas a Objeto: Esta linguagem surgiu da necessidade de se organizar o processo de programação de uma linguagem. As linguagens que se destacam a orientação de objetos são: Simula, Smalltalk, C++, Objective-C, Java, Eiffel, Python e Ruby

6. Linguagens Específicas a Aplicações: As linguagens específicas foram desenvolvidas para atenderem algumas necessidades da época, dentre elas destacam-se às linguagens para bancos de dados, Simulação, Scripts e Formatação de textos. Dentre essas linguagens específicas destacamos o MATLAB (MATrix LABoratory) que é a linguagem de simulação com maior destaque nas aplicações científicas.

7. Linguagens Visuais: As linguagens de programação visual, segundo Gudwin (1997), provém do princípio de que os gráficos são mais inteligíveis do que os textos. Dessa forma, a criação de um programa por meio de diagramas e outros recursos gráficos tendem a tornar a própria programação ainda mais fácil, possibilitando que os usuários sem muitas habilidades em programação gerem seus próprios programas. Dentre as linguagens de programação visual temos: Toolkits,  Delphi, Visual Basic, Visual C++, Khoros, Simulink, Processing, App Inventor e SCRATCH.

1 GUDWIN, R. R. Linguagens de programação – mini e microcomputadores: Software. UNICAMP, 1997. Notas de aula para disciplina EA877.

# data[].attributes.body
A linguagem  de  programação  visual  (Visual  Programming  Language  –  VPL) é um conjunto de técnicas que nos permite ordenar a forma pela qual se faz a comunicação visual, assegurando a elaboração de mensagens gráficas. Esta linguagem permite ao usuário criar programas através de manipulação gráfica. A interação mais comum dos modelos de VPLs são: arrastar  blocos  ao  redor  de  uma  tela;  usar  diagramas de  fluxo,  diagramas  de  estado  e  outros  componentes;  usar  ícones  ou  representação sem  texto.  A  codificação  baseada  em  blocos  pode  ser  considerada  como  um  modelo VPL  e  tornou-se  altamente  eficaz  ao  introduzir  estudantes  novatos  em  disciplinas introdutórias de  programação de  computadores em cursos da área de informática como aponta Christ e Begosso em seu artigo "Um estudo sobre a Programação baseada em Blocos".
Ao invés da programação baseada em código textual, a codificação baseada em blocos envolve a função de arrastar "blocos" de instruções dentro de um ambiente apropriado sem a preocupação com questões de sintaxe e qualidade do software. Acreditamos que sua utilização seja viável e propícia para além de estudantes e profissionais da área de informática, onde não programadores podem aprender e desenvolver projetos.

# data[].attributes.body
O  App  Inventor  é  um  software  web  criado  pela  universidade americana  Massachusetts  Institute  of  Technology  (MIT)  que  permite  desenvolver aplicativos  Android  usando  um  navegador  da  Web  e  um  telefone  ou  emulador conectados  (CORDEIRO¹, 2019). A criação dos aplicativos é feita selecionando componentes para o mesmo e montando blocos que especificam a interação e comportamento desses componentes. Toda construção do aplicativo é feita de forma visual, juntando peças com peças como se fosse um quebra-cabeça. Sua interface aparece na tela à medida que os comandos são executados, para que o projeto possa ser testado conforme avança na sua construção. Ao finalizar o projeto, é possível empacotar tudo e produzir um aplicativo executável para instalar em outros smartphones com sistema Android.

CORDEIRO,  Filipe.  App  Inventor:  Guia  de  Criação  de  Apps.  Disponível  em: https://www.androidpro.com.br/blog/desenvolvimento-android/app-inventor/. Acesso em  jan. 2022

# data[].attributes.body
Acessem ao tutorial do MIT App Inventor disponibilizado pela Univap com autoria de Bruno Michel Pera onde encontramos informações detalhadas de utilização do aplicativo.

# data[].attributes.body
Esta apostila da Computação na Escola ensina a construir o jogo Caça Mosquito no App Inventor demonstrando da fase inicial até a fase final com apresentação do jogo para testagem.
O tutorial apresenta diversas imagens mostrando o passo a passo incluindo como conseguir exemplares das imagens utilizadas para reproduzir seu próprio jogo.

# data[].attributes.headline
Apostila com explicação da funcionalidade dos blocos - no App Inventor

# data[].attributes.subject
Apostila com explicação da funcionalidade dos blocos - no App Inventor

# data[].attributes.body
Nesta apostila do Programa Global de Empreendedorismo e Tecnologia para Meninas com tradução e adaptação de Vanessa Arnobio é possível encontrar uma explicação para diversos blocos lógicos em função da sua tradução do inglês para o português. Com isso, podemos ter acesso a sua funcionalidade antes de aplicarmos no projeto.

# data[].attributes.headline
Atividade no App Inventor - calculadora e função do 1° grau

# data[].attributes.subject
Atividade no App Inventor - calculadora e função do 1° grau

# data[].attributes.body
Neste arquivo podemos encontrar diversas propostas de utilização do App Inventor no ensino de matemática, incluindo uma calculadora simples e o ensino de função do primeiro grau.
Com base na leitura preliminar, podemos realizar estas aplicações junto aos(às) estudantes desde o 6° ano do Ensino Fundamental II, ampliando até o Ensino Médio.

# data[].attributes.headline
Possibilidades de utilização no Ensino de Física

# data[].attributes.subject
Possibilidades de utilização no Ensino de Física

# data[].attributes.body
Na defesa de mestrado de Oliveira e Motta (2020) é possível encontrar uma demonstração da aplicação do conhecimento de Física junto a linguagem de programação ao desenvolver aplicativos para estudar as Leis de Newton.
Nestes aplicativos foram utilizados textos informativos e exercícios além de inclusão de uma calculadora situacional.

# data[].attributes.body
Nesta apostila da IFDROID encontraremos diversas aplicações matemáticas para utilização do App Inventor, tais como: Regra de três simples e composta; Teorema de Pitágoras; Resolução de equações do 1° e 2° grau e exponenciais; Cálculo de áreas.

Considero um material bem interessante para os interessados na área.

# data[].attributes.body
Que tal aprender Geometria Analítica utilizando linguagem de programação. MAUÉS, ALVES e NORONHA (2020) propõe um produto educacional para seu curso de mestrado implementando a aprendizagem de diversos conteúdos da Geometria Analítica combinado com a construção de aplicativos no App Inventor.

# data[].attributes.headline
Linguagem de Programação baseada em Blocos

# data[].attributes.subject
Linguagem de Programação baseada em Blocos

# data[].attributes.body
As linguagens baseadas em blocos foram elaboradas para produzirem recursos de ambientes de programação acessíveis e atraentes, facilitando o acesso e utilização de não programadores.  A  cor  e  a  forma  dos  comandos,  a organização  dos  blocos  e  o  mecanismo  de  construção  dos  programas  são  facilmente navegáveis  e  exibidos  de  forma  a  contribuir  para  apoiar  os  estudantes  novatos  na escrita  de  programas.
Dentre as linguagens de programação em blocos podemos citar:  Alice,  MIT  App  Inventor,  Blockly  Games,  Code.org, Gameblox,  Pencil  Code,  Microsoft  MakeCode e  Scratch.

Conheça um pouco mais destas linguagens no artigo de Christ e Begosso apresentado no tópico Linguagem de Programação Visual ou acessem os vídeos inseridos em cada linguagem.

# data[].attributes.headline
Canal com construções de Matemática no App Inventor

# data[].attributes.subject
Canal com construções de Matemática no App Inventor

# data[].attributes.body
No canal Matemática com Aplicativos no Youtube é possível encontrar várias aplicações no App Inventor com construções Matemáticas.

# data[].attributes.body
O  Scratch (2019) foi desenvolvido pelo Lifelong  Kindergarten Group do Instituto de Tecnologia de Massachussets (MIT, experiente no desenvolvimento de ferramentas educativas para crianças  na  idade  escolar)  e  pelo  grupo  KIDS  da Universidade  de  Califórnia,  Los Angeles. Originalmente voltado para crianças de 6 a 8 anos de idade, porém as pesquisas apontam que pode ser usado em todos os níveis de ensino. Todos  os  recursos  de tutoriais,  vídeos,  exemplos,  comunidades  virtuais  e  versões  do  aplicativo  podem  ser acessados  a  partir  de  http://scratch.mit.edu/. No Brasil este ambiente já possui comunidades interessadas e podem ser obtidas informações em http://www.scratchbrasil.com.br/.

Scratch é um novo contexto de programação visual e multimídia baseado em Squeak.  Está destinado à criação e promoção de sequencias animada para a aprendizagem de

programação  de  forma  simples  e  eficiente.  Oferece  uma  interface  intuitiva  e  muito fácil  de  compreender.  No  Scratch  é  possível  trabalhar  com  imagens,  fotos,  música, criar desenhos, mudar aparência, fazendo com que os  objetos interajam, tornando a programação inteiramente visual. Ele recupera o modelo construtivista do Logo e dos

E - Toys Squeak.

O público alvo do Scratch são crianças do ensino fundamental,  permitindo  a construção de animações, trabalhando também, numa abordagem interdisciplinar, ou seja, utilizar conceitos  das  disciplinas escolares para  montar projetos específicos e permitir que as crianças  aprendam de forma criativa e saborosa.
A Figura acima apresenta  a tela de programação com as estruturas disponíveis para elaboração do código e o palco executando a programação.

# data[].attributes.headline
Curso completo de SCRATCH do Programa NERDS

# data[].attributes.subject
Curso completo de SCRATCH do Programa NERDS

# data[].attributes.body
O Programa NERDS (Núcleo Educacional de Robótica e Desenvolvimento de Software) da Fronteira e Programa PET (Programa de Educação Tutorial) da Fronteira da Universidade Federal de Mato Grosso do Sul (UFMS) - Campus Ponta Porã oferece um curso completo em SCRATCH.

Muito interessante com diversas proposta de aplicações implementando novos recursos gradativamente.

# data[].attributes.body
O canal PrOgRaMaNdO traz um curso de Scratch para apoio ao estudante de informática com construções e inserção de novos recursos a medida que avança, totalmente gratuito.

# data[].attributes.headline
Pensamento Computacional e atividades no Scratch

# data[].attributes.subject
Pensamento Computacional e atividades no Scratch

# data[].attributes.body
Neste material ANASTACIO (2020) apresenta proposta de atividades utilizando o Scratch relacionando os 4 pilares do pensamento computacional.

# data[].attributes.headline
Scratch: Guia prático para aplicação na Educação Básica

# data[].attributes.subject
Scratch: Guia prático para aplicação na Educação Básica

# data[].attributes.body
Neste livro encontramos a história do programa bem como exemplos de atividades e aplicações para serem desenvolvidas

# data[].attributes.body
A Comunidade do SCRATCH no Brasil possui um canal no youtube como vários materiais interessantes com a utilização do Scratch para usuários iniciantes.

A página do Scratch Brasil (http://www.scratchbrasil.net.br/ ou https://scratchbrasil.org.br/) é possível encontrar diversos materiais e propostas de trabalhos para todos os níveis. Incluindo informações para os educadores cadastrarem-se na plataforma on-line onde podemos criar uma conta com perfil de docente e assim adicionar os(as) discentes como uma turma virtual para acompanhar as produções nas aulas tanto presencial como remotamente.

# data[].attributes.attachment_link.keywords[]
"scratch brasil" "scratch mit" "scratch cards" eduscratch "scratch kids" "scratch br" scratchbr "scratch brasil" "scratch brazil" "scratch mit"

# data[].attributes.attachment_link.description
O Scratch Brasil tem como missão propagar a ferramenta Scratch (MIT), ofertando gratuitamente materiais para o desenvolvimento de jogos e animações educativa...