Buscar

S2 Pensamiento computacional - Estatística

Prévia do material em texto

PENSAMENTO 
COMPUTACIONAL 
OBJETIVOS DE APRENDIZAGEM
 > Definir nomes e listas no contexto de dados.
 > Descrever grafos.
 > Reconhecer hierarquias.
Introdução
A partir da aplicação de pensamento computacional, dados podem ser armaze-
nados e organizados com extrema eficiência na memória dos computadores. Para 
isso, estruturas são desenvolvidas para solucionar problemas de armazenamento, 
organização e processamento de dados, o que também encontra aplicação no 
mundo real.
Neste capítulo, você vai estudar como são organizados os dados a partir do 
pensamento computacional, quer para a resolução e análise de problemas pre-
sentes no mundo real, quer em estruturas computacionais. Também conhecerá as 
regras de identificação e organização de dados para evitar que ocorram dúvidas 
na recuperação de informações, além de diversos tipos de estruturas de dados 
que permitem seu gerenciamento eficiente na memória dos computadores. Por 
fim, ainda examinará nomes e listas no contexto de dados, as características e a 
usabilidade de grafos e exemplos de hierarquias.
Organização 
de dados
Luis Gustavo Maschietto
Nomes e listas no contexto de dados
Sistemas de computação são capazes de gerenciar bilhões de informações, e a 
cada ano que passa essa capacidade aumenta de forma considerável. Sistemas 
voltados ao gerenciamento de dados devem manter todas as informações à 
medida que elas são armazenadas a partir de outros sistemas computacio-
nais. Essa rotina requer atenção dos desenvolvedores, pois todos os dados 
de um sistema devem ser bem organizados e devidamente identificados para 
poderem ser utilizados quando necessário (RILEY; HUNT, 2014).
Numa base de dados, a escolha das atribuições de nomes deve ser 
cuidadosamente prevista, pois, caso ocorra atribuição de um nome con-
fuso, será muito difícil acessar ou raciocinar sobre os dados. Este princípio 
vale não apenas no contexto da computação, mas também na vida real. 
Embora dê algum trabalho determinar um nome assertivo para cada item, 
esse procedimento deve ser sempre executado para que sejam evitados 
problemas que trazem confusão ou dificuldades no entendimento das 
informações.
Felizmente, existem diretrizes que nos ajudam a escolher nomes para 
itens numa base de dados. Essas diretrizes, listadas a seguir, promovem um 
melhor entendimento dos dados armazenados quando é preciso identificá-los, 
localizá-los e analisá-los de forma abrangente (RILEY; HUNT, 2014). 
1. A escolha dos nomes deve ser única para cada item na base de dados, 
garantindo que um nome refira-se a apenas uma coisa. Assim, sempre 
que esse nome for utilizado, não haverá confusão sobre qual item está 
sendo referido.
2. Itens devem apresentar apenas um nome. Itens com nomes duplicados 
podem gerar confusão no momento da análise dos dados por uma 
pessoa ou por um sistema computacional.
3. Nomes devem ser descritivos, ou seja, devem descrever o papel ou 
função de um item dentro do sistema de armazenamento. Nomes 
descritivos ajudam a descrever as funções ou o conteúdo de um item.
4. Os nomes dos itens armazenados devem ter relação com sua loca-
lização. Dessa forma, sistemas computacionais responsáveis pelo 
gerenciamento e organização de um grande volume de dados são 
capazes de localizar de forma rápida esses itens. A internet é um 
exemplo de sistema computacional que possui grande volume de 
dados, e nesse cenário é extremamente importante que seu processo 
de localização seja ágil.
Organização de dados2
A World Wide Web (WWW) apresenta diversas nomenclaturas para designar uma 
variedade de páginas presentes em sua plataforma. Os nomes atribuídos a cada 
endereço na internet são fundamentais para a localização do conteúdo dessas 
páginas e são conhecidos como Localizadores Uniformes de Recursos (Uniform 
Resource Locator — URLs). O URL de uma página web não é tecnicamente o nome 
do item em si, e sim uma forma de localizar esse item. Esse sistema URL obedece 
às quatro diretrizes examinadas anteriormente para atribuir uma nomenclatura 
(RILEY; HUNT, 2014). Pelo critério da unicidade de nomes, por exemplo, o endereço 
de uma página refere-se a um único site específico. Pelo segundo critério, as pági-
nas normalmente recebem apenas uma URL, mas existem situações em que dois 
endereços direcionam para a mesma página, embora essa não seja a tendência 
natural de nomenclatura para a internet. Pelo terceiro critério, URLs são compostos 
de uma descrição das informações presentes em uma página web. Caso exista, por 
exemplo, um endereço http://www.empresax.com.br/cadastro_assinante, é possível 
deduzir que ele é um local específico do site da Empresa X para a realização de 
cadastro de assinantes. Por fim, cada URL indica não apenas o conteúdo de uma 
página, mas também o local onde a página pode ser localizada. Um computador 
ligado à internet e que hospeda uma página possui um nome único que o identifica. 
Portanto, a primeira parte de um URL identifica esse computador que contém a 
página web. Cada computador também possui um sistema de arquivos cujo caminho 
é identificado pelo restante do endereço URL. O URL http://www.empresax.com.br/
cadastro_assinante/meus_dados, por exemplo, indica que o computador chamado 
empresax.com.br possui uma pasta chamada cadastro_assinante, dentro da qual 
encontra-se um arquivo chamado meus_dados. 
Conforme uma base de dados vai aumentando, é imprescindível que os 
dados possuam uma identificação adequada e com um nome apropriado 
para sua localização. Na vida real, essa prática também deve ser executada, 
principalmente para evitar confusões desnecessárias ao tentar inferir a 
verdadeira função de um item analisado. As formas mais usuais de organizar 
as informações são por meio de árvores, grafos e listas (RILEY; HUNT, 2014). 
Diversos dados do mundo real são organizados em forma de lista. Ao tentar 
organizar um grupo de amigos, por exemplo, é muito comum o uso de listas 
com dados sobre eles. Uma lista de tarefas, por sua vez, pode definir o que 
deverá ser realizado em determinada data. Já uma lista de compras indica o 
que deve ser adquirido na próxima ida ao supermercado. É necessária uma 
reflexão profunda para entender como as listas podem ser armazenadas e 
manipuladas pelos sistemas computacionais (RILEY; HUNT, 2014). 
Uma lista é uma sequência de itens organizados numa ordem específica. 
Qualquer item de uma lista pode ser identificado por sua posição. Quando 
Organização de dados 3
se emprega números para identificar itens numa lista, é utilizada a técnica 
conhecida como indexação. A indexação associa um único número a cada item 
de um conjunto de dados. Dessa forma, os itens são identificados por seu 
índice, o qual pode ser entendido como um nome exclusivo para um dos itens 
em uma lista. Na computação, um índice inicial normalmente é representado 
pelo número 0. Porém, em listas que representam o mundo real é possível 
considerar o índice inicializando com o número 1. Um índice é representado 
entre colchetes, sendo possível encontrar a representação do índice [0] ou 
índice [1] como valores iniciais em uma lista (RILEY; HUNT, 2014). 
Uma lista de itens pode ser armazenada na memória de um computador, 
que nada mais é que um arranjo unidimensional de itens, de forma que 
cada item seja atribuído a um endereço de memória. Todos os dados de um 
computador são armazenados em um local da memória e são identificados 
por um índice. Cada localização de memória pode armazenar uma palavra de 
dados, em que uma palavra representa a menor unidade de dados. A Figura 1 
ilustra a forma como uma palavra é armazenada em um endereço de memória 
de um computador (RILEY; HUNT, 2014).
Figura 1. Disposição das palavras nos endereços da memória de um computador.
Fonte: Adaptada de Riley e Hunt (2014).
A memória central de um computador é uma zona de armazenamento 
organizada em centenas ou milhares de unidades de armazenamento 
individual, ou células. A memória central é um conjunto de células de memória 
(essas célulasou posições de memória também são chamadas de palavras, 
Organização de dados4
mesmo não guardando analogia com as palavras da linguagem). O número de 
células da memória central depende do tipo e do modelo de computador. Cada 
célula de memória contém certo número de bits (dígitos binários), geralmente 
8, formando um byte. Assim, a unidade elementar de memória se chama byte 
(octeto). Um byte tem a capacidade de armazenar um caractere de informação 
(AGUILAR, 2008).
Todos os dados armazenados em dispositivos que possuem uma estrutura 
em forma de disco — como ocorre em HDs, CDs e DVDs — também são orga-
nizados de forma linear. As divisões existentes nesses tipos de dispositivos 
são conhecidas como faixas. As trilhas existentes em cada faixa são divididas 
em setores onde os dados são armazenados (RILEY; HUNT, 2014). 
Outra maneira de armazenar dados de forma organizada em um compu-
tador é por meio de estruturas de dados chamadas array (vetor). Um array 
representa um conjunto de endereços de itens na memória de um computador, 
dispostos de forma unidimensional ou bidimensional. Uma array bidimen-
sional, por exemplo, consegue armazenar um conjunto de informações que 
representa um item de uma lista. Numa lista de pessoas, digamos, além de 
cada nome, seria possível armazenar endereço, CPF, RG, altura, peso, entre 
outros detalhes de cada um incluso na lista. Nesse caso, teríamos dois ín-
dices, um que representaria a pessoa em um endereço de memória e outro 
para identificar que o local daquele espaço de memória foi alocado a uma 
determinada característica daquela pessoa. Assim, seus índices poderiam 
ser [0][0], [0][1], [0,2], em que 0 do primeiro colchete representaria a primeira 
pessoa da lista, e os números presentes do segundo colchete (0,1,2), seus 
atributos como nome, endereço e CPF (RILEY, 2014).
O endereço de memória do primeiro item presente em um vetor é cha-
mado de âncora do vetor. A partir da sua localização, é possível localizar 
todos os itens que fazem parte desse vetor. O acesso aos dados a partir 
da âncora do vetor pode ser feito por meio dos índices do vetor. Dessa 
forma, ao localizar a âncora do vetor em memória, os próximos índices 
pertencerão ao mesmo vetor. Normalmente, com o uso de uma linguagem 
de programação um vetor é acessado com o uso de uma variável contadora 
(que representa os índices do vetor) dentro de uma estrutura de dados em 
loop. Na Figura 2, existem duas listas distintas que são armazenadas na 
memória como um vetor. No local 3, é possível identificar a âncora do vetor 
que representa os dados sobre Pinturas e no local 8, a âncora do vetor de 
dados sobre Filmes. Num computador, as informações são orientadas pelos 
locais onde as âncoras de cada vetor se encontram. Portanto, os dados 
sobre Pinturas estão no local 3 da memória e os dados sobre Filmes, no 
Organização de dados 5
local 8 da memória. Após a alocação de um vetor na memória, não existe 
a possibilidade de expansão ou redução dos espaços reservados para os 
dados desse vetor (RILEY; HUNT, 2014).
Figura 2. Duas listas com seus âncoras correspondentes.
Fonte: Adaptada de Riley e Hunt (2014).
Qualquer lista pode ser armazenada na memória como um array, e sua 
principal vantagem é que qualquer elemento em um array pode ser facilmente 
acessado pela posição do item na lista. As principais desvantagens são que 
o tamanho de um array é fixo e que a inclusão e exclusão de itens em uma 
lista exige um número significativo de etapas.
Grafos
Os grafos são utilizados para solucionar diversos problemas existentes no 
mundo real. Sua estrutura é composta por elementos conhecidos como bordas 
e nós. As bordas são representadas pelas conexões existente entre dois nós 
e os nós representam objetos do mundo real. Um grafo direcionado é uma 
coleção de nós distintos e uma coleção de arestas distintas. Uma aresta (ou 
Organização de dados6
arco) é definida como um par ordenado de nós que estabelece uma conexão 
unilateral do primeiro até o segundo nó. 
Tomando um exemplo de representação (X, Y), ele indicará que um grafo 
contém uma aresta de nó X ao nó Y, mas não implicará a existência de uma 
conexão de Y para X. Numa representação geral G = (V, E), temos que G é 
composto por um conjunto de nós (V) e um conjunto de arcos (E). Vamos 
supor que V possui os vértices {A, B, C, D, E} e E possui o conjunto de arcos 
{(A, E), (A, B), (B, A), (B, D), (C, E), (D, C), (E, B), (E, C), (E, D)}. Para a representação 
dos grafos, são utilizados diagramas em que os nós são representados por 
círculos e os arcos são representados por setas que apontam para outros nós. 
A Figura 3 apresenta um grafo G que contém cinco círculos (nós) com seus 
respectivos nomes. Esses nós apontam, com o uso dos arcos, para outros nós. 
O diagrama do grafo G é composto por cinco nós e nove arcos.
Figura 3. Exemplo de um grafo G.
Fonte: Riley e Hunt (2014, p. 207).
É possível representar um grafo solucionar diversos problemas no mundo 
real. Num modelo de rota de linha aérea, por exemplo, o grafo poderia mostrar 
as diferentes rotas possíveis entre localidades no mundo. Na Figura 4, os nós 
de um grafo são representados por aeroportos e as arestas como voos de um 
aeroporto para outro. É possível associar o nó A com Cuiabá, B com Brasília, 
E com São Paulo, C com Belo Horizonte e D com Rio de Janeiro. Ao analisar o 
grafo, é possível verificar que existem voos diretos de Cuiabá para Brasília e 
para São Paulo, mas que não existe voo direto de Cuiabá para Rio de Janeiro. 
Outra informação que o grafo apresenta é que, ao analisarmos somente os 
nós destacados com as letras, existem duas possibilidades de rotas de ida 
e volta de Cuiabá ao Rio de Janeiro, uma passando por São Paulo e outra 
passando por Brasília e Belo Horizonte.
Organização de dados 7
Figura 4. Grafos de linhas aéreas.
Fonte: Adaptado de Mapa de Rotas (2020).
Os grafos são constantemente empregados no mundo real e representam 
fortemente o pensamento computacional na solução de diversos problemas. 
A própria internet pode ser representada com o uso de grafos. Assim, podem 
ser identificados os computadores (nós) e as conexões (arcos) existentes em 
sua estrutura. Além da internet, grafos podem servir de representações para 
ações em jogos de tabuleiros, estruturas químicas com átomos e suas ligações, 
circuitos elétricos com conexões entre componentes, artigos publicados, 
em que o assunto está relacionado a diversos estudos do conhecimento 
humano, etc. 
Os grafos são caracterizados por um conjunto de recursos que descrevem 
sua estrutura geral. Entre eles estão adjacência, loop, grau de entrada e saída, 
ordem, tamanho, caminho, comprimento do caminho e ciclo. Esses recursos 
possuem características próprias, examinadas a seguir:
Organização de dados8
 � Adjacência: dado que U e V são vértices, o vértice U é adjacente ao 
