Do básico ao avançado: aprendendo programação com Algoritmos e estruturas de dados

Ana Alice Kohler

Em 2024, John Hopfield e Geoffrey Hinton receberam o Nobel de Física, prêmio um dia consagrado a Marie Curie por suas descobertas e invenções fundamentais que permitem o aprendizado de máquina (machine learning, em inglês) com redes neurais artificiais. A escolha da premiação por laurear pesquisadores da área da computação revela, claramente, as prioridades da ciência contemporânea, que busca, cada vez mais, a construção de uma era informacional. O desenvolvimento de inteligências artificiais, da mesma forma, é pauta de grande parte das discussões atuais sobre tecnologia, o que também demonstra como o futuro das invenções humanas está ligado à programação. Nesse sentido, o livro de Hélio Pedrini, Algoritmos e estruturas de dados: Conceitos e aplicações, é essencial para quem busca compreender os principais conceitos que envolvem esse debate.

Graduado em Ciência da Computação pela Universidade Estadual de Campinas, Hélio Pedrini é mestre em Engenharia Elétrica também pela Unicamp e doutor em Engenharia Elétrica e de Computação pelo Instituto Politécnico Rensselaer, nos Estados Unidos. Atualmente, é professor titular do Instituto de Computação da Unicamp, tendo sido pesquisador visitante em diversas universidades internacionais, como a Universidade de Kingston, no Reino Unido, a Universidade McGill, no Canadá, e a Universidade da Califórnia, nos Estados Unidos, em que realizou seu pós-doutorado. Além disso, é membro da Sociedade Brasileira de Computação (SBC) e do Instituto de Engenheiros Eletricistas e Eletrônicos (IEEE) e pesquisador nas áreas de processamento e análise de imagens e vídeos, aprendizado de máquina, visão computacional, computação gráfica e geometria computacional.

Em Algoritmos e estruturas de dados, publicado recentemente pela Editora da Unicamp, Hélio Pedrini trata dos principais tópicos relacionados ao ensino da computação, com o objetivo de fornecer ao leitor os recursos para a compreensão e a elaboração de códigos. O autor utiliza, nesse sentido, a linguagem de programação C, que permite “a construção de programas de forma flexível, versátil e estruturada”. Para isso, o livro divide o conteúdo em três grandes partes – além do Prefácio – a saber, “Fundamentos de programação”, em que são apresentados os princípios básicos para a compreensão de códigos simples; “Técnicas de programação e estruturas de dados avançadas”, que trabalha com conceitos de análise de estruturas mais complexas; e, por fim, “Informações suplementares” (com apêndices), que fornece uma complementação aos tópicos discutidos ao longo dos capítulos. Além das explicações dos conceitos teóricos, cada capítulo ainda apresenta, ao fim, exercícios de fixação do aprendizado e recomendações de leituras que tratam do tema.

Na primeira parte do livro, são apresentados alguns conceitos básicos. Ao todo, são 12 capítulos que exploram noções, como variáveis e constantes, operadores, comandos, vetores e funções. Logo na Introdução, Hélio Pedrini explica como se dá a organização e o funcionamento básico de um computador e introduz a linguagem de programação a ser utilizada no restante da obra, a linguagem C. Criada em 1972 por Dennis Ritchie, ela é uma “linguagem de alto nível, de grande portabilidade, estruturada e procedural”, ou seja, ela pode ser utilizada de forma muito mais próxima à linguagem humana. A linguagem de programação C fornece, também, instruções de baixo nível, o que significa, em linhas gerais, que, nesse caso, o programador tem “acesso direto à memória e ao processador da máquina”. Ela é, portanto, uma linguagem extremamente versátil. O restante dos capítulos dessa parte constrói, então, conhecimentos mais complexos a partir dos fundamentos dados na Introdução. 

A segunda parte de Algoritmos e estruturas de dados, “Técnicas de programação e estruturas de dados avançadas”, traz tópicos mais complexos, como recursividade, tabelas de espalhamento e árvores. Além das notações matemáticas, essenciais para a compreensão da programação, a obra ainda utiliza esquemas visuais, como gráficos, tabelas e ideogramas para representar o funcionamento desses conceitos. Assim, o leitor que, a esse ponto, já consegue desenvolver seus próprios códigos, pode resolver exercícios mais complexos, tal como: “Escreva uma função recursiva para contar o número de vezes que um determinado dígito ocorre em um número natural. Por exemplo, o dígito 4 aparece 2 vezes no número 5413724” (p. 180). O aprendizado, portanto, dá-se de forma cada vez mais profunda, atingindo níveis de compreensão que abarcam questões complexas para a resolução de problemas, principal função dos programas.

A terceira parte da obra, “Informações suplementares”, traz sete apêndices, de A a G, que aprofundam alguns dos temas já trabalhados no restante do livro. O Apêndice A, por exemplo, tem como título “Funções elementares” e aborda diferentes aspectos das funções matemáticas utilizadas “na descrição e análise de algoritmos e estruturas de dados”. Também os Apêndices B, C e D explicam conceitos matemáticos, a saber, “Somatórios e produtórios”, “Exponenciação e logaritmos” e “Sistemas de numeração”. Já os demais trazem conceitos ligados mais diretamente à computação, como “Representação de números”, “Indução matemática” e “Codificação de caracteres”, todos temas importantes para a compreensão do funcionamento de um computador.

Por fim, a obra ainda traz as Referências bibliográficas, que podem ser consultadas pelo leitor que busca aprofundar-se mais no tema. De forma geral, o livro, que é destinado a um público diverso, que vai desde estudantes da graduação até pesquisadores e profissionais da área, propõe uma trajetória de aprendizado que parte dos conceitos mais básicos de programação até as questões mais complexas. E mesmo sem nenhum conhecimento prévio de programação, é possível embarcar na leitura de Algoritmos e estruturas de dados, que busca adequar-se “às necessidades de um público mais geral”.

O livro de Hélio Pedrini, nesse sentido, contribui para um maior entendimento acerca de uma área das ciências que vem ganhando cada vez mais espaço e relevância no mundo atual, em que softwares, machine learning e inteligência artificial são temas de debates constantes. Recomenda-se, portanto, a sua leitura como forma de construção de um conhecimento essencial para a vida humana em 2024: “Espera-se, a partir da disseminação dos conceitos abordados neste material, contribuir para a ampliação do conhecimento sobre estruturas de dados, incentivar o desenvolvimento de algoritmos para exploração de novas aplicações e apoiar o fortalecimento da ciência e tecnologia no país”.

Para saber mais sobre o livro, acesse nosso site!

Algoritmos e estruturas de dados: Conceitos e aplicações

Autor: Hélio Pedrini

ISBN: 978-85-268-1626-8

Edição: 1ª

Ano: 2024

Páginas: 448

Dimensões: 21 x 28 cm

Deixe um comentário