Livro finalista do prêmio Jabuti Acadêmico 2024.
Os avanços recentes na área de Ciência de Dados – em especial em Machine Learning – têm tornado viável e de relevância prática novas soluções de software, que podem aprender a partir de dados e realizar predições inteligentes. Entretanto, para que esses sistemas tenham sucesso, devem ser construídos considerando as boas práticas da área de Engenharia de Software para atenderem de fato às necessidades dos clientes. Este livro vem para consolidar a área de Engenharia de Software para Ciência de Dados e capacitar profissionais interessados ou atuantes em Ciência de Dados na construção de sistemas baseados em Machine Learning, ao mostrar como construir esses sistemas end-to-end, adaptando e aplicando as melhores práticas para esse contexto.
Você entenderá como aplicar abordagens ágeis para a engenharia de sistemas inteligentes e aprenderá a especificar e desenvolver sistemas baseados em Machine Learning na prática em Python, utilizando os principais algoritmos de classificação e regressão, seguindo princípios de projeto e boas práticas de codificação. Você verá como realizar o controle de qualidade de sistemas inteligentes, além de conhecer alternativas para essa arquitetura, com diferentes formas de implantação de modelos, incluindo na nuvem. Por fim, conhecerá conceitos de gerência de configuração e Dev Ops, comumente empregados neste tipo de projeto. O livro compila evidências científicas e experiências práticas de formação dos autores, que em 2021 criaram o primeiro curso de extensão em Engenharia de Software para Ciência de Dados do país, formando centenas de alunos em diversas turmas oferecidas pela PUC-Rio, tanto abertas quanto in-company.
Table des matières
Parte I – Introdução à Engenharia de Software e à Ciência de Dados
1 Introdução à Engenharia de Software
2 Introdução à Ciência de Dados
Parte II – Abordagens e especificação de sistemas inteligentes
3 Abordagens para a engenharia de sistemas inteligentes
4 Especificação de sistemas de software inteligentes
Parte III – Programação com boas práticas de projeto e construção
5 Introdução à linguagem Python
6 Orientação a Objetos em Python
7 Boas práticas de projeto e construção de sistemas
Parte IV – Tópicos de Ciência de Dados
8 Análise exploratória e visualização de dados
9 Pré-processamento de dados
10 Algoritmos de Machine Learning para classificação e regressão
11 Recursos avançados de Machine Learning
Parte V – Arquitetura, Projeto e Controle da Qualidade
12 Implantação de modelos de Machine Learning
13 Arquitetura de sistemas de software inteligentes
14 Projeto de sistemas de software inteligentes
15 Controle da qualidade de sistemas de software inteligentes
16 Gerência de configuração, Dev Ops e MLOps em sistemas inteligentes
17 Referências bibliográficas
A propos de l’auteur
Marcos Kalinowski
Professor do Quadro Principal do Departamento de Informática da PUC-Rio, onde orienta pesquisas de mestrado e doutorado e coordena projetos de pesquisa e desenvolvimento junto a diversas empresas nas áreas de Engenharia de Software e Ciência de Dados através da iniciativa Ex ACTa PUC-Rio. Doutor e mestre em Engenharia de Sistemas e Computação na área de Engenharia de Software e bacharel em Ciência da Computação, todos pela UFRJ. Atuou por mais de 10 anos na indústria de software antes de se tornar professor (como desenvolvedor, consultor e diretor). É bolsista de produtividade do CNPq e possui mais de 150 artigos publicados nos principais veículos da sua área de atuação.
Tatiana Escovedo
Professora do Departamento de Informática da PUC-Rio, onde coordena cursos de pós-graduação lato sensu e colabora com pesquisas nas áreas de Ciência de Dados e Engenharia de Software. Gerente da área de Tecnologia, Gestão de Dados e Conhecimento da diretoria de Comercialização e Logística da Petrobras. Doutora em Engenharia Elétrica, na área de Métodos de Apoio à Decisão, Mestre em Informática na área de Engenharia de Software e bacharel em Sistemas de Informação, todos pela PUC-Rio. Autora de diversos livros e artigos na sua área de atuação.
Hugo Villamizar
Professor de cursos de extensão e doutorando do Departamento de Informática da PUC-Rio, orientado pelo Professor Dr. Marcos Kalinowski. Formado em Sistemas de Informação pela Universidade Nacional da Colômbia e mestre em Informática pela PUC-Rio na área de Engenharia de Software, com dissertação premiada. Analista de Pesquisa e Desenvolvimento na iniciativa Ex ACTa PUC-Rio, atuando como engenheiro de software para sistemas habilitados em aprendizado de máquina, desde a especificação até sua implantação na nuvem.
Hélio Lopes
Professor do Quadro Principal do Departamento de Informática da PUC-Rio, onde orienta pesquisas de mestrado e doutorado e coordena projetos de pesquisa e desenvolvimento junto a diversas empresas na área de Ciência de Dados através da iniciativa Ex ACTa PUC-Rio. Doutor em Matemática, mestre em Informática e Engenheiro da Computação, todos pela PUC-Rio. Tem mais de 30 anos de experiência coordenando projetos de pesquisa e desenvolvimento junto a diversas empresas, tendo registrado patentes e acumulado premiações nesse contexto. É bolsista de produtividade do CNPq e possui mais de 150 artigos publicados nos principais veículos da sua área de atuação.