Avançar para o conteúdo
Imagem com logotipo, contendo link para a página inicial
  • United Stated of America flag, representing the option for the English language.
  • Bandeira do Brasil, simbolizando a opção pelo idioma Português do Brasil.

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).

Ilustração da árvore gerada com os parâmetros especificados.


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:Você pode usar as ferramentas em seu navegador. Embora elas não sejam tão completas quanto ambientes instalados, elas podem ser úteis para os primeiros passos.

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.

  1. Introdução;
  2. Ponto de entrada e estrutura de programa;
  3. Saída (para console ou terminal);
  4. Tipos de dados;
  5. Variáveis e constantes;
  6. Entrada (para console ou terminal);
  7. Aritmética e Matemática básica;
  8. Operações relacionais e comparações;
  9. Operações lógicas e Álgebra Booleana;
  10. Estruturas de condição (ou condicionais ou de seleção);
  11. Subrotinas: funções e procedimentos;
  12. Estruturas de repetição (ou laços ou loops);
  13. Vetores (arrays), cadeias de caracteres (strings), coleções (collections) e estruturas de dados;
  14. Registros (structs ou records);
  15. Arquivos e serialização (serialization ou marshalling);
  16. Bibliotecas;
  17. Entrada em linha de comando;
  18. Operações bit-a-bit (bitwise operations);
  19. 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.

  1. Motivação;
  2. Introdução: Janela e Olá Mundo;
  3. Pixels e primitivas gráficas (pontos, linhas, e arcos);
  4. Aleatoriedade e ruído;
  5. Moedas e dados, retângulos e quadrados;
  6. Desenhando com primitivas gráficas (contornos e preenchimento para círculos, elipses e polígonos);
  7. Salvando e carregando arquivos de imagens;
  8. ...

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.

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.

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:

Contatos e redes sociais também estão no rodapé das páginas.