Buscar

Programação Avançada em Big Data 2

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 33 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 33 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 33 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

09/09/2022 19:40 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0xQPdFxf08knK9GoFDY7fQ%3d%3d&l=w2abV45et6fp0PxedTtkFQ%3d%3d&cd=UbRGmX… 1/33
PROGRAMAÇÃO AVANÇADA EMPROGRAMAÇÃO AVANÇADA EM
BIG DATABIG DATA
LINGUAGENS DELINGUAGENS DE
PROGRAMAÇÃO E BIGPROGRAMAÇÃO E BIG
DATADATA
Autor: Me. Ubiratan Roberte Cardoso Passos
Revisor : Isabel S iqueira
IN IC IAR
1.00
09/09/2022 19:40 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0xQPdFxf08knK9GoFDY7fQ%3d%3d&l=w2abV45et6fp0PxedTtkFQ%3d%3d&cd=UbRGmX… 2/33
introdução
Introdução
Mesmo que algumas empresas que mantêm Big Data forneçam ferramentas
on-line para acesso e manipulação dos dados, para que a partir deles sejam
geradas informações, muitas outras não oferecem as mesmas facilidades.
Para que os interessados tenham acesso aos dados de um Big Data, é
necessário que façam uso de algumas interfaces de comunicação com as
detentoras dos Big Datas, para isso, precisarão utilizar alguma linguagem de
programação. Diversas dessas interfaces, conhecidas como APIs, podem ser
acessadas a partir de alguma linguagem de programação orientada a objetos
ou até mesmo linguagem funcional. Uma vez que são recuperados, os dados,
preferencialmente, devem ser armazenados em algum tipo de estrutura de
dados para serem manipulados. Como acessar algumas dessas APIs, criar e
utilizar algumas estruturas de dados utilizando linguagem orientadas a
objetos? O que é a programação funcional? Esse será o tema de nosso estudo.
09/09/2022 19:40 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0xQPdFxf08knK9GoFDY7fQ%3d%3d&l=w2abV45et6fp0PxedTtkFQ%3d%3d&cd=UbRGmX… 3/33
A programação orientada a objetos não é algo tão novo quanto se pode
imaginar, pode-se dizer que a preocupação em se desenvolver linguagens de
programação mais efetivas teve início de fato em 1970, com a chamada “crise
do software”. Desenvolver softwares na velocidade e na qualidade que eram
demandados estava se tornando algo extremamente difícil. Apesar de
existirem linguagens baseadas no paradigma estruturado, essa forma de
programação não permitia que o código fosse reutilizado. Além da
impossibilidade de se reutilizar o código escrito para outras aplicações,
realizar a manutenção de aplicações escritas em linguagem estruturada
poderia ser algo extremamente complicado e poderia causar erros
indesejáveis (PRESSMAN; MAXIM, 2016).
Atualmente, ainda que muitas linguagens de programação continuem sendo
constantemente utilizadas, a maior parte das aplicações voltadas para o
operacional das organizações é escrita utilizando alguma linguagem orientada
a objetos, até mesmo websites, quando necessitam de recursos de
ProgramaçãoProgramação
Orientada aOrientada a
ObjetosObjetos
09/09/2022 19:40 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0xQPdFxf08knK9GoFDY7fQ%3d%3d&l=w2abV45et6fp0PxedTtkFQ%3d%3d&cd=UbRGmX… 4/33
programação. Esses recursos são escritos em alguma linguagem orientada a
objetos.
Um dos requisitos para que seja possível realizar análise de dados, ou análise
de Big Data, é conhecer algumas das tecnologias que são utilizadas para esse
propósito. Uma dessas tecnologias está relacionada à programação e às
linguagens de programação que são utilizadas para essa tarefa.
Obviamente que não existe uma obrigação de se utilizar uma linguagem de
programação orientada a objetos, ou estruturada ou mesmo um paradigma
funcional, mas, quando o esforço é direcionado para uma linguagem que tem
destaque, as possibilidades de se conseguir recursos para atuar com essas
linguagens são maiores.
De acordo com MCKinney (2018), a linguagem Python é considerada como
uma das mais popularmente conhecidas e utilizadas. Essa linguagem admite
os paradigmas orientado a objetos, estrutural e também funcional, e a
linguagem R é uma linguagem funcional, e essas serão utilizadas nos
exemplos que forem necessários.
O Paradigma Orientado a Objetos
De acordo com Pizzolato (2010), o paradigma orientado a objetos utiliza
basicamente os mesmos princípios que são aplicados na construção dos
hardwares. No desenvolvimento de hardwares, componentes já existentes
(neste caso, componentes físicos) são utilizados na construção de novos
dispositivos de hardware.
Não se deve confundir a utilização de componentes existentes com a
reutilização dos mesmos componentes. O que está sendo expressado é que o
projeto original de cada componente e até mesmo do hardware completo já
existe, e, a partir de um projeto já conhecido, é possível replicar tanto os
componentes quanto o hardware. No paradigma orientado a objetos, ocorre
o mesmo, os “objetos” que já existem podem ser utilizados para produzir
novos “objetos”.
09/09/2022 19:40 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0xQPdFxf08knK9GoFDY7fQ%3d%3d&l=w2abV45et6fp0PxedTtkFQ%3d%3d&cd=UbRGmX… 5/33
Utilizando um conceito muito comum do mundo físico, os objetos, o que o
paradigma orientado a objetos pretende fazer é mimetizar o que ocorre com
os hardwares. Para que seja considerada orientada a objetos, é preciso que
uma linguagem apresente ou implemente quatro conceitos básicos:
1. Abstração : que se refere à capacidade de se modelar alguma
característica do mundo real;
2. Encapsulamento : trata da capacidade de proteção dos dados, permitindo
que somente suas operações internas os acessem;
3. Herança : permite a criação de novos objetos a partir da modi�cação de
alguma característica de um objeto já existente; e/ou criação de um vínculo
entre o objeto criador e o objeto criado; e
4. Polimor�smo : refere-se à capacidade de uma unidade assumir várias
formas.
Essas características, apesar de parecerem bem simples, são o que garantem
às linguagens orientadas a objetos grande parte de seu potencial para se
adequarem às necessidades da produção de software de um ambiente
totalmente dinâmico.
Classes e Objetos
Dois conceitos muito utilizados na programação orientada a objetos são
classes e objetos . Assim sendo, para que possamos seguir com os estudos
relacionados à programação orientada a objetos, é preciso compreender bem
a diferença entre eles.
Em computação, uma classe pode ser entendida como um modelo, um
molde ou, até mesmo, em termos mais técnicos, uma especi�cação. O objeto
pode ser entendido como a concretização desse modelo, desse molde, ou
seja, o objeto é a instanciação da classe (PRESSMAN; MAXIM, 2016).
09/09/2022 19:40 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0xQPdFxf08knK9GoFDY7fQ%3d%3d&l=w2abV45et6fp0PxedTtkFQ%3d%3d&cd=UbRGmX… 6/33
Em termos mais didáticos, podemos comparar uma classe a um controle
remoto. Ao falar em controle remoto, o que vem à mente é a abstração desse
objeto. O cérebro visualiza uma “coisa” geralmente em formato retangular e
com alguns botões e que controla algum dispositivo à distância, semelhante
ao que é apresentado na Figura 2.1.
Observe que os três modelos são controles, mas cada um tem um modelo
próprio, não são iguais. Em nossa mente, a representação do controle é
complexa, e aceita todos esses exemplos. O mesmo ocorre com as classes,
uma classe prevê um conjunto de características que deverão estar presentes
em um objeto de que será criado a partir da classe. Não somente as
características, a classe deverá também descrever as possíveis ações que o
objeto deverá ser capaz de realizar.
A respeito das classes e dos objetos, é preciso saber também que um objeto
pode interagir e mudar as características de outro objeto, aliás, um objeto
pode, inclusive, estimular/iniciar ações em outro objeto. Veja que utilizamos
controles remotos como exemplo. No mundo real, um objeto controle remoto
pode ser utilizado, por exemplo, para sintonizar e mudar os canais de um
objeto televisão.
A de�nitiva compreensão do que são de fato objetos e classes, quando no
âmbito da programação orientada a objetos, é fundamental para o
Figura 2.1 - Representação da classe controle remoto 
Fonte: imagesource / 123RF.09/09/2022 19:40 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0xQPdFxf08knK9GoFDY7fQ%3d%3d&l=w2abV45et6fp0PxedTtkFQ%3d%3d&cd=UbRGmX… 7/33
desenvolvimento da capacidade de desenvolver qualquer aplicação de nível
avançado.
praticar
Vamos Praticar
Dois conceitos muito importantes da programação orientada a objetos – O.O., são,
justamente, o conceito de classe e o conceito de objetos. Muitos programadores
experientes não seriam capazes de distinguir os dois conceitos de forma clara,
mesmo sendo capazes de utilizar os recursos de uma linguagem O.O. com certa
maestria. Nesse sentido, sobre conceito de classe e o conceito de objetos, assinale a
alternativa correta.
a) Classes representam a descrição de alguma coisa, algo que, mesmo não
sendo claramente de�nido, pode existir. O objeto representa uma ação, algo
que pode ser feito com a descrição determinada na classe.
Feedback: alternativa incorreta , pois uma classe é, de fato, uma descrição de
algo, por isso, chamada de abstração. O objeto é a concretização disso, ou seja,
é a transformação da classe em algo que possa ser utilizado.
b) Objetos são abstrações de algo que existe no mundo real e que se deseja
transferir para uma aplicação computacional. A classe, por sua vez, é sua
concretização, é o que torna o objeto utilizável.
Feedback: alternativa incorreta , pois classes, sim, são abstrações de algo que
se tem ou não no mundo real. Classes também podem ser descritas para algo
especí�co da aplicação. E os objetos, por sua vez, são a concretização da classe.
c) Classes representam abstrações do mundo real, modelos, moldes que são
utilizados para criação/instanciação dos objetos, que podem ser entendidos
como a concretização da classe.
09/09/2022 19:40 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0xQPdFxf08knK9GoFDY7fQ%3d%3d&l=w2abV45et6fp0PxedTtkFQ%3d%3d&cd=UbRGmX… 8/33
Feedback: alternativa correta , pois, de fato, uma classe representa algo
abstrato, especi�ca uma coisa, mas não se trata da “coisa” propriamente dita. O
objeto é sua concretização, é o resultado da transformação de uma classe em
algo “tátil”.
d) Classes são códigos especí�cos que determinam as possíveis atividades
que alguns trechos do aplicativo podem executar. Objetos representam as
ações internas que a classe é capaz de realizar.
e) Apesar de muitas vezes serem tratados como algo diferente, classes e
objetos são na verdade a mesma coisa. Tanto as classes como os objetos
representam abstrações de algo do mundo real.
09/09/2022 19:40 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0xQPdFxf08knK9GoFDY7fQ%3d%3d&l=w2abV45et6fp0PxedTtkFQ%3d%3d&cd=UbRGmX… 9/33
Apesar de estar ganhando destaque somente no cenário atual, a linguagem
Python não é recente, muito pelo contrário, a linguagem Python é quase tão
antiga quanto outras linguagens bem famosas como C e Pascal. A primeira
versão da linguagem Python foi concebida no �m da década de 1980, sua
implementação ocorreu somente em 1982. Já em 1987, percebendo a
necessidade de se utilizar uma linguagem que pudesse ser uma intermediária
entre o C e o Shell Script, Guido Van Rossum (p. 36, 2007) a�rmou que:
Percebi que o desenvolvimento de utilitários para administração de
sistema em C (do Amoeba) estava tomando muito tempo. Além
disso, fazê-los em shell Bourne não funcionaria por diversas razões.
O motivo mais importante foi que, sendo um sistema distribuído de
microkernel com um design novo e radical, as operações primitivas
do Amoeba diferiam muito (além de serem mais re�nadas) das
operações primitivas disponíveis no shell Bourne. Portanto, havia
necessidade de uma linguagem que “preencheria o vazio entre C e
o shell”. Por um tempo longo, esse foi o principal objetivo do
Python.
Orientação aOrientação a
Objetos comObjetos com
PythonPython
09/09/2022 19:40 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0xQPdFxf08knK9GoFDY7fQ%3d%3d&l=w2abV45et6fp0PxedTtkFQ%3d%3d&cd=UbRGm… 10/33
O�cialmente, a linguagem Python foi lançada em 1990, e, desde então, vem
sendo utilizada na produção de diversos tipos de softwares para desktop,
aplicações web e também dispositivos embarcados. Ainda que em suas
primeiras versões a linguagem Python não tenha sido desenvolvida para ser
orientada a objetos (O.O.), com o passar dos anos, ela foi sofrendo
adaptações e evoluindo, e hoje é capaz de implementar praticamente todos
os recursos de orientação a objetos observados em outras linguagens mais
recentes.
Entender orientação a objetos em Python é fundamental para o
desenvolvimento de aplicações que sejam capazes de realizar análise de
dados. Apesar de diversas outras linguagens de programação fornecerem
recursos que permitam essa atividade, para este estudo, escolheu-se Python
por dois motivos: primeiro, Python é extremamente didática, robusta e de
boa performance, tanto para análise de dados quanto para outras atividades;
segundo, Python é popular e vem sendo adotada por grande parte das
universidades norte-americanas.
Classes em Python
Como vimos anteriormente, na programação orientada a objetos, dois
conceitos são de extrema importância, são eles o conceito de classes e o
conceito de objetos. Cada linguagem de programação pode ter sua própria
sintaxe, mas, geralmente, mesmo diferentes, todas têm a mesma �nalidade.
Assim como nos alfabetos das linguagens naturais humanas, cada idioma
pode apresentar sua própria estrutura e dialeto, mas todos têm o mesmo
propósito. 
09/09/2022 19:40 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0xQPdFxf08knK9GoFDY7fQ%3d%3d&l=w2abV45et6fp0PxedTtkFQ%3d%3d&cd=UbRGm… 11/33
Uma classe Python pode ser de�nida (especi�cada) da seguinte forma:
saibamais
Saiba mais
Na lógica, sintaxe refere-se às regras de
composição dos textos em uma linguagem
formal, constituindo fórmulas bem-formadas
de um sistema lógico. Na ciência da
computação, sintaxe se refere às regras que
são utilizadas para a composição de textos
com signi�cado em alguma linguagem
formal, tal como ocorre com as linguagens de
programação. Para saber mais, acesse o
texto a seguir.
Fonte: Adaptado de Portella, Da Cunha e
Bazotti (2017).
ACESSAR
http://editora.universidadedevassouras.edu.br/index.php/TECCEN/article/view/234
09/09/2022 19:40 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0xQPdFxf08knK9GoFDY7fQ%3d%3d&l=w2abV45et6fp0PxedTtkFQ%3d%3d&cd=UbRGm… 12/33
Esta é a sintaxe básica da de�nição (criação) de uma classe em Python, isso
signi�ca que toda e qualquer classe Python será de�nida com um comando
não igual, mas semelhante a este. Dizemos que não será igual simplesmente
pelo fato de algumas das palavras utilizadas na sintaxe serem imutáveis, mas
outras não. A cláusula class , por exemplo, sempre precederá o nome da
classe, o nome da classe, por sua vez, será aquele que o programador
considerar conveniente, mas sempre respeitando as determinações da
linguagem, a cláusula object é opcional e permite autorreferenciar a classe
como um objeto.
Uma classe é um tipo abstrato de dado, ou seja, uma estrutura de dado,
sendo assim, a de�nição de uma classe permite não somente que diversos
dados sejam armazenados, como também prevê a realização de diversas
operações que podem ser realizadas com o conjunto de dados existentes na
classe, ou não. Para entender melhor a criação de classes em Python, veja o
seguinte exemplo: suponha a necessidade de armazenar informações sobre
pessoas, nome da pessoa, idade, sexo, número do CPF e região do país em
que a pessoa vive. Uma classe pessoa pode ser de�nida para armazenar
todas essas informações. Uma classe com esse objetivo pode ser de�nida da
seguinte forma:
Essa seria a estrutura básica de uma classe que armazena algumas
informações de uma pessoa. A classe não representa uma pessoa, mas a
abstração da entidade do mundo real pessoa. Obviamente, este é um
exemplo bem simples. Note que, ao especi�car a classe pessoa, os dados da
09/09/2022 19:40 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0xQPdFxf08knK9GoFDY7fQ%3d%3d&l=w2abV45et6fp0PxedTtkFQ%3d%3d&cd=UbRGm…13/33
pessoa (os que foram descritos na classe) devem ser especi�cados na própria
classe, esses dados são conhecidos como atributos de uma classe. Este é um
dos poucos inconvenientes do Python, como a linguagem não exige que o tipo
da variável seja especi�cado durante sua criação, obrigatoriamente, se deve
adicionar valores a todas as variáveis que são criadas.
Também é possível especi�car algumas ações para as classes, ou seja,
operações que os objetos relacionados à classe poderão realizar. Como dito
anteriormente, classes são abstrações e objetos são concretizações das
classes. Suponha, agora, que a classe pessoa possua uma operação
responsável por informar o nome, o sexo e a idade de uma pessoa. Então, sua
de�nição seria como a apresentada a seguir:
O comando def imprimeDados( self ) acrescenta uma funcionalidade à classe
pessoa, com isso, quando a classe for transformada em um objeto, caso seja
necessário, o desenvolvedor utiliza o método (ação) imprimeDados para
imprimir nome, sexo e idade da pessoa. Certamente que essas operações
parecem ser bem simples, e de fato são. A intenção aqui não é ensinar a
programar ou até mesmo ensinar orientação a objetos, mas sim demonstrar
de forma muito didática uma forma de criar classes em Python, e é
importantíssimo que você, aluno, entenda e aprenda como fazer.
Objetos em Python
09/09/2022 19:40 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0xQPdFxf08knK9GoFDY7fQ%3d%3d&l=w2abV45et6fp0PxedTtkFQ%3d%3d&cd=UbRGm… 14/33
A utilização de objetos na linguagem Python é tão simples quanto sua
de�nição. Tome como base a classe pessoa, criada anteriormente. Para
melhorar a utilização dessa classe, vamos rede�nir a classe e inserir um
método construtor. Esse método é uma ação que é executada no momento
em que o objeto da classe é criado. A de�nição de um método construtor
segue a seguinte sintaxe:
Na ocasião, caso a classe deva receber alguma informação extra para então
ser criado o objeto, essas informações devem ser especi�cadas como
parâmetros de entrada. Após rede�nir a classe, sua nova estrutura deve �car
semelhante à que é apresentada a seguir:
Observe que o código apresenta algumas diferenças em relação ao anterior.
Nessa versão da classe, os atributos do cliente são de�nidos no momento em
09/09/2022 19:40 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0xQPdFxf08knK9GoFDY7fQ%3d%3d&l=w2abV45et6fp0PxedTtkFQ%3d%3d&cd=UbRGm… 15/33
que o objeto é criado, e não quando a classe é de�nida. Dessa forma, cada
novo objeto pessoa pode ter suas próprias características.
Na versão anterior, se objetos pessoa fossem criados, todos teriam as
mesmas características, seriam como “clones” um dos outros. Para criar um
objeto utilizando a linguagem Python, basta, após ter uma classe de�nida,
utilizar a seguinte sintaxe :
Com isso, um novo objeto é criado. Claro que a sintaxe pode variar de acordo
com as características do objeto que será criado. Para o caso da classe pessoa
de�nida acima, a sintaxe será:
E, para poder utilizar o método que está armazenado no objeto, ou seja,
executar a ação do objeto, basta somente escrever o seguinte comando:
09/09/2022 19:40 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0xQPdFxf08knK9GoFDY7fQ%3d%3d&l=w2abV45et6fp0PxedTtkFQ%3d%3d&cd=UbRGm… 16/33
Apesar de serem exemplos bem simples, o propósito é fornecer um
entendimento (revisão) básica de como são a criação e utilização de classes e
objetos na linguagem Python. A leitura de materiais especí�cos para
programação em Python é altamente recomendada para aprimoramento do
conhecimento sobre a linguagem.
praticar
Vamos Praticar
Python é uma linguagem de programação que permite programar nos paradigmas
estruturados, orientados a objetos e também funcionais. Trata-se de uma
linguagem relativamente antiga, mas que vem evoluindo e se adaptando às novas
exigências tecnológicas contemporâneas. A sintaxe para criação de objetos em
Python é bem simples. Desse modo, assinale a alternativa que apresenta a sintaxe
correta.
a) A de�nição de uma classe é dada pela sintaxe object nome_classe(object)
, e a criação do objeto nome_objeto = nome_classe() .
09/09/2022 19:40 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0xQPdFxf08knK9GoFDY7fQ%3d%3d&l=w2abV45et6fp0PxedTtkFQ%3d%3d&cd=UbRGm… 17/33
b) A de�nição de uma classe é dada pela sintaxe class nome_classe(object) ,
e a criação do objeto nome_objeto = class nome_classe() .
c) A de�nição de uma classe é dada pela sintaxe class nome_classe(object) ,
e a criação do objeto nome_objeto = nome_classe(object) .
d) A de�nição de uma classe é dada pela sintaxe class nome_classe(object) ,
e a criação do objeto object nome_objeto = nome_classe(class) .
e) A de�nição de uma classe é dada pela sintaxe class nome_classe(object) ,
e a criação do objeto nome_objeto = nome_classe() .
09/09/2022 19:40 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0xQPdFxf08knK9GoFDY7fQ%3d%3d&l=w2abV45et6fp0PxedTtkFQ%3d%3d&cd=UbRGm… 18/33
paradigma funcional refere-se a uma estrutura que expressa um conjunto de
suposições. Esse paradigma tem objetivos e abordagens bem diferentes dos
demais paradigmas de programação. A principal diferença entre o paradigma
funcional e os demais paradigmas é que os programas funcionais utilizam
funções matemáticas no lugar de instruções para expressar ideias. Isso
signi�ca dizer que, em vez de escrever um conjunto preciso de etapas para
resolver um determinado problema, serão escritas funções matemáticas, sem
qualquer preocupação com o modo de a linguagem realizar a tarefa.
Em oposição a outros paradigmas de programação, a programação funcional
não mantém estado. Estados permitem controlar valores entre as chamadas
das funções. Alguns paradigmas utilizam esses estados para produzir
resultados variáveis com base no ambiente, tal como determinar o número de
objetos existentes ou fazer algo diferente quando o número de objetos é
zero. 
LinguagensLinguagens
FuncionaisFuncionais
09/09/2022 19:40 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0xQPdFxf08knK9GoFDY7fQ%3d%3d&l=w2abV45et6fp0PxedTtkFQ%3d%3d&cd=UbRGm… 19/33
Assim sendo, como os programas funcionais não apresentam estado, os
dados com os quais essas linguagens trabalham também são imutáveis, isso
signi�ca que o próprio desenvolvedor da aplicação pode mudá-los. É preciso
saber, no entanto, que, para mudar o valor de uma variável em programação
funcional, é preciso criar outra variável (JUNGTHO; GOULART, 2009).
reflita
Re�ita
O paradigma funcional não é tão novo
quanto se pode imaginar, a verdade é
que esse paradigma foi um dos
primeiros a serem de�nidos, pode-se
a�rmar que seu surgimento e o
surgimento do paradigma estruturado
(procedural) foram quase simultâneos.
Mesmo sendo tão antigo, e mesmo
sendo a melhor opção para o
desenvolvimento de aplicações
voltadas para a análise de dados, o
paradigma por anos permaneceu
longe dos holofotes e desconhecido
de muitos programadores. Por que
motivo um paradigma tão poderoso
permaneceu tanto tempo “às
sombras” da orientação a objetos?
09/09/2022 19:40 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0xQPdFxf08knK9GoFDY7fQ%3d%3d&l=w2abV45et6fp0PxedTtkFQ%3d%3d&cd=UbRGm… 20/33
Objetivos e Características do
Paradigma Funcional
A maioria dos paradigmas de programação utiliza uma abordagem imperativa
, essa abordagem é muito parecida com uma linha de montagem. Nessa
abordagem os dados se movem através de uma série de etapas e em uma
ordem especí�ca, levando a um determinado resultado.
Essa abordagem é rígida e �xa, e o desenvolvedor deve criar uma linha de
montagem sempre que a aplicação tiver necessidade de um novo resultado.
No paradigma orientado a objetos, essas etapas são apenas ocultadas e
modularizadas, mas seu paradigma subjacente é o mesmo. Em um paradigma
orientado a objetos, não é possível a reorganização dos códigos dos objetos
de modos não antecipados,isso se dá pela interdependência inerente ao
código.
Ao utilizar funções puras, um ambiente �exível é criado, e nele a ordem do
código depende da matemática subjacente. Essa matemática, por sua vez,
modela um ambiente real, e, quando o entendimento desse ambiente muda
ou evolui, o modelo matemático e o código funcional podem mudar com ele.
Em um paradigma imperativo , essas mudanças podem levar a falhas no
código (JUNGTHO; GOULART, 2009).
Uma importante característica do paradigma funcional é que ele utiliza
abordagens únicas de codi�cação, isso permite que uma função seja passada
como parâmetro de entrada para outra função. Assim como muda o
comportamento do aplicativo de forma previsível, o que não é permitido em
outros paradigmas de programação.
Algumas Vantagens do Paradigma
Funcional
09/09/2022 19:40 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0xQPdFxf08knK9GoFDY7fQ%3d%3d&l=w2abV45et6fp0PxedTtkFQ%3d%3d&cd=UbRGm… 21/33
Como já especi�cado, o paradigma funcional é baseado em funções
matemáticas e vem sendo adotado por grandes nomes da internet, tal como
LinkedIn, Pinterest, Twitter, NuBank etc., e isso é, em muitos casos, devido aos
benefícios que este paradigma traz. Aplicar recursos como threads,
concorrência e paralelismo se torna muito mais fácil quando são utilizados
paradigmas funcionais, e isso representa um ganho elevadíssimo quando as
aplicações que usam esses recursos são executadas em arquiteturas
multicore e multithread.
praticar
Vamos Praticar
Algumas linguagens de programação como Python, Java e até mesmo C#, que são
linguagens orientadas a objeto, permitem e suportam a programação funcional,
mesmo não tendo sido desenvolvidas com essa �nalidade. Entre esses paradigmas,
funcional e orientado a objetos, existem diferenças importantes. Nesse sentido,
assinale a alternativa que apresenta uma característica única do paradigma
funcional.
a) Paradigmas funcionais utilizam funções matemáticas no lugar de
instruções para exprimir ideias.
b) A abordagem funcional é rígida e �xa, e o programador deve desenvolver
todo o código como se fosse uma linha de montagem.
c) Diferente do que ocorre no paradigma funcional, nos paradigmas
orientados a objetos, funções podem ser passadas como parâmetros para
outras funções.
d) No paradigma funcional, a utilização de funções puras, capazes de gerar
um ambiente �exível quando adotado, pode levar a falhas no código.
09/09/2022 19:40 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0xQPdFxf08knK9GoFDY7fQ%3d%3d&l=w2abV45et6fp0PxedTtkFQ%3d%3d&cd=UbRGm… 22/33
e) Uma característica fundamental do paradigma funcional é de�nição de
classes e criação de objetos.
09/09/2022 19:40 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0xQPdFxf08knK9GoFDY7fQ%3d%3d&l=w2abV45et6fp0PxedTtkFQ%3d%3d&cd=UbRGm… 23/33
Primeiramente, é preciso entender que a programação funcional refere-se a
um paradigma, ou seja, não possui uma implementação especí�ca. A base da
programação funcional é o cálculo lambda , que é uma abstração da
matemática.
A maioria das linguagens de programação permite programar utilizando o
paradigma funcional. Sempre que, em um aplicativo, uma expressão lambda
é utilizada ou criada, uma parcela de programação funcional está sendo
realizada. Além das expressões lambda, linguagens que suportam
programação funcional apresentam outras características em comum, são
eles (JUNGTHO; GOULART, 2009):
Funções de Primeira Classe e Primeira Ordem : permite que
funções sejam utilizadas como parâmetros de entrada para outras
funções;
Funções puras : são funções que não apresentam “efeitos
colaterais”;
Realizando TarefasRealizando Tarefas
com o Paradigmacom o Paradigma
FuncionalFuncional
09/09/2022 19:40 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0xQPdFxf08knK9GoFDY7fQ%3d%3d&l=w2abV45et6fp0PxedTtkFQ%3d%3d&cd=UbRGm… 24/33
Recursão : programas funcionais utilizam a recursão para realização
de loops ; e
Transparência referencial : o valor de uma variável nunca muda.
É comum também que várias implementações de linguagens funcionais
utilizem diferentes sistemas, assim, a forma como o computador subjacente
detecta os tipos de valores também pode mudar entre as linguagens. Outra
questão que deve ser levada em consideração é que cada linguagem utiliza
sua própria estrutura de dados, mesmo que muitas delas possam
compartilhar as mesmas estruturas.
Linguagens Funcionais
Como visto nos tópicos anteriores, as linguagens funcionais são um
paradigma, e não necessariamente um tipo de linguagem de programação. Ao
nos referirmos ao termo paradigma, estamos nos referindo a uma forma de
se realizar determinadas tarefas, ou seja, a forma como um programa é
escrito.
Entretanto, algumas linguagens de programação são mais suscetíveis à
programação funcional do que outras, isso quer dizer que sua estrutura é
mais adaptada para esse tipo de paradigma de programação. Entre as
linguagens preparadas para a programação funcional, as mais conhecidas são
(JUNGTHO; GOULART, 2009):
Prolog : de uso geral, enquadra-se como uma linguagem de
programação para lógica matemática. Está intimamente ligada à
inteligência arti�cial e à linguística computacional;
Lisp : apta a trabalhar com dados simbólicos, é capaz de criar
diversas estruturas de dados através de funções matemáticas;
Scheme : trata-se basicamente de uma simpli�cação da linguagem
Lisp ;
Haskell : trata-se de uma linguagem puramente funcional. Entre as
linguagens de ou que permitem o paradigma funcional, é a mais
robusta.
09/09/2022 19:40 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0xQPdFxf08knK9GoFDY7fQ%3d%3d&l=w2abV45et6fp0PxedTtkFQ%3d%3d&cd=UbRGm… 25/33
Também é possível, como já dito, utilizar a programação funcional utilizando
outras linguagens de programação, uma delas é a Python, que, como visto, é
uma das linguagens de programação mais populares da atualidade. Para
permitir o uso do paradigma funcional oferecendo o maior número de
funcionalidades possível, a linguagem Python utiliza uma biblioteca que lhe
atribui muitas das características e capacidades da linguagem Haskell. Como
também já foi dito, a linguagem Python é conhecida por evoluir e adaptar-se
às novas exigências da tecnologia.
Breves Exemplos de Expressões
Lambda em Python
Uma das principais características do Python não é somente seu riquíssimo
conjunto de estruturas de dados, dentro da qual deve-se dar destaque às
listas. Python também tem ganhado muitos adeptos por evoluir à medida que
as necessidades tecnológicas mudam e exigem mais das linguagens de
programação e do programador.
Atendendo às novas necessidades do mercado, que voltou-se para o
desenvolvimento de aplicações que fossem poderosas o su�ciente para
realizar análise de dados, mas simples o bastante para que não oferecesse
mais desa�os ao desenvolvedor, foi inserida na linguagem a capacidade de
trabalhar com programação funcional e, nesse sentido, interpretar
expressões lambda. Essas expressões não possuem qualquer semelhança
com as instruções de programação utilizadas para o desenvolvimento de
aplicações comuns, e sua sintaxe básica pode ser observada a seguir
(JUNGTHO; GOULART, 2009):
09/09/2022 19:40 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0xQPdFxf08knK9GoFDY7fQ%3d%3d&l=w2abV45et6fp0PxedTtkFQ%3d%3d&cd=UbRGm… 26/33
Nesse exemplo, var1, var2, …, varN representam as variáveis que serão os
argumentos da função expr_ret, que, por sua vez, pode ser qualquer
argumento válido do Python. Um exemplo básico, mas capaz de demonstrar
um pouco de como seria uma expressão lambda para retornar o dobro de um
número qualquer. A sintaxe é apresentada a seguir:
Nesse exemplo, ao escrever o código dobo = funcao_dob(2), de�nimos que o
valor de n será 2. Em seguida, ao escrever o código dobro(11), então 11 será o
valor de a, que foi de�nido como uma entrada para a função lambda. Para
que o retorno fosse o triplo, entãobastaria criar a função triplo =
funcao_lamb(3).
09/09/2022 19:40 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0xQPdFxf08knK9GoFDY7fQ%3d%3d&l=w2abV45et6fp0PxedTtkFQ%3d%3d&cd=UbRGm… 27/33
praticar
Vamos Praticar
Um dos pontos principais do desenvolvimento de aplicações que realizam a análise
de dados é a programação funcional. Esse tipo de programação é caracterizado pela
utilização de expressões lambda, e essas expressões são caracterizadas por serem
uma abstração da matemática. Sobre as expressões lambda, assinale a alternativa
correta.
a) Expressões lambda representam abstrações de operações e funções
matemáticas, diferente de instruções comuns.
b) Expressões lambda são como quaisquer outras instruções de qualquer
outro paradigma de programação.
c) Toda as operações realizadas através de uma expressão lambda podem
também ser realizada por uma instrução imperativa.
d) Uma das principais características observadas nas expressões lambda que
as diferenciam dos demais paradigmas é a possibilidade de usar funções
como parâmetro para funções.
e) Expressões lambda são instruções que representam o contexto imperativo
do paradigma de programação funcional.
09/09/2022 19:40 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0xQPdFxf08knK9GoFDY7fQ%3d%3d&l=w2abV45et6fp0PxedTtkFQ%3d%3d&cd=UbRGm… 28/33
indicações
Material
Complementar
LIVRO
Python para Desenvolvedores
Editora : Edição do Autor
Ano : 2009
Luiz Eduardo Borges
Comentário : Ótima leitura para quem está iniciando
sua jornada ou até mesmo para quem já possui
experiência em programação Python. O livro apresenta
diversos fundamentos e exemplos da linguagem, além
de ser muito didático e possuir uma linguagem simples.
09/09/2022 19:40 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0xQPdFxf08knK9GoFDY7fQ%3d%3d&l=w2abV45et6fp0PxedTtkFQ%3d%3d&cd=UbRGm… 29/33
WEB
Programação Funcional com Marina
Limeira
Ano : 2017
Comentário : Neste vídeo você terá acesso a um bate-
papo sobre programação funcional realizada no 19º
Encontro Locaweb. O vídeo apresenta vários conceitos
relacionados à programação funcional, a linguagem
utilizada pelo palestrante é simples e muito fácil de
entender. Certamente, ajudará a compreender melhor
o paradigma funcional e seus conceitos.
Para conhecer mais acesse o link a seguir.
ACESSAR
https://www.youtube.com/watch?v=X-hKc4FFhCM
09/09/2022 19:40 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0xQPdFxf08knK9GoFDY7fQ%3d%3d&l=w2abV45et6fp0PxedTtkFQ%3d%3d&cd=UbRGm… 30/33
conclusão
Conclusão
Para atuar no desenvolvimento de aplicações que realizam captura e análise
de dados, não basta que o desenvolvedor conheça bem a estrutura de uma
linguagem de programação ou que esteja habituado com sua sintaxe e seja
capaz de escrever códigos complexos com o mínimo ou nenhuma ajuda. A
análise de dados requer que as aplicações sejam escritas preferencialmente
(se não obrigatoriamente) utilizando o paradigma funcional. Esse paradigma
requer mais do que o conhecimento da sintaxe das linguagens, mas também
bons conhecimentos de matemática e estatística, para que se possa de�nir
funções matemáticas que retornem os dados desejados. A análise de dados é
mais do que simplesmente capturar os dados, requer que os dados, além de
capturados, sejam analisados e sofram inferências estatísticas para que
possam gerar valor, ou seja, informação útil.
referências
Referências
Bibliográ�cas
BORGES, L. E. Python para Desenvolvedores . Edição do Autor, 2009.
09/09/2022 19:40 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0xQPdFxf08knK9GoFDY7fQ%3d%3d&l=w2abV45et6fp0PxedTtkFQ%3d%3d&cd=UbRGm… 31/33
JUNGTHON, G.; GOULART, C. M. Paradigmas de Programação . 2009.
Monogra�a (Monogra�a) — Faculdade de Informática de Taquara, Rio Grande
do Sul, 2009.
MARTINS, N. P. et al . Comparativo de Linguagens de Programação. Anais do
Salão Internacional de Ensino, Pesquisa e Extensão, v. 8, n. 2, 2017. In :
PIZZOLATO, Ednaldo Brigante. Introdução à programação orientada a
objetos com C++ e Java . EdufScar, 2010.
MCKINNEY, W. Python para análise de dados : tratamento de dados com
Pandas, NumPy e IPython. Rio de Janeiro: Novatec Editora, 2018.
PORTELLA, S. G. S.; DA CUNHA, L. C.; BAZOTTI, J. P. L. Ensino de linguagem de
programação Java a partir da Lógica Proposicional : compartilhamento
cidadão de saberes entre estudantes do IFRS/Campus Osório e da Escola
Estadual de Ensino Médio Albatroz. MoExP - Mostra de Ensino, Extensão e
Pesquisa do Campus Osório, v. 1, n. 1, p. 1-1, 2017
PRESSMAN, R.; MAXIM, B. Engenharia de Software . 8. ed. McGraw Hill Brasil,
2016.
VAN ROSSUM, G. et al. Python Programming Language. In : USENIX Annual
Technical Conference . 2007.
09/09/2022 19:40 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0xQPdFxf08knK9GoFDY7fQ%3d%3d&l=w2abV45et6fp0PxedTtkFQ%3d%3d&cd=UbRGm… 32/33
09/09/2022 19:40 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0xQPdFxf08knK9GoFDY7fQ%3d%3d&l=w2abV45et6fp0PxedTtkFQ%3d%3d&cd=UbRGm… 33/33

Continue navegando