# Introdução ao Desenvolvimento de Sistemas de Software

Disciplina do Bacharelado em Ciência da Computação do Instituto de Matemática e Estatística da Universidade de São Paulo, ministrada pelo Prof. Paulo Meirelles. Usaremos este espaço para os alunos postagem materiais para serem compartilhado com as turmas e a comunidade.

## Objetivos da disciplina

Tornar os alunos capazes de projetar, implementar e testar sistemas de software avançados, usando conceitos e técnicas de engenharia de software e banco de dados de maneira integrada e evolutiva. Os sistemas serão desenvolvidos em times, de maneira colaborativa, e de modo a priorizar clareza de código e extensibilidade.

## Programa resumido

* Princípios e técnicas de desenvolvimento de sistemas de software
* Testes de software
* Persistência de dados
* Modelo entidade relacionamento e modelo relacional

## Tutoriais 2025

* Tópico (Dupla)

## Tutoriais 2024

* Pytest + check (Beatriz Viana Costa e Maysa Cristina Claudino)
* Cucumber (Filipe Tressmann Velozo e Lais Nuto Rossmann)
* Testes de propriedade (João Paulo Pereira da Silva e Renan Ribeiro)
* Google Test (Luísa Menezes da Costa)
* Dev Containers (Thiago Duvanel Ferreira e Jorge Harrisonn Mantovanelli Thomes Vieira)
* Ferramentas de desenvolvimento colaborativo em tempo real (Fernando Yang e Lucas Eiji)
* Testes de Acessibilidade (Anna Beatriz Serikyaku e Jonathas Castilho)
* TensorFlow em aplicativos Android (Beatriz Gonzaga Correia da Silva e Enzo Ikeda)
* Flask: desenvolvimento web com python (Eduardo Cruz Guedes e Gustavo Vaz Pinto)
* Streamlit (Victor Nascimento Ribeiro e Marcelo Nascimento)
* Learn Vim: aprenda a integrar seu VSCode com o Vim (Gabriel Haruo Hanai Takeuchi e Lucca Ciriac Vilhena Oliveira)
* Usando Selenium e Python para fazer scraping (Gilvane da Silva Sousa e Miqueias Vitor Lopes Lima)
* Criação de Aplicação em Python com Kivy (Diogo Ribeiro de Faria e Luiz Fernando de Freitas Fernandes)
* Refatoração (Luan Tavares de Andrade e Mayara de Oliveira Pinheiro)
* Entity-Component-System (Bruno Armond Braga e Guilherme Vinicius Ferreira de Assis)
* Arquitetura de software e componentes reutilizáveis (Aya Esther Prado Meira e Luiz Carlos Costa da Silva)
* TestContainers (Roberto Bolgheroni e Lucas Quaresma)
* 5 ferramentas de DevOps que você precisa conhecer (Guilherme Wallace e Eduardo Figueredo)
* Tópicos básicos de React (Natalya Silva Aragão)
* React Hooks (Agnaldo Nunes de Oliveira e Gabriel Ferreira de Souza Araujo)
* Git Rebase de maneira mais fácil e intuitiva (João Vitor Magalhães Leite e Pedro Zamecki Andrade)
* Git Cherry Pick (Lucas Escobar e Rodrigo Michelassi)
* Git do Básico ao avançado (Felipe Aníbal e Vinícius Lira)
* Estratégias de Branching no Git (Francisco de Castro Leal Henriques e Mohamad Walid Marrer Abed)
* Clean Commits: boas práticas na escrita de mensagens de commit (João Pedro Petrosino Costa)
* VSCode + GitHub: Como otimizar seu workflow (Davi Gonçalves Bezerra Coelho e Vinícius Yuiti Okuma Shimizu)
* Importância do Controle de Versão (Felipe Kaneshiro de Souza e Matheus Koiti Ito)
* Serviços aws (Luigi Gasparetti e Pedro Cruz Martins)
* Otimizando Docker (Pedro Mariano e Vinicius Lima)
* RabbitMQ (Adriano Elias Andrade e Guilherme Henrique Vasconcelos da Cunha)
* Tutorial introdutório à Godot Game Engine (Clara Yuki Sano e Pedro Tonini Rosenberg Schneider)
* Design Patterns: Métodos importantes utilizados no mundo do desenvolvimento (Antônio Fernando Cruz e Bruno Stephan)
* Programação funcional em Kotlin (Marcelo Machado Lage e Otávio de Oliveira Silva)
* Padrões de projeto em Aprendizado de Máquina: representando palavras e a intuição por trás dos Embeddings. (Lucas Sobrinho e Luiza Soezima)
* Documentação e Doxygen (Fernando Gouveia Lima e Lucas Francesco Lima Gesteira)
* Múltiplas ferramentas para auxiliar na construção de uma interface mais acessível e convidativa (Mariana Tiemi Silva Misu e Odair Gonçalves de Oliveira)
* WebAssembly com C++ (Pedro Simões e Rafael Sesoko)