Você está na página 1de 48

PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO

Fórum de Discussão
Paradigmas na Prática

Profa. Amanda Britto


Paradigmas na Prática

1. Por que participar?

2. Problematização

3. Conceitos iniciais

4. Agora é com você!

5. Dicas para a resolução


Por que participar?

Qual a finalidade do Fórum de Discussão?

• Pesquisar
• Desenvolver
• Compartilhar
• Interagir
Por que participar?

Qual a finalidade do Fórum de Discussão?

• Pesquisar == aprofundamento
• Desenvolver
• Compartilhar
• Interagir
Por que participar?

Qual a finalidade do Fórum de Discussão?

• Pesquisar == aprofundamento
• Desenvolver == execução prática
• Compartilhar
• Interagir
Por que participar?

Qual a finalidade do Fórum de Discussão?

• Pesquisar == aprofundamento
• Desenvolver == execução prática
• Compartilhar == comunicação
• Interagir
Por que participar?

Qual a finalidade do Fórum de Discussão?

• Pesquisar == aprofundamento
• Desenvolver == execução prática
• Compartilhar == comunicação
• Interagir == reforço do aprendizado
Por que participar?

Qual a finalidade do Fórum de Discussão?

• Pesquisar == aprofundamento
• Desenvolver == execução prática
• Compartilhar == comunicação
• Interagir == reforço do aprendizado
Problematização

- O que é um Paradigma de Programação?


Problematização

- O que é um Paradigma de Programação?

Paradigma, em programação
=
Método para resolver um
problema específico
Problematização

- O que é um Paradigma de Programação?

Paradigma, em programação
=
Método para resolver um
problema específico
- Quais são os paradigmas de programação?
Problematização

- O que é um Paradigma de Programação?

Paradigma, em programação
=
Método para resolver um
problema específico
- Quais são os paradigmas de programação?
- Por que é importante conhecer a praticar os
diferentes paradigmas?
Problematização

- O QUE é um Paradigma de Programação?

Paradigma, em programação
=
Método para resolver um
problema específico
- QUAIS são os paradigmas de programação?
- POR QUE é importante conhecer a praticar os
diferentes paradigmas?
Conceitos iniciais
• O que é?
Paradigma de Programação
Consiste em um método para resolver
problemas específicos de
programação, ou mesmo uma prática
para solucionar problemas por meio
de técnicas e abordagens mais
adequadas e/ou estratégicas.

• No dicionário, a definição de
paradigma é:
Conceitos iniciais

• O que é?

Os paradigmas funcionam, assim, como


um manual ou receita que indicam o
melhor caminho para alcançar um
resultado – mas não só!

Saber o paradigma permite definir o tipo


de programa com o qual estamos lidando.
Conceitos iniciais
• Quais são os tipos de linguagem de programação?
Conceitos iniciais
• Quais são os tipos de linguagem de programação?
Quão intuitivo e próximo da
linguagem humana e/ou de
máquina o código é

Período de desenvolvimento
Conceitos iniciais
• Quais são os tipos de linguagem de programação?
Conceitos iniciais
• Quais são os tipos de linguagem de programação?
Conceitos iniciais
• Quais são os tipos de linguagem de programação?
Conceitos iniciais
• Quais são os tipos de linguagem de programação?
Conceitos iniciais
• Quais são os tipos de linguagem de programação?

JAVASCRIPT
PHP
Conceitos iniciais
• O que é um paradigma de programação?

IMPERATIVO DECLARATIVO
É um dos paradigmas de programação É um estilo de desenvolvimento que
mais antigos. Possui estreita relação com expressa a lógica da computação sem
a arquitetura da máquina. É baseado na falar sobre seu fluxo de controle. Pode
arquitetura de Von Neumann. Ele simplificar a escrita de programas
funciona alterando o estado do programa paralelos. O foco está em o que precisa
por meio de instruções de atribuição. Ele ser feito em vez de como deve ser feito,
executa a tarefa passo a passo, alterando declarando o resultado que queremos e
o estado. O foco principal é como atingir o como ele foi produzido. Esta é a principal
objetivo. O paradigma consiste em várias diferença entre os paradigmas de
instruções e após a execução de todo o programação imperativos (como fazer) e
resultado é armazenado. declarativos (o que fazer).
Conceitos iniciais
• O que é um paradigma de programação?

IMPERATIVO DECLARATIVO
Vantagens:
Vantagens: • Foco no resultado, com código curto e eficiente;
• Simplifica a programação paralela;
• Muito simples de implementar; • Maior nível de abstração (permite abordar
• Faz uso de loops, variáveis, laços de problemas mais complexos);
repetição etc. • Pode ser usado para trazer métodos inovadores;
• Otimização de código e manutenção independente.
Desvantagens:
Desvantagens: • Códigos podem ser mais complicados de
• Não é bom para algoritmos e/ou compreender;
problemas mais complexos; • É baseado em conceitos e modelos não tão
populares;
• Menos eficiente e menos produtivo; • Maior dificuldade para incluir características
• Não permite programação paralela. individuais de uma aplicação.
Conceitos iniciais
• O que é um paradigma de programação?

IMPERATIVO DECLARATIVO

Exemplos de linguagens do paradigma de Exemplos de linguagens do paradigma de


programação imperativa: programação declarativa:

C: código estruturado, procedural, Prolog: paradigma lógico e declarativo.


modular, de tipagem estática e compilado. Dialetos: ISO Prolog, Edinburgh Prolog.

Fortran: tipagem estática forte, Haskell: influenciou C#; Cat; Clojure; F#;
estruturado, procedural e OO. Python; Rust; Scala.

Basic: estruturada e procedural, criada SQL: tipagem forte e estática. Linguagem


para fins didáticos. padrão para gestão de bases de dados.
Conceitos iniciais
• Quais são os paradigmas em programação ?

PARADIGMA PARADIGMAS PARADIGMA


PROCEDURAL HÍBRIDOS FUNCIONAL

PARADIGMAS
ORIENTADO A PARADIGMAS PARADIGMAS PARADIGMAS
DE
OBJETOS IMPERATIVOS DECLARATIVOS LÓGICO
PROGRAMAÇÃO

ORIENTADO A PROCESSAMENTO PARADIGMAS PROCESSAMENTO BASEADO EM


EVENTOS DISTRIBUÍDO CONCORRENTES PARALELO REGRAS
Conceitos iniciais
• Quais são os paradigmas em programação ? Vantagens:
• Muito simples de
implementar;
• Faz uso de loops, variáveis,
laços de repetição etc.
PARADIGMA
PROCEDURAL

PARADIGMAS
IMPERATIVOS

→ Enfatiza o procedimento em termos de modelo de


máquina. Não há diferença entre abordagem procedimental
e imperativa. Ele tem a capacidade de reutilizar o código, o
que facilita muito o desenvolvimento.
Conceitos iniciais
• Quais são os paradigmas em programação ?
Vantagens:
• Segurança de dados;
• Herança;
• Reutilização de código;
• Flexível e com alto nível de abstração.

ORIENTADO A PARADIGMAS
OBJETOS IMPERATIVOS

→ Nesse paradigma, o programa é escrito como uma coleção


de classes e objetos que são destinados à comunicação. A
entidade menor e básica é o objeto, e todo tipo de computação
é realizada apenas nos objetos. Esse paradigma dá mais ênfase
aos dados que aos procedimentos, e permite lidar com quase
todos os tipos de problemas da vida real.
Conceitos iniciais
• Quais são os paradigmas em programação ?
Vantagens:
• Maior agilidade e desempenho;
• Lida com requisições simultâneas.

PARADIGMAS
PARADIGMAS
DE
DECLARATIVOS
PROGRAMAÇÃO

PARADIGMAS PROCESSAMENTO
CONCORRENTES PARALELO

→ Refere-se ao processamento de instruções em paralelo, ou seja, dividindo-as entre


vários processadores. Um sistema de processamento paralelo possui mais de um
processador operando com o objetivo de executar um programa em menos tempo.
Conceitos iniciais
• Quais são os paradigmas em programação ?

Tem raiz nas funções matemáticas, focando na


PARADIGMA abstração computacional, e não na estrutura
FUNCIONAL de dados. Permite trocar uma função pelo seu
valor sem atrapalhar a execução do código.

Servem como modelos abstratos para


PARADIGMAS PARADIGMAS computação, ajudando a resolver problemas
DECLARATIVOS LÓGICO lógicos como puzzles, séries etc. Muito usado
pelo campo do aprendizado de máquina e I.A.

O método é totalmente voltado aos dados e


BASEADO EM
sua estrutura, não focando em sequências de
DADOS passos lógicos. Costumam ser usadas para
gestão de bancos de dados.
Conceitos iniciais
• Por que é importante conhecer e praticar os paradigmas?

A importância dos paradigmas se dá pelo fato


de que eles permitem definir uma linguagem
de programação e o seu funcionamento.

Uma boa maneira de compreender essa


importância é visualizar os paradigmas como
um conjunto de métodos de que as linguagens
de programação podem se apropriar para
executar o código com melhor desempenho.
Agora é com você!

Para pratica um pouco os paradigmas de programação, iremos realizar o


exercício prático disponível no link a seguir:
Mapa do Maroto, disponível no link:
http://dirlididi.com/client/index.html#ide/UqBk7Iogi

Fonte: https://harrypotter.fandom.com/pt-br/wiki/Mapa_do_Maroto
Agora é com você!
1 – Crie uma conta no site da ferramenta Dirlididi.
2 – Acesse o link do desafio Mapa do Maroto e leia o
contexto do problema:
“Cout está com o mapa do maroto, ou seja, ele consegue ver onde os
professores de Hogwarts estão e também os corredores do castelo.
Ele deseja ir para um determinado lugar sem que seja percebido e para isso precisa de sua ajuda. A entrada
consiste de 2 linhas, a primeira diz a coordenada de origem de Cout (x, y) e as coordenadas do local que ele quer
ir (x2, y2), a segunda linha consiste de uma string indicando o caminho que ele pretende seguir.”

Para cada elemento da string, temos que Cout Exemplos:


pode ir para: • NNNLLP, ele retorna as 2 posições leste e suas coordenadas
Norte (N) = (x, y+1) ficam: (0, 3)
Sul (S) = (x, y-1) • NNNP, ele retorna as 3 posições norte e suas coordenadas
Leste (L) = (x+1, y) ficam: (0, 0)
Oeste (O) = (x-1, y) • NNLLLOP, ele retorna 1 posição oeste e suas coordenadas
P = indica que tem professor. ficam: (3, 2)
Nesse caso, Cout tem que correr para o último Seu programa deve indicar SIM se Cout consegue chegar ao
corredor que estava antes de mudar de direção. local de destino, ou NAO se caso contrário.
Agora é com você!

“Cout está com o mapa do maroto, y

ou seja, ele consegue ver onde os


professores de Hogwarts estão e (x2, y2)
também os corredores do castelo.
Ele deseja ir para um determinado
lugar sem que seja percebido e para
isso precisa de sua ajuda. A entrada (x, y)
consiste de 2 linhas, a primeira diz a
coordenada de origem de Cout (x,
y) e as coordenadas do local que ele
quer ir (x2, y2), a segunda linha
consiste de uma string indicando o x
caminho que ele pretende seguir.”
Acima temos a representação do mapa, em que o garoto Cout
deseja ir do ponto inicial (x, y) até o segundo ponto (x2, y2).
Agora é com você!

“Cout está com o mapa do maroto,


ou seja, ele consegue ver onde os
professores de Hogwarts estão e
também os corredores do castelo.
Ele deseja ir para um determinado Essa informação significa que nosso programa
lugar sem que seja percebido e para tem duas entradas, uma em cada linha:
isso precisa de sua ajuda. A entrada 1 Aqui vamos inserir as coordenadas de origem
consiste de 2 linhas, a primeira diz a e destino
coordenada de origem de Cout (x, 2 Aqui vamos inserir uma string indicando o
caminho a seguir
y) e as coordenadas do local que ele
quer ir (x2, y2), a segunda linha
consiste de uma string indicando o
caminho que ele pretende seguir.”
Agora é com você!

Para cada elemento da string, temos que


Cout pode ir para:
(x, y+1)
Norte (N) = (x, y+1) N
Sul (S) = (x, y-1)
Leste (L) = (x+1, y)
(x-1, y) (x+1, y)
Oeste (O) = (x-1, y) O L

P = indica que tem professor


S
Nesse caso, Cout tem que correr para o (x, y-1)
último corredor em que estava antes de
mudar de direção
Agora é com você!
Exemplos: NNNLLP x = 0, y = 0 y
(x, y+1) 0, 1
• NNNLLP, ele retorna as 2 posições leste e suas (x, y+1) 0, 2
coordenadas ficam: (0, 3) (x, y+1) 0, 3 P
• NNNP, ele retorna as 3 posições norte e suas (x+1, y) 1, 3
coordenadas ficam: (0, 0) (x+1, y) 2, 3
• NNLLLOP, ele retorna 1 posição oeste e suas P = volta x 0, 3
x
coordenadas ficam: (3, 2) Resultado: NÃO

Seu programa deve indicar SIM caso Cout consiga NPLLNNNN x = 0, y = 0


y
chegar ao local de destino, ou NÃO. (x, y+1) 0, 1
P = volta y 0, 0
(x, y+1)
(x+1, y) 1, 0
(x+1, y) 2, 0
(x, y+1) 2, 1 P
(x-1, y) (x+1, y) (x, y+1) 2, 2
(x, y+1) 2, 3 x
(x, y-1) Resultado: SIM
Agora é com você!
3 – Resolva o terceiro exemplo a partir do conceito explicado:
• NNLLLOP, ele retorna 1 posição oeste e
suas coordenadas ficam: (3, 2)
Visualizando o Exemplo 3 y
(x, y+1) NNLLLOP x = 0, y = 0

(x-1, y)
O
(x+1, y)
L
?
x
Resultado:
S
(x, y-1)
Agora é com você!
4 – Desenvolva um exemplo em que o resultado seja “SIM” e use o
compilador disponível para ver o resultado:
Agora é com você!

Por fim, responda às seguintes questões no Fórum de Discussão:

a) Elabore uma possível solução ao problema apresentado, teste e


compartilhe o resultado alcançado (output) aqui no Fórum;

b) Comente qual foi a linguagem utilizada, e a qual paradigma de


programação ela está relacionada;

c) Explique como o entendimento do paradigma em questão pode auxiliar


na resolução de problemas de programação semelhantes.
Agora é com você!

a) Elabore uma possível solução ao problema Nessa etapa você irá pesquisar e praticar. É como
apresentado, teste e compartilhe o resultado preparar o terreno para o seu desenvolvimento!
alcançado (output) aqui no Fórum;

b) Comente qual foi a linguagem utilizada, e a Hora de colocar a mão na massa – reúna o
qual paradigma de programação ela está contexto aos conceitos que foram apresentados.
relacionada;

c) Explique como o entendimento do Que tal fixar e expandir o seu conhecimento?


paradigma em questão pode auxiliar na É aqui que a prática se amplifica e potencializa.
resolução de problemas de programação
semelhantes.
Dicas para a resolução
a) Comece prototipando a solução visualmente.
A partir dos exemplos que vimos, resolva o terceiro
a) Elabore uma possível solução ao exemplo apresentado por meio da tabela e do auxílio do
problema apresentado, teste e compartilhe visual gráfico.
o resultado alcançado (output) aqui no Em sequência, crie um novo exemplo nos mesmos
Fórum; moldes em que o garoto consiga ir de um ponto A até um
ponto B sem passar pelo ponto em que está o professor.
b) Comente qual foi a linguagem utilizada, e Se ele passar pelo professor, ele deverá retornar e tentar
a qual paradigma de programação ela está outro caminho.
relacionada;
Exemplo: ele está em um
c) Explique como o entendimento do ponto no Q3 e quer
paradigma em questão pode auxiliar na chegar a um ponto no Q2, P
resolução de problemas de programação mas encontra o Professor
semelhantes. no caminho:

NNNPOOONNNN
Dicas para a resolução
b) Unindo a prática ao conceito.
a) Elabore uma possível solução ao
Paradigma: tente identificar o paradigma que mais se
problema apresentado, teste e compartilhe
adequaria ao problema proposto. Comece com as
o resultado alcançado (output) aqui no
duas grandes divisões: iterativo ou declarativo?
Fórum;

b) Comente qual foi a linguagem utilizada, e Linguagem: busque exemplos de código a partir da
a qual paradigma de programação ela está linguagem que você escolheu utilizar.
relacionada;
Agora você deve comentar o paradigma e a linguagem
c) Explique como o entendimento do que utilizou para a solução do problema.
paradigma em questão pode auxiliar na
resolução de problemas de programação Você consegue identificar, na estrutura do seu código,
semelhantes. um elemento que demonstre que essa linguagem faz
parte do paradigma em questão?
Dicas para a resolução

a) Elabore uma possível solução ao


problema apresentado, teste e compartilhe
o resultado alcançado (output) aqui no c) Indo além do código.
Fórum;
Analise o código que você desenvolveu e o paradigma
b) Comente qual foi a linguagem utilizada, e de programação ao qual ele pertence.
a qual paradigma de programação ela está
relacionada; Quais são os métodos que esse paradigma possui que
te ajudaram a resolver o problema, ou seja, a
c) Explique como o entendimento do desenvolver o seu código e chegar à solução?
paradigma em questão pode auxiliar na
resolução de problemas de programação
semelhantes.
Dica para a resolução

Acesse o HackerRank, que contém desafios e resolução para diversos


problemas de linguagens de programação.

Disponível em:
https://www.hackerrank.com/
Próximos passos
1. Pesquise sobre os pontos que julgar mais
pertinentes para facilitar a sua resolução;
2. Desenvolva a sua resposta com base na
problematização;
3. Compartilhe o seu desenvolvimento no
fórum; e
4. Interaja com a postagem dos colegas
para concluir a segunda etapa proposta –
resolução com interação!
Resolução final

Ei, Prô, onde encontro a resposta??

>> Em nossa última aula ao vivo de


traremos a resolução completa e
analisaremos o que foi
compartilhado dentro do fórum de
discussão.
Profa. Amanda Britto

Obrigada!
Em caso de dúvidas ou sugestões, entre em contato pelo
Fórum de Dúvidas da disciplina.

Você também pode gostar