vértice V se houver um arco (U, V) no grafo. Na Figura 3, por exemplo, 
o vértice D é adjacente ao vértice C em G, uma vez que o arco (D, C) 
aparece em G. Porém, o vértice C não é adjacente a D, pois o arco (C, 
D) não está em G.
 � Loop: é qualquer arco tal que o primeiro e o segundo nós do arco são 
os mesmos. Não existe caso de loop na Figura 3.
 � Grau de entrada: o grau de entrada de um vértice V é determinado pelo 
número de arcos no grafo tendo V como o segundo vértice. Na Figura 
3, o grau do vértice E é 2, pois G tem arcos (A, E) e (C, E) como os únicos 
arcos onde o vértice E é o segundo vértice.
 � Grau de saída: o grau de saída de um vértice V é determinado pelo 
número de arcos tendo V como primeiro vértice. Na Figura 3, o grau 
de saída do vértice E é 3, pois G tem arcos (E, B), (E, C) e (E, D) como os 
únicos arcos onde o vértice E é o primeiro vértice.
 � Ordem: é representada pelo número de vértices existentes. Na Figura 
3, o grafo G possui ordem 5 (cinco vértices).
 � Tamanho: é determinado pelo número de arcos existentes. Portanto, 
na Figura 3 o tamanho de G é 9 (nove arcos).
 � Caminho: sequênciade vértices em que, para cada par de vértices 
adjacentes na sequência, existe um arco correspondente no grafo. Uma 
sequência que contém um único vértice é considerada um caminho. Na 
Figura 3, a sequência [A, E, C] é considerada um caminho, já que (A, E) e 
(E, C) são arcos no grafo. Porém, o conjunto de nós [A, B, E] não podem 
ser considerado uma sequência, pois (B, E) não é um arco no grafo.
 � Comprimento do caminho: é o número de arcos presentes no caminho. 
Na Figura 3, o comprimento do caminho [A, E, C] é 2.
 � Ciclo: é um caminho cujo comprimento é maior que zero e o primeiro e 
o último vértices são iguais. Grafos acíclicos não possuem ciclo algum. 
Na Figura 3, o grafo G possui um ciclo que ocorre nos nós [A, B, A].
Listas podem ser consideradas grafos. Isso é possível se cada elemento 
for considerado, exceto o primeiro, com grau em 1 e cada elemento, exceto 
o último, com um grau fora de 1. A diferença central entre uma lista e um 
grafo está nos vértices. Nos grafos, os vértices podem ter um grau de saída 
maior em relação às listas. Em relação ao armazenamento de listas, cada 
elemento que a compõe é imediatamente seguido na memória por um único 
link. Em relação ao armazenamento de grafos, não é possível fazer essa 
Organização de dados 9
suposição, pois um vértice pode ser adjacente a diversos vértices existentes. 
Dessa forma, como não é possível assumir que um vértice está fora do grau 
1, deve-se armazenar o grau de saída de cada vértice junto com o valor do 
vértice. Portanto, é possível armazenar um grafo primeiramente pelo valor do 
vértice (o nome) e posteriormente pelo grau externo do vértice na próxima 
localização da memória. Assim, é possível armazenar N (número do grau 
externo do vértice) links. 
A Figura 5 mostra a forma correta de armazenamento do grafo apresentado 
na Figura 3. Para o exemplo, foi considerado o vértice A como o nó âncora. 
Na Figura 5, esse vértice encontra-se na posição 10 do endereço de memória. 
Sabendo-se que o número do grau externo de A é 2 (vide Figura 3), ele é colo-
cado no endereço exatamente após a localização do nó A, ou seja, na posição 
11 da memória. Os próximos dois valores na memória são links para os dois 
vértices adjacentes a A. Sabendo-se que os vértices B e E são adjacentes a 
A, então os próximos valores recebem a posição desses vértices, ou seja, 1 
(referente à localização do vértice B na memória) e 14 (referente à localização 
do vértice E na memória). É importante observar também que o vértice E tem 
um grau externo de 3 e é adjacente aos nós B, C e D. Essa representação só é 
possível se todos os vértices no grafo puderem ser alcançados começando 
da âncora e seguindo para uma cadeia de arcos.
Figura 5. Armazenamento de um grafo em memória.
Fonte: Adaptada de Riley e Hunt (2014).
Organização de dados10
Hierarquias
Hierarquias são arranjos de elementos dispostos em níveis. Numa hierar-
quia, cada elemento pode apresentar muitos elementos que estão dire-
tamente abaixo, mas existe apenas um elemento que está diretamente 
acima. No mundo real, existem diversas representações de hierarquias, 
incluindo organogramas, árvores genealógicas, taxonomias, classifica-
ção linguística e classificação por estrutura de dados em árvores. Um 
organograma é um diagrama que representa a estrutura hierárquica 
composta por cargos e funções designados entre funcionários de uma 
organização. 
A Figura 6 apresenta um organograma da empresa Amazon. A raiz 
de um organograma representa o cargo ou função de maior destaque 
na empresa. Nesse exemplo, é possível verificar o cargo de presidente, 
atribuído a Jeffrey (Jeff) Bezos, como sendo o de maior controle na or-
ganização. A função de vice-presidente é atribuída a quatro indivíduos, 
que são subordinados diretos ao presidente da organização. Além disso, 
existem quatro diretores e um gerente sênior. Nesse exemplo, é possível 
verificar que Tim Stone deve reportar-se diretamente a Thomas Szkutak. 
Por outro lado, Thomas Szkutak tem autoridade supervisora sobre Tim 
Stone. Outro detalhe verificado é que Thomas Szkutak reporta-se dire-
tamente a Jeffrey Bezos.
Figura 6. Exemplo organograma.
Fonte: Adaptada de Riley e Hunt (2014).
Organização de dados 11
Uma árvore genealógica, por sua vez, representa a relação de parentesco 
entre ancestrais e seus descendentes. Os níveis superiores da hierarquia 
são compostos por ancestrais de gerações remotas e os níveis inferiores, 
por familiares de gerações recentes. As árvores genealógicas não podem 
ser consideradas puramente hierárquicas, pois em situações em que são 
incluídas informações dos ancestrais maternos e paternos uma pessoa terá 
dois indivíduos acima dele. Dessa forma, o princípio da hierarquia é vio-
lado, pois estabelece que cada elemento na hierarquia deve ter apenas um 
elemento diretamente acima dele. Assim, para não haver tal violação, uma 
árvore genealógica deve limitar-se a mostrar ou os ancestrais paternos ou 
os maternos. Na Figura 7, é mostrado um exemplo de árvore genealógica 
limitada a cinco gerações da família Baggins, criada pelo autor J.R.R. Tolkien 
em seu livro O Senhor dos Anéis.
Figura 7. Exemplo de árvore genealógica.
Fonte: Adaptada de Riley e Hunt (2014).
Em estudos voltados à educação, existe uma representação hierárquica 
conhecida como taxonomia de Bloom. Uma taxonomia é definida com uma 
hierarquia cumulativa em que a categoria anterior é pré-requisito para a 
posterior. O estudo de Benjamin S. Bloom, idealizador de tal taxonomia, com-
preende seis categorias principais do domínio cognitivo, que são ordenadas da 
mais simples (conhecimento) até a mais complexa (avaliação) (Figura 8). Dessa 
Organização de dados12
forma, a taxonomia de Bloom pretende enfatizar que um aluno conseguirá 
avançar para uma próxima categoria somente após dominar o nível atual em 
que se encontra (SILVA, 2019).
Figura 8. Ordenação da taxonomia de Bloom.
Fonte: Silva (2019, p. 20).
Outro exemplo de hierarquia pode ser encontrado no estudo científico 
e formal da linguagem humana conhecido como linguística. Na linguística, a 
gramática concentra-se em como elementos da linguagem estão relacionados 
entre si, além das regras pelas quais essas relações são estabelecidas. Como 
forma de esclarecer o significado dos elementos na linguagem, é criada uma 
árvore de análise. Os níveis inferiores presentes nessa árvore contêm grupos 
menores de palavras. Os níveis mais altos da árvore expressam como os 
elementos abaixo são classificados e organizados. Na Figura 9, é mostrado 
um exemplo de agrupamento a partir de uma frase-matriz “O aluno instruído 
aprendeu o pensamento computacional". Nesse exemplo, é possível agrupar 
a palavra “pensamento” como substantivo e “computacional” como adje-
tivo. O sintagma “pensamento computacional” é classificado como nominal 
(sintagma que tem um substantivo como cabeça ou desempenha a mesma 
função gramatical que um substantivo). Num nível superior, é possível verifi-
car que a sequência de palavras “O aluno instruído aprendeu o pensamento 
computacional” forma uma frase.
Organização de dados 13
Figura 9. Exemplo de análise linguística a partir de uma frase.
Fonte: Adaptada de Riley e Hunt (2014).
Esses sistemas de árvores são úteis para as linguagens de pro-
gramação, pois quando um programador escreve um programa, as 
propriedades e o significado do programa são compreendidos pelo computador 
a partir da criação de uma árvore de análise. Noam Chomsky, apesar de sua 
carreira ser voltada para o estudo da filosofia e linguística, foi um pesquisador 
extremamente importante para a área da computação. Chomsky foi o responsável 
pelo desenvolvimento da hierarquia de Chomsky, que apresentava um modelo 
matemático gramatical, que auxiliou o campo de estudo da teoria da linguagem 
de programação.
Uma árvore é um tipo de grafo para modelagem de dados hierárquicos. A 
árvore apresenta as seguintes características: uma raiz, que é representada 
por um vértice de grau de entrada zero;demais vértices, que possuem grau 
de entrada; e um caminho da raiz a todos os outros vértices. A Figura 10, 
apresenta um exemplo de árvore com 8 vértices e 7 arcos. Todos os vértices 
têm grau 1, exceto o vértice R, que possui grau 0. Existe um caminho que sai 
de R a todos os outros vértices da árvore. Embora possua um único nó-raiz, 
uma árvore pode apresentar várias folhas. Uma folha é um nó com grau de 
saída igual a zero. Na Figura 10, essas folhas estão presentes nos nós T, E, C 
e A. A representação da árvore é sempre exibida ao contrário, ou seja, a raiz 
(parte de maior importância) sempre ficará na parte superior, e suas folhas 
(parte de menor importância) na parte inferior.
Organização de dados14
Figura 10. Exemplo de uma árvore.
Fonte: Riley e Hunt (2014, p. 216).
Em 1847, Gustav Kirchhoff (físico alemão responsável pela criação 
das leis de Kirchhoff) utilizou modelos de grafos no estudo de cir-
cuitos elétricos e, ao fazê-lo, criou a teoria das árvores (uma classe de grafos) 
para caracterizar conjuntos de ciclos independentes. Uma década mais tarde, 
o matemático britânico Arthur Cayley seguiria a mesma trilha, embora tendo 
em mente outras aplicações, dentre as quais se destacava a enumeração dos 
isômeros dos hidrocarbonetos alifáticos saturados (que têm estrutura de árvore, 
na nomenclatura de grafos), em química orgânica (NETTO, 2003).
Referências
AGUILAR, L. J. Fundamentos de programação: algoritmos, estruturas de dados e objetos. 
Porto Alegre: AMGH , 2008.
MAPA de Rotas - LATAM e TAM. Aviação comercial, dez. 2020. Disponível em: https://
www.aviacaocomercial.net/rotastam.htm. Acesso em: 29 jan. 2021.
NETTO, P. O. B. Grafos: teoria, modelos, algoritmos. São Paulo: Blucher, 2003.
RILEY, D. D.; HUNT, K. A. Computational thinking for the modern problem solver. Boca 
Raton, EUA: CRC Press, 2014.
SILVA, L. C. L. A relação do pensamento computacional com o ensino de matemática 
na educação básica. 2019. 131 f. Dissertação (Mestrado em Matemática) — Programa 
de Pós-Graduação PROFMAT, Universidade Estadual Paulista Júlio de Mesquita Filho, 
São Paulo, 2019. Disponível em: https://repositorio.unesp.br/handle/11449/191251. 
Acesso em: 29 jan. 2021.
Organização de dados 15
Leituras recomendadas
ASCENCIO, A. F. G.; CAMPOS, E. A. V. Fundamentos da programação de computadores: 
algoritmos, Pascal, C/C++ (Padrão ANSI) e Java. 3. ed. São Paulo: Pearson, 2012.
BROOKSHEAR, J. G. Ciência da computação: uma visão abrangente. 11. ed. Porto Alegre: 
Bookman, 2013.
Os links para sites da web fornecidos neste capítulo foram todos 
testados, e seu funcionamento foi comprovado no momento da 
publicação do material. No entanto, a rede é extremamente dinâmica; suas 
páginas estão constantemente mudando de local e conteúdo. Assim, os editores 
declaram não ter qualquer responsabilidade sobre qualidade, precisão ou 
integralidade das informações referidas em tais links.
Organização de dados16

Continue navegando