-
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
11 changed files
with
536 additions
and
22 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,101 @@ | ||
--- | ||
title: "02-lógica com blocos" | ||
draft: false | ||
tags: | ||
- programador | ||
- lógica | ||
- algoritmos | ||
--- | ||
A programação em blocos, também conhecida como programação visual, é uma maneira intuitiva e divertida de aprender e criar programas de computador. Imagine um quebra-cabeça, onde cada peça representa um comando ou ação. Ao encaixar as peças corretamente, você constrói a lógica do seu programa. | ||
|
||
Em vez de escrever linhas de código complexas, você utiliza blocos coloridos interativos para montar a sequência de instruções. Cada bloco possui uma função específica, como mover um personagem, tocar um som ou fazer um cálculo. As cores e formatos dos blocos facilitam a identificação de sua função, tornando a programação mais acessível para iniciantes. | ||
|
||
## Vantagens | ||
|
||
- **Aprendizagem intuitiva:** Ideal para iniciantes, crianças e pessoas sem experiência anterior em programação. | ||
- **Interface amigável:** O ambiente visual torna a programação mais divertida e engajadora. | ||
- **Lógica de programação:** Desenvolve o raciocínio lógico, resolução de problemas e pensamento crítico. | ||
- **Criatividade:** Estimula a criatividade e a capacidade de solucionar problemas de forma inovadora. | ||
- **Trabalho em equipe:** Permite a colaboração entre pessoas com diferentes níveis de conhecimento em programação. | ||
|
||
## Aplicações | ||
|
||
- **Desenvolvimento de jogos:** Crie jogos interativos, plataformas, quebra-cabeças e muito mais. | ||
- **Animações e histórias interativas:** Dê vida a histórias com personagens, sons e efeitos visuais. | ||
- **Protótipos de aplicativos:** Crie modelos interativos de aplicativos para testar ideias e conceitos. | ||
- **Ferramentas educativas:** Auxilie no aprendizado de diversas disciplinas de forma lúdica e interativa. | ||
- **Robótica:** Programe robôs para realizar tarefas, se moverem e interagirem com o ambiente. | ||
|
||
## Exemplos | ||
|
||
- [**Scratch:**]([https://scratch.mit.edu/](https://scratch.mit.edu/)) - Uma plataforma popular para iniciantes, com interface amigável e grande comunidade online. | ||
- [**Blockly:**]([https://blockly.games/](https://blockly.games/)) - Ferramenta versátil utilizada em diversos projetos, incluindo desenvolvimento web e robótica. | ||
- [**Code.org:**]([https://studio.code.org/](https://studio.code.org/)) - Oferece cursos e desafios interativos para aprender conceitos básicos de programação. | ||
- [**App Inventor:** ]([https://appinventor.mit.edu/](https://appinventor.mit.edu/)) - Permite criar aplicativos Android utilizando blocos visuais. | ||
- [**Minecraft Education Edition:** ](https://education.minecraft.net/) - Integra conceitos de programação à jogabilidade do Minecraft. | ||
- [godotengine.org](https://godotengine.org/) | ||
|
||
A programação em blocos é uma ferramenta poderosa que abre portas para o mundo da criação digital. Através dela, você pode desenvolver jogos, animações, aplicativos e muito mais, tudo de forma intuitiva, divertida e acessível. Seja você um iniciante ou um programador experiente, a programação em blocos oferece uma maneira inovadora de aprender, criar e se expressar. | ||
|
||
**Para mais informações:** | ||
|
||
### Scratch | ||
|
||
O Scratch é uma plataforma de programação em blocos que permite criar jogos, animações e histórias interativas de forma divertida e educativa. Ideal para iniciantes, crianças e pessoas sem experiência em programação, o Scratch oferece uma interface amigável e intuitiva, utilizando blocos coloridos que se encaixam para construir a lógica do programa. | ||
|
||
**Começando com o Scratch:** | ||
|
||
1. **Acesse o Scratch:** Acesse o site do Scratch em [scratch.mit.edu](https://scratch.mit.edu/) e crie uma conta gratuita. | ||
2. **Explore a interface:** Familiarize-se com a interface do Scratch, que inclui as seguintes áreas: | ||
- **Palco:** Onde seus personagens e projetos serão exibidos. | ||
- **Abas de Sprites:** Contém os personagens e objetos que você pode usar em seus projetos. | ||
- **Área de Código:** Onde você monta os blocos para programar seus personagens e objetos. | ||
- **Paleta de Blocos:** Contém diferentes categorias de blocos para movimento, sons, aparência, controle, etc. | ||
3. **Crie seus personagens:** Utilize a aba de sprites para criar ou importar personagens e objetos que serão utilizados em seu projeto. Você pode desenhá-los, importar imagens ou utilizar personagens pré-definidos. | ||
4. **Programe seus personagens:** Arraste e solte os blocos da paleta de código para a área de código. Cada bloco representa uma ação ou comando específico (mover, falar, tocar som, etc.). | ||
5. **Teste e refine:** Clique no botão "Bandeira Verde" para testar seu programa. Observe como seus personagens se comportam e faça ajustes nos blocos de código conforme necessário. | ||
6. **Compartilhe e explore:** Compartilhe seus projetos Scratch com a comunidade online ou explore os projetos criados por outros usuários para se inspirar e aprender novas técnicas. | ||
|
||
**Dicas para iniciantes:** | ||
|
||
- Comece com projetos simples e vá aumentando a complexidade gradualmente. | ||
- Utilize os tutoriais e guias disponíveis no site do Scratch para aprender novas funcionalidades. | ||
- Explore os projetos de outros usuários para se inspirar e aprender novas técnicas. | ||
- Participe da comunidade online do Scratch para obter ajuda e compartilhar seus projetos. | ||
- Divirta-se e seja criativo! | ||
|
||
**Recursos úteis:** | ||
|
||
- **Site do Scratch:** [scratch.mit.edu/](https://scratch.mit.edu/) | ||
- **Tutoriais do Scratch:** [scratch.mit.edu/explore/projects/tutorials/](https://scratch.mit.edu/explore/projects/tutorials/) | ||
- **Guia do Usuário do Scratch:** [https://cdn.scratch.mit.edu/scratchr2/static/**709da8e5f3d72129538a4ccdbcbf5f2a**/pdfs/help/Getting-Started-Guide-Scratch2.pdf](https://gemini.google.com/app/%3C0%3Ehttps://cdn.scratch.mit.edu/scratchr2/static/__709da8e5f3d72129538a4ccdbcbf5f2a__/pdfs/help/Getting-Started-Guide-Scratch2.pdf) | ||
- **Comunidade Scratch:** [scratch.mit.edu/discuss/](https://scratch.mit.edu/discuss/) | ||
|
||
> [!tip] | ||
> Lembre-se que o Scratch é uma ferramenta poderosa que permite criar projetos incríveis. Com um pouco de prática e criatividade, você poderá dominar a plataforma e dar vida às suas ideias! | ||
### Code.org | ||
|
||
O [code.org](https://studio.code.org/) é um excelente recurso para quem deseja aprender ciência da computação de forma autodidata. Oferece lições que permitem aos alunos criar programas de computador, desenvolver habilidades de resolução de problemas e enfrentar desafios interessantes. Além disso, os alunos podem fazer jogos e projetos criativos para compartilhar com amigos, familiares e professores. | ||
|
||
[Trilha de aprendizagem de Programação em blocos com code.org](https://studio.code.org/s/express-2021) | ||
|
||
### Godot | ||
|
||
- O Godot é um motor de jogos que utiliza uma linguagem de script chamada GDScript, similar ao Python. | ||
- O Godot é um motor de jogo gratuito e de código aberto, acessível a todos. | ||
- Apesar de não ser totalmente visual, o GDScript é conhecido por ser amigável para iniciantes e relativamente fácil de aprender. | ||
- O Godot fornece um editor de script visual chamado editor de nó VisualScript. Ele permite que você conecte nós visualmente para representar a lógica do seu jogo. | ||
- Embora não seja tão abrangente quanto a programação em blocos pura, pode simplificar algumas tarefas e fornecer uma abordagem mais intuitiva para alguns usuários. | ||
|
||
**Se você estiver interessado no Godot, aqui estão alguns recursos:** | ||
|
||
- Site oficial do Godot: [https://godotengine.org/](https://godotengine.org/) | ||
- Documentação do Godot: [https://docs.godotengine.org/en/stable/index.html](https://docs.godotengine.org/en/stable/index.html) | ||
- Fórum da comunidade Godot: [https://forum.godotengine.org/](https://forum.godotengine.org/) | ||
- Godot na DEV Community: [https://dev.to/t/godot](https://dev.to/t/godot) | ||
|
||
> [!nota] | ||
> Embora o Godot não seja uma plataforma de programação em blocos pura, seus recursos de script visual e linguagem amigável para iniciantes o tornam uma boa opção para quem se interessa pelo desenvolvimento de jogos sem ter muita experiência em codificação. | ||
|
||
[01-cronograma-programador-de-sistemas ⬅️](01-cronograma-programador-de-sistemas.md) | [➡️ 03-introdução-aos-algoritmos](03-introdução-aos-algoritmos.md) |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,136 @@ | ||
--- | ||
title: 03 Introdução aos algoritmos | ||
draft: false | ||
tags: | ||
- programador | ||
- lógica | ||
- algoritmos | ||
--- | ||
Algoritmos são conjuntos de instruções precisas e ordenadas que definem como realizar uma tarefa ou resolver um problema. Eles são a base da programação e estão presentes em diversos aspectos da nossa vida, desde o funcionamento de computadores e smartphones até a forma como realizamos tarefas cotidianas. | ||
|
||
## Características | ||
|
||
- **Precisão:** As instruções do algoritmo devem ser claras e inequívocas, não permitindo interpretações dúbias. | ||
- **Ordem:** As instruções devem ser executadas em uma sequência específica para garantir o resultado correto. | ||
- **Generalidade:** O algoritmo deve ser aplicável a diferentes casos dentro do problema que se pretende resolver. | ||
- **Finitudes:** O algoritmo deve ter um número finito de instruções e chegar a um resultado final em um tempo determinado. | ||
- **Eficiência:** O algoritmo deve utilizar o mínimo de recursos computacionais para alcançar o resultado desejado. | ||
|
||
## Tipos | ||
|
||
- **Algoritmos sequenciais:** Executam as instruções uma após a outra, em uma ordem pré-definida. | ||
- **Algoritmos de decisão:** Permitem tomar decisões com base em condições específicas. | ||
- **Algoritmos recursivos:** Dividem o problema em subproblemas menores e resolvem cada um deles de forma recursiva. | ||
- **Algoritmos de busca:** Localizam um elemento específico dentro de um conjunto de dados. | ||
- **Algoritmos de ordenação:** Organizam um conjunto de dados em uma ordem específica. | ||
|
||
## Exemplos de algoritmos na vida cotidiana | ||
|
||
- **Receita culinária:** Uma sequência de instruções para preparar um prato específico. | ||
- **Montagem de móveis:** Um conjunto de passos para montar um móvel a partir de peças e ferramentas. | ||
- **Resolução de um problema matemático:** Uma série de operações matemáticas para chegar a um resultado. | ||
- **Jogos de tabuleiro:** Regras e instruções para jogar um jogo específico. | ||
- **Algoritmos de busca na internet:** Encontram páginas web relevantes para uma pesquisa específica. | ||
|
||
## Importância dos algoritmos | ||
|
||
- **Eficiência e produtividade:** Permitem automatizar tarefas e otimizar processos, tornando-os mais rápidos e eficientes. | ||
- **Precisão e confiabilidade:** Garantem a execução correta de tarefas e a obtenção de resultados confiáveis. | ||
- **Criatividade e inovação:** Permitem desenvolver soluções inovadoras para problemas complexos. | ||
- **Aprendizado e desenvolvimento:** Auxiliam no desenvolvimento do raciocínio lógico, da resolução de problemas e da capacidade de pensar de forma organizada. | ||
|
||
> [!Nota] | ||
> Os algoritmos são ferramentas essenciais para a resolução de problemas, a automação de tarefas e a criação de soluções inovadoras. Compreender seus princípios e aplicá-los de forma eficiente é fundamental para o sucesso em diversas áreas da vida, desde a programação de computadores até a resolução de problemas cotidianos. | ||
## Conceitos de algoritmos | ||
|
||
Usamos a lógica para guiar nossos pensamentos ou ações para chegarmos a uma solução. Devemos ter sempre em mente que a lógica está correta se ela atingir o objetivo para que ela foi proposta. | ||
|
||
Para conseguirmos inserir lógica em nossas atividades, precisamos aprender a pensar de forma estruturada, ou seja, desenvolver e aperfeiçoar a técnica de pensamento e seguir uma sequência de raciocínio que crie passos objetivos e seguros até a solução. | ||
|
||
|
||
> [!NOTE] IMPORTANTE | ||
Segundo Manzano e Oliveira (2012), para usar o raciocínio lógico, é necessário ter domínio do pensar, bem como saber pensar, ou seja, possuir e usar a "arte de pensar". | ||
Quando organizamos nossos pensamentos de forma lógica conseguimos associar as informações e transformá-las em base para nossas soluções. | ||
|
||
## Exemplos de algoritmos lógicos | ||
|
||
Analise a lógica a seguir: | ||
|
||
Se: todo mamífero é um animal | ||
E: todos os gatos são mamíferos | ||
Logo: todos os gatos são animais! | ||
Ou | ||
Se: todos os veículos são transportes | ||
E: todas as motos são veículos | ||
Logo: todas as motos são transportes! | ||
|
||
- No exemplo apresentado usamos a lógica para averiguar uma situação e chegar a uma conclusão, fazendo associações entre eles. | ||
- A primeira parte analisa que se todos os seres mamíferos são animais e que se todos os gatos são mamíferos, então os gatos também fazem partes do grupo de animais. | ||
- A segunda faz uma análise parecida, que se todos os veículos são chamados de transportes e se todas as motos são consideradas veículos, então as motos também fazem parte do grupo de transportes. | ||
|
||
Utilizamos a lógica a todo o momento em nossas vidas, quando pensamos, falamos ou escrevemos, utilizamos a lógica para ordenar as palavras e dar sentido ao que estamos fazendo.\ | ||
Ao longo do dia, usamos o nosso raciocínio lógico para resolvermos questões, das mais simples as mais complexas.\ | ||
A lógica nos ensina a corrigirmos nosso pensamento, nos ensinando a usá-lo corretamente. Usando o raciocínio de forma ordenada dividindo a ação em vários passos até a solução do problema. | ||
|
||
Analise a lógica a seguir: | ||
|
||
Se: A porta está fechada | ||
E: a mochila está dentro da casa | ||
Logo: Preciso primeiro abrir a porta, entrar em casa para depois pegar a mochila! | ||
Ou | ||
Se: Se Jussara é mais nova que José | ||
E: José é mais novo que Fábio | ||
Logo: Jussara é mais nova que Fábio! | ||
|
||
Neste exemplo, somos apresentados com duas premissas e uma conclusão: | ||
|
||
- **Premissa 1:** A porta está fechada. | ||
- **Premissa 2:** A mochila está dentro de casa. | ||
- **Conclusão:** Preciso primeiro abrir a porta, entrar em casa e depois pegar a mochila! | ||
|
||
Para analisar este raciocínio lógico, podemos usar uma **tabela verdade**: | ||
|
||
|Premissa 1|Premissa 2|Conclusão| | ||
|---|---|---| | ||
|Verdadeiro|Verdadeiro|Verdadeiro| | ||
|Verdadeiro|Falso|Falso| | ||
|Falso|Verdadeiro|Falso| | ||
|Falso|Falso|Verdadeiro| | ||
|
||
> [!Nota] | ||
Como podemos ver, a conclusão só é verdadeira quando ambas as premissas são verdadeiras. Isso significa que, para recuperar a mochila, primeiro devemos abrir a porta e entrar em casa. Se a porta estiver aberta ou se a mochila estiver fora de casa, a conclusão não necessariamente se segue. | ||
|
||
**Exemplo: Comparando Idades** | ||
|
||
Neste exemplo, somos apresentados com três declarações que comparam as idades de três pessoas: | ||
|
||
- **Declaração 1:** Jussara é mais nova que José. | ||
- **Declaração 2:** José é mais novo que Fábio. | ||
- **Conclusão:** Jussara é mais nova que Fábio. | ||
|
||
Para analisar este raciocínio lógico, podemos usar a propriedade transitiva da idade. A propriedade transitiva afirma que se A é mais novo que B, e B é mais novo que C, então A também deve ser mais novo que C. | ||
|
||
Neste caso, temos: | ||
|
||
- **Jussara é mais nova que José.** | ||
- **José é mais novo que Fábio.** | ||
|
||
Portanto, pela propriedade transitiva da idade, podemos concluir que **Jussara é mais nova que Fábio**. | ||
|
||
**Conclusão** | ||
|
||
Ambos os exemplos de raciocínio lógico são válidos. O primeiro exemplo usa uma tabela verdade para mostrar que a conclusão só é verdadeira quando ambas as premissas são verdadeiras. O segundo exemplo usa a propriedade transitiva da idade para mostrar que a conclusão segue das duas declarações. | ||
|
||
|
||
> [!tip] | ||
Em geral, o raciocínio lógico é uma ferramenta poderosa que pode ser usada para resolver problemas e tomar decisões. Ao compreender os princípios da lógica, podemos melhorar nossas habilidades de pensamento crítico e nos tornar comunicadores mais eficazes. | ||
|
||
Podemos representar os algoritmos de forma gráfica com [fluxogramas](04-fluxogramas.md). | ||
|
||
## 📚 Livros de introdução a programação | ||
|
||
- [Desenvolvimento de sistemas Allen Oberleitner](https://jocile.notion.site/Desenvolvimento-de-sistemas-Allen-Oberleitner-7f43c99c571d43ecafd026cda967461e) | ||
- [Lógica de programação Gley Fabiano Cardoso Xavier](https://jocile.notion.site/L-gica-de-programa-o-Gley-Fabiano-Cardoso-Xavier-1dbcc1c64e45402d9f130d07fd2914dd) | ||
|
||
[02-logica-com-blocos ⬅️](02-logica-com-blocos.md) | [➡️ 04-fluxogramas](04-fluxogramas.md) |
Oops, something went wrong.