• Nenhum resultado encontrado

Aula03

N/A
N/A
Protected

Academic year: 2021

Share "Aula03"

Copied!
63
0
0

Texto

(1)

Estratégias de

resolução de problemas

Práticas de ensino de algoritmos

(Hazzan, Cap. 5) Péricles Miranda

(2)

Resolução de Problemas (PS)

• PS é uma das atividades centrais realizadas por

computeiros.

• No processo de resolução de problemas, estudantes tem dificuldades em:

• Análise do problema

(3)

Resolução de Problemas (PS)

• O professor tem que estar ciente destas

dificuldades e

Apresentar estratégias para ajudar o estudante a ganhar experiência e desenvolver habilidades.

(4)

O que iremos estudar hoje?

Estratégias de resolução de

problemas

(5)

Introdução

• Programar é um processo de resolução de problema;

• Desenvolver habilidades em resolver problemas deve ser inicialmente abordado;

• Abstração

• Analogia

Brainstorming

• Dividir para conquistar

(6)

Introdução

(7)

Introdução

O que acontece hoje no ensino?

• Ensina-se linguagens de programação

• Aluno se vira para desenvolver as habilidade de PS.

(8)

Introdução

(9)

Processo de PS

• O processo de PS básico é:

• Identificar os requisitos do sistema

• Criar um conjunto de passos que resolve o problema

(10)
(11)

Processo de PS

• Os passos podem ser vistos como um PROCESSO DE DESCOBERTA.

Muitos autores tratam o processo de PS como um PROCESSO CRIATIVO, como a ARTE.

(12)

Processo de PS

• Existem estágios no processo de PS que podem ajudar:

(13)

Processo de PS

• Existem estágios no processo de PS que podem ajudar:

Análise do problema

(14)

Processo de PS

• Existem estágios no processo de PS que podem ajudar:

• Análise do problema

Considerar alternativas: Pense em diversas

(15)

Processo de PS

• Existem estágios no processo de PS que podem ajudar:

• Análise do problema

• Considerar alternativas

(16)

Processo de PS

• Existem estágios no processo de PS que podem ajudar:

• Análise do problema

• Considerar alternativas

• Escolha uma abordagem

(17)

Processo de PS

• Existem estágios no processo de PS que podem ajudar:

• Análise do problema

• Considerar alternativas

• Escolha uma abordagem

• Decomponha o problema em sub-tarefas

Desenvolvimento do algoritmo: desenvolva o

algoritmo em estágios considerando as sub-tarefas

(18)

Processo de PS

• Existem estágios no processo de PS que podem ajudar:

• Análise do problema

• Considerar alternativas

• Escolha uma abordagem

• Decomponha o problema em sub-tarefas

• Desenvolvimento do algoritmo

(19)

Processo de PS

• Existem estágios no processo de PS que podem ajudar:

• Análise do problema

• Considerar alternativas

• Escolha uma abordagem

• Decomponha o problema em sub-tarefas

• Desenvolvimento do algoritmo

• Verifique a corretude do algoritmo

(20)

Processo de PS

• Existem estágios no processo de PS que podem ajudar:

• Análise do problema

• Considerar alternativas

• Escolha uma abordagem

• Decomponha o problema em sub-tarefas

• Desenvolvimento do algoritmo

• Verifique a corretude do algoritmo

• Calcule a eficiência do algoritmo

Reflita: reflita e analise o processo e verifique se

(21)

Processo de PS

• Existem estágios no processo de PS que podem ajudar:

• Análise do problema

• Considerar alternativas

• Escolha uma abordagem

• Decomponha o problema em sub-tarefas

• Desenvolvimento do algoritmo

• Verifique a corretude do algoritmo

• Calcule a eficiência do algoritmo

(22)
(23)

Entendendo o Problema

• Primeiro estágio do processo de PS;

• Objetivo: identificar as características/requisitos do problema

• Entradas

(24)

Exercício 1:

Identificação de entradas

e saídas

Problema: Crie um sistema que simula um caixa

eletrônico com as operações depositar, sacar e transferir.

Tarefa: Identificar a(s) entrada(s) e saída(s) para

(25)
(26)

Design da solução

• Estudantes possuem maior dificuldade nesta etapa;

• Existem 3 passos que devem ser seguidos

• Definição de variáveis

• Desenvolvimento progressivo

(27)

Design da Solução

Definição das variáveis

• A identificação das entradas e saídas do

problema clarificam o problema;

• A partir deste artefato, pode-se extrair as variáveis

(28)

Exercício 2:

Definição das variáveis

Problema: Crie um sistema que simula um caixa

eletrônico com as operações creditar, debitar e transferir.

Tarefa: Definir as variáveis necessárias para a

(29)
(30)

Design da Solução

Desenvolvimento Progressivo

É uma metodologia top-down que parte de um

problema geral para problemas específicos;

• A ideia principal é dividir o problema em sub-problemas

(31)

Design da Solução

(32)

Design da Solução

Desenvolvimento Progressivo

• Vantagens

• Cada sub-problema possui uma solução mais fácil de implementar e de checar;

• A modularização melhora a legibilidade da solução;

• As soluções dos sub-problemas podem ser

(33)

