Aula 01 - Ciclo de vida de um bug
Conteúdo:
- Apresentação da disciplina
- Ciclo de vida de um bug
Atividades:
- Primeiro Pull Request na disciplina
- Discussão: Processo de recepção/acompanhamento de feedback de usuários
Slides |
Handout
Aula 02 - Comunidades de Software
Conteúdo:
- Quem está envolvido com desenvolvimento de software livre?
- Como projetos se organizam?
Atividades práticas:
- Discussão: quais softwares vocês usam? Quem os desenvolve e por quê?
- Atividade: pesquisar como são organizados alguns projetos de software livre e escrever um documento colaborativo.
Slides |
Handout
Aula 03 - Primeira Contribuição
Conteúdo:
- Dificuldades que iniciantes enfrentam ao iniciar em um projeto
Atividades práticas:
- Discussão: como minimizar as dificuldades ao iniciar em um projeto?
- Atividade: escolha de um projeto para a primeira contribuição
Slides
Aula 04 - Debugando o projeto
Conteúdo:
- Problemas básicos tratados por sistemas de gerenciamento de código (compilação e dependências)
- Aplicando 4 regras de Debugging do livro no nosso projeto
- Como se encontrar no projeto usando `grep`
Atividades práticas:
- Registro do projeto/issue escolhido - Skill "Eu escolho você!"
- Compilação do projeto escolhido e criação de uma lista de tarefas necessárias.
Slides
Aulas 05 e 06 - Debugando o projeto
Conteúdo:
- 9 regras de debugging: contextualizando no seu projeto.
- Aula estúdio para trabalho no projeto escolhido.
Atividades práticas:
- Registro do projeto/issue escolhido - Skill "Eu escolho você!"
- Envio de um Pull Request para o projeto escolhido - Skill "Primeiro Bug"
Slides
05 |
06
Aula 07 - Documentação
Conteúdo:
- Documentação de usuário e desenvolvedor.
- Ferramentas para criação e hospedagem de documentação.
Atividades práticas:
- Estudo de um software que não acompanha documentação.
- Criação de uma documentação de usuário e desenvolvimento para este software - Skill "Caminho encontrado"
Slides |
Roteiro
Aula 08 - Tradução de software
Conteúdo:
- Internacionalização e Localização de código.
Atividades práticas:
- Tradução de um programa linha de comando usando *babel*
- Tradução de uma aplicação *Flask* usando *Flask-babel*.
Slides |
Roteiro
Aula 09 - Documentação de API, qualidade de código e testes
Conteúdo:
- Motivar uso de ferramentas para documentação de API e qualidade de código.
- (Re)Apresentação da ideia de testes unitários.
Atividades práticas:
- Criação de documentação de API usando sphinx-apidoc
- Utilização das ferramentas pylint e pytest
Slides
Aula 10 - Licenças de software
Conteúdo:
- Distribuição de software
- Direitos autorais, copyright e licenças de software
Atividades práticas:
- Discussão sobre licenças de software (livre) e seu impacto em um projeto.
- Produção de um pequeno texto sobre a Commons Clause.
Slides
Aula 11 - Início do projeto
Conteúdo:
- Apresentação do projeto da disciplina.
Atividades práticas:
- Escolha de projetos interessantes
- Planejamento do primeiro sprint da disciplina
Slides
Aulas 12 a 15 - Projeto
Atividades práticas:
- Trabalho em projetos Open Source
Aula 16 a 19 - Projeto
Conteúdo:
Atividades práticas:
- Trabalho em projetos Open Source
Slides
Aula 20 - Pacotes Python
Conteúdo:
- Estrutura de um Pacote Python
- Tipos de distribuição
- Dependências
Atividades práticas:
- Criação de um pacote Python simples e upload para o TestPyPI
Handout
Aula 21 - Código de conduta
Conteúdo:
Atividades práticas:
- Discussão sobre uma situação hipotética de conduta duvidosa no contexto de um projeto
- Criação de um texto de posicionamento sobre a situação acima
Slides |
Posicionamento público