Olá!
Esta página está disponível nos seguintes idiomas:
Recursividade na Natureza: Gerador de Árvores
Partes de natureza exibem comportamentos recursivos. Um possível exemplo é uma árvore, na qual ramificações (galhos ou ramos) definem sub-ramificações. O script configurável a seguir pode gerar esboços de árvores. Dependendo dos parâmetros escolhidos, a imagem resultante pode parecer uma árvore (ou degenerar-se em linhas aparentemente caóticas).
O exemplo demonstra que, além de sistemas tradicionais, é possível criar arte com programação (por exemplo, existem áreas de estudo como Arte Generativa e Geração Procedural de Conteúdo).
Redes Sociais e Vídeos
Caso queira ser informada ou informado sobre atualizações de conteúdo deste website, você pode inscrever-se nas seguintes redes sociais:
Além disso, o autor começou a produção de vídeos para complementar as entradas em texto. Você pode encontrá-los no canal do YouTube.
Programação
Um dos objetivos deste website é fornecer material de qualidade sobre programação. Você gostaria de aprender programação, ou melhorar suas habilidades de design e implementação de sistemas? Os tópicos a seguir fornecem material escrito para o aprendizado de programação.
O autor possui doutorado em Ciência da Computação. Para conhecer mais sobre o autor, pode-se acessar a seção Sobre.
Editores Online de Texto e Código
Caso você queira experimentar programação sem instalar programas em seu computador, você pode usar um dos editores seguintes em seu navegador:- Ambiente online para programação em HTML 5 (HTML, JavaScript and CSS);
- Ambiente online para programação em JavaScript;
- Ambiente online para programação em Python;
- Ambiente online para programação em Lua.
Aprenda a Programar (Aprenda Programação)
Material introdutório sobre programação, com foco em pensamento computacional, fundamentos, técnicas, e programação nos paradigmas procedural e imperativo. Ao longo das entradas, você começará a aprender como pensar e resolver problemas como uma programadora ou um programador, explorando conceitos e recursos de linguagens de programação para criar programas. Você também entenderá melhor como um computador funciona.
Exemplos em JavaScript, Python, Lua, GDScript (Godot Engine), Scratch e Flowgorithm.
- Introdução;
- Ponto de entrada e estrutura de programa;
- Saída (para console ou terminal);
- Tipos de dados;
- Variáveis e constantes;
- Entrada (para console ou terminal);
- Aritmética e Matemática básica;
- Operações relacionais e comparações;
- Operações lógicas e Álgebra Booleana;
- Estruturas de condição (ou condicionais ou de seleção);
- Subrotinas: funções e procedimentos;
- Estruturas de repetição (ou laços ou loops);
- Vetores (arrays), cadeias de caracteres (strings), coleções (collections) e estruturas de dados;
- Registros (structs ou records);
- Arquivos e serialização (serialization ou marshalling);
- Bibliotecas;
- Entrada em linha de comando;
- Operações bit-a-bit (bitwise operations);
- Testes e depuração.
Ideias, Regras, Simulação
Abordagem baseada em projetos de simulações interativas e jogos digitais para o aprendizado de programação.
- Motivação;
- Introdução: Janela e Olá Mundo;
- Pixels e primitivas gráficas (pontos, linhas, e arcos);
- Aleatoriedade e ruído;
- Moedas e dados, retângulos e quadrados;
- Desenhando com primitivas gráficas (contornos e preenchimento para círculos, elipses e polígonos);
- Salvando e carregando arquivos de imagens;
- ...
A escrita do material está em progresso; portanto, se você chegou muito cedo e os itens anteriores não possuem links, por favor, retorne a esta página para conferir as atualizações.
Possíveis Tópicos Futuros
O material de Aprenda Programação pode servir como base para tópicos mais avançados no futuro.
- Ferramentas para Programação (Depuradores, Profilers, Sistemas de Controle de Versões);
- Programação de Baixo Nível;
- Programação Orientada a Objetos;
- Programação Funcional;
- Programação Lógica;
- Programação de Jogos Digitais e Simulações;
- Geração Procedural de Conteúdo;
- Desenvolvimento Web (back-end);
- Estruturas de Dados;
- Padrões de Projeto e Arquiteturas de Software;
- Automação;
- Acessibilidade e Inclusão Digital.
A escrita dos tópicos está sujeita à disponibilidade de tempo do autor e ao interesse da comunidade.
Em Desenvolvimento
Sistema Web para ensino e aprendizado de programação, focado em resolução de problemas e exemplos em nível progressivo de dificuldade.
Tópico a tópico, desenvolve-se habilidades e técnicas para resolver problemas usando linguagens de programação.
O material é complementar ao fornecido em Aprenda Programação, com exemplos em algoritmos (pseudocódigo com sintaxe para VisuAlg), Python, C e C++.
Informática para Programação
Antes de começar a programar, é interessante possuir algumas habilidades básicas de Informática. Os próximos tópicos fornecem treinamento para atividades básicas relacionadas à programação.
Sistemas de Arquivos
Programadoras e programadores devem saber o básico sobre sistemas de arquivos para criarem estruturas de diretórios para projetos, assim como arquivos de código-fonte. Habilidades básicas incluem saber como criar, renomear, mover e apagar arquivos e diretórios, e entender caminhos e como eles funcionam.
- Arquivos, diretórios (pastas) e caminhos;
- Gerenciadores e operações básicas de manipulação de arquivos.
Ambientes de Desenvolvimento
Como em outras atividades criativas, a programação requer ferramentas. Muitos sistemas operacionais não possuem compiladores, interpretadores, e editores de texto de alta qualidade pré-instalados. Assim, é importante aprender como instalar e configurar programas, assim como preparar um ambiente de desenvolvimento.
- Preparando seu computador para a criação de programas;
- Como instalar e configurar programas;
- Editores de texto para programação, edição de texto e ergonomia;
- Configuração de ambiente por linguagem de programação:
Em particular, os tópicos sobre configuração de ambiente para cada linguagem de programação apresentam exemplos em comum. Isso permite, por exemplo, comparar implementações em diferentes linguagens para uma mesma funcionalidade ou recurso de programação.
Entre em Contato com Franco Eusébio Garcia
Caso queira entrar em contato ou tenha alguma dúvida, você pode conversar comigo das seguintes maneiras:
- E-mail: francogarcia@protonmail.com
- GitHub: francogarcia
- GitLab: francogarcia
- Bitbucket: francogarcia
- YouTube: canal UCxbFFDZ4BmnT-Mhm8z1JsOA
- Instagram: @francogarciacom
- Twitter: @francogarciacom
Contatos e redes sociais também estão no rodapé das páginas.