O mais legal é que essa metodologia pode ser

aplicada a qualquer processo de desenvolvimento de

(34)

A importância do “Desenvolvimento progressivo” aumenta a medida que a complexidade do problema também aumenta!

(35)

Exercício 3:

Quebra em sub-problemas

Problema: Crie um sistema que simula um caixa

eletrônico com as operações creditar, debitar e transferir.

(36)

Design da Solução

Uso de padrões de algoritmos

• Diante de um problema não familiar, como

(37)

Design da Solução

Uso de padrões de algoritmos

• Diante de um problema não familiar, como estudantes irão pensar em soluções?

• Identificar similaridades entre o problema e problemas já resolvidos;

• Transferir ideias destes problemas para problema novo;

• Observar a essência do problema e identificar soluções que podem ser reusadas;

(38)
(39)

Exemplo Prático

Problema: Criar um sistema que auxilie o

usuário em sua locomoção de um lugar para outro.

(40)
(41)

O que já existe que pode nos ajudar

a resolver este problema?

(42)
(43)
(44)
(45)

Design da Solução

Uso de padrões de algoritmos

• É de fundamental importância a identificação de

componentes que foram utilizadas em problemas similares;

• Os componentes (se necessário) devem ser adaptados e integrados ao problema atual;

• Em muitos casos, pode-se combinar diferentes componentes no desenvolvimento da solução

(46)

Exercício 4:

Reuso de componentes

Problema: Dobrar o salário dos funcionários da

empresa na folha.

Componentes

MAP: Recebe como parâmetros uma lista de itens e a operação que

deseja realizar sobre os itens, e retorna uma nova lista.

FILTER: Recebe como parâmetros uma lista de itens e uma operação

Booleana que irá operar sobre cada item; e retorna uma nova lista com os itens que satisfazem a operação.

(47)

Exercício 5:

Reuso de componentes

Problema: Selecionar os funcionários

(48)
(49)
(50)

Verificação da solução

• Após o desenvolvimento da solução, sua corretude deve ser examinada.

Como avaliar se a nossa solução está

correta?

(51)
(52)

Dicas

• Sempre execute mentalmente a sua solução como se fosse o compilador!

(53)

Exemplo prático

• Tem um erro neste algoritmo! Como descobrir?

(54)

Verificação da solução

• A grande vantagem da execução mental é que você é forçado a refletir sobre a sua solução.

• Além de identificar problemas, você passa a pensar em como aperfeiçoar sua solução!

(55)

Alguém já ouviu falar em

(56)
(57)

Reflexão

• Etapa em que o estudante deve repensar e analisar a sua solução como um todo.

• Exige tempo e prática!

(58)

Reflexão

• A reflexão deve acontecer em diversos momentos:

Antes de começar a resolver o problema: refletir

problemas similares já resolvidos e identificar componentes.

Enquanto estiver resolvendo: inspecionar,

controlar e supervisionar o que está sendo feito (pode ser feito mentalmente).

Depois de resolver: identificar problemas e

(59)

Reflexão

• Oriente a sua reflexão com perguntas:

• Perguntas a se fazer antes:

• Como estimar a dificuldade do problema? Por que cheguei a esta conclusão?

• Estou com dificuldade em entender alguma parte do problema? Qual parte não está clara?

• Eu já resolvi problemas similares? Quais são? Quais as similaridades?

• Perguntas a se fazer depois

• A solução está completa?

• Por que eu escolhi esse caminho de resolução? O que poderia mudar?

• A resolução teve a dificuldade que eu esperava?

(60)

Você deve estar se perguntando:

“Esse processo é muito longo,

tenho que fazer muitas coisas!

(61)
(62)
(63)

Estratégias de

resolução de problemas

Práticas de ensino de algoritmos

(Hazzan, Cap. 5) Péricles Miranda

Referências

Documentos relacionados

In this chapter, the behavior of SSIM-based visual quality indexes was studied in detail following the relevant differential mean opinion score correlation methodology of ITU-VQEG,

Caso os personagens não tenham se comportado de maneira minimamente digna, provocando problemas entre os membros da Irmandade Sha’ir, ou qualquer tipo de incidente mais grave,

Em um contexto de declínio do sistema escravista, principalmente com a vigência da Lei de 1850 e mais tarde a lei de 1871, os traficantes de escravos em sua maioria, conforme atestam

Janeiro para o Espírito Santo e depois para Santa Catarina, buscando novos negócios, foi outro fator de diferenciação entre Victorino e muitos dos outros

quantificar os benefícios para efeito de remunerar o seu gerador. A aprovação da idéia e a autorização para sua implementação dependem da alta administração,

A tabela a seguir resume as frequências em que os pacientes apresentaram pelo menos uma reação adversa não solicitada, foi registrada dentro de 28 dias após a vacinação de

Nº Horário Título do Trabalho Apresentador Co-Autores 1 16h15 - 16h30 Sensibilizarte e a humanização na formação e no cuidado em saúde Fabiola da Silva Miranda; Rebeca

Avaliando a evolução que vem ocorrendo na área da Ciência de Solos, percebe-se o crescente interesse da comunidade científica para o desenvolvimento e aplicação de técnicas