Buscar

Introdução à Programação e Pensamento Computacional

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 455 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 455 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 455 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

Juliana Mascarenhas
Tech Education Specialist / Sócia (Content Creator) @SimplificandoRedes
Me Modelagem Computacional / Cientista de dados
@in/juliana-mascarenhas-ds/
Primeiros passos para 
começar a programar
Curso base para iniciante
[1]
[2]
Juliana Mascarenhas
Tech Education Specialist
Sócia no @SimplificandoRedes
Cientista de dados
Desenvolvedora Java/Python
Me Modelagem Computacional - LNCChttps://github.com
/julianazanelatto
Sobre Mim
[3]
2009 – 2011
Técnica de Telecomunicações -
CEFET/RJ
2011 - 2015
Engenharia da computação - UCP
2017 - 2019
Mestre em modelagem 
computacional – LNCC
2023
Ingressar no Doutorado LNCC 
(objetivo)
Sobre Mim
Sobre Mim
[5]
2009
Redes de computadores
2012
Programação
2014
Gerenciamento de 
Projetos
2017
Ciencia de dados
Cursos
[6]
Você será capaz de entender o
que significa pensar computacionalmente.
Pensamento aplicável à qualquer área do conhecimento.
Dessa forma, será capaz
de resolver qualquer problema de uma maneria
mais objetiva e eficiente.
Objetivo Geral
[7]
Percurso
Aula 1 Pensamento Computacional
Aula 2 Introdução à lógica da programação
[8]
Aula 3 Fundamentos de Algoritmos
Percurso
Aula 4
Aula 5
Linguagens de programação
Primeiro contato com a programação
[9]
// Primeiros passos para começar a programar
[10]
Aula 1: Pensamento
Computacional
Apresentar os conceitos que caracterizam o pensamento com
putacional, permitindo que o Dev entenda o
que significa pensar computacionalmente.
Objetivo Geral
[11]
Percurso
Etapa 1 Introdução ao pensamento computacional
Etapa 2 Habilidade complementares
Etapa 3 Pilares: Decomposição
[12]
Percurso
Etapa 4 Pilares: Padrões
Etapa 5 Pilares: Abstração
Etapa 6 Pilares: Algoritmos
[13]
Percurso
Etapa 7 Estudo de caso conceitual: perdido
Etapa 8 Estudo de caso aplicado: Soma de um intervalo
Etapa 9 Estudo de caso aplicado: Adivinhe um número
[14]
// Primeiros passos para programar/Pensamento
Computacional
Etapa 1
Introdução ao pensamento
computacional
[15]
Pensamento computacional?
Processo de pensamento envolvido na expressão de soluções
em passos computacionais ou algoritmos que podem ser
implementados no computador.
(Aho, 2011; Lee, 2016)
Overview
[16]
Pensamento computacional?
Overview
[17]
Formulação e resolução de problemas
Sistemático e eficiente
Pensamento computacional?
Overview
[18]
Formulação e resolução de problemas
Sistemático e eficiente
Humanos & máquinas
Sejam capazes de resolver
Pensamento computacional?
Overview
[19]
Disciplina 
acadêmica
Habilidade 
generalista
Pensamento computacional?
Overview
[20]
Disciplina 
acadêmica
Habilidade 
generalista
Matemática
Leitura
Escrita
Baseado em 4 pilares
Overview
[21]
Decomposição
Reconhecimento 
de padrões
Abstração
Design de 
algoritmos
Dividir um problema 
complexo em subproblemas
Baseado em 4 pilares
Overview
[22]
Decomposição
Reconhecimento 
de padrões
Abstração
Design de 
algoritmos
Dividir um problema 
complexo em subproblemas
Baseado em 4 pilares
Overview
[23]
Decomposição
Reconhecimento 
de padrões
Abstração
Design de 
algoritmos
Identificar padrões ou 
tendências
Baseado em 4 pilares
Overview
[24]
Decomposição
Reconhecimento 
de padrões
Abstração
Design de 
algoritmos
Identificar padrões ou 
tendências
PADRÃO 
COMPORTAMENTAL
Similaridades e 
diferenças entre os 
problemas
Baseado em 4 pilares
Overview
[25]
Decomposição
Reconhecimento 
de padrões
Abstração
Design de 
algoritmos
Extrapolar o conceito do 
problema para um forma 
generalista
Baseado em 4 pilares
Overview
[26]
Decomposição
Reconhecimento 
de padrões
Abstração
Design de 
algoritmos
Extrapolar o conceito do 
problema para um forma 
generalista
C = 2.π.r
Design
POO
Classes Métodos
Herança Polimorfismo
Baseado em 4 pilares
Overview
[27]
Decomposição
Reconhecimento 
de padrões
Abstração
Design de 
algoritmos
Automatizar
Definir passo a passo a 
solução do problema.
Baseado em 4 pilares
Overview
[28]
Decomposição
Reconhecimento 
de padrões
Abstração
Design de 
algoritmos
Automatizar
Definir passo a passo a 
solução do problema.
Input OutputOperator
Processo Contínuo
• Definir uma solução
• Testar a solução
• Aperfeiçoamento da
solução encontrada
Overview
[29]
Teste
Análise
Refinamento
Overview
[30]
Execução da solução e 
avaliação (refinamento)
Expressão de solução
Resolução de problemas
Abstração
Automatização
Análise
Overview
[31]
Raciocínio 
Lógico
Decomposição
Padrões
Abstração
Algoritmos
Refinamento
Overview
[32]
CS
Math Sci/Eng
1 2
3
4
Desenvolvimento e 
abstração; 
Reconhecimento de 
padrões ...
1.CS + Math
Análise de dados e design 
de soluções; Definição e 
uso de abstrações; Teste 
e refinamento de 
algoritmos ...
2.CS + Sci/Eng
Modelagem; Definição de 
problemas; Definição e 
uso de abstrações; 
Reconhecimento de 
padrões ...
3.CS + Sci/Eng + Math
Desenvolvimento e 
abstração; 
Reconhecimento de 
padrões ...
4.Math +Sci/Eng
Exemplos
Química
• Aperfeiçoamento de reações químicas pela utilização de al
goritmos, através da identificação de quimícos
Engenharia
• Simulações de aeronavas executadas via 
software em detrimento do tunel de vento
Overview
[33]
Exemplos
Biologia
• Modelagem e mapeamento do genoma
humano
Computação
• Simulação de problemas de alta ordem
em supercomputadores
Overview
[34]
Competências
• Pensamento sistemático
• Colaboração dentro da equipe
• Criatividade e design
• Facilitador
Overview
[35]
// Primeiros passos para começar a 
programar/Pensamento Computacional
Etapa 2
Habilidades
complementares
[36]
Percurso
Etapa 1 Introdução ao pensamento computacional
Etapa 2 Habilidade complementares
Etapa 3 Pilares: Decomposição
[37]
Percurso
Etapa 4 Pilares: Padrões
Etapa 5 Pilares: Abstração
Etapa 6 Pilares: Algoritmos
[38]
Percurso
Etapa 7 Estudo de caso conceitual: perdido
Etapa 8 Estudo de caso aplicado: Soma de um intervalo
Etapa 9 Estudo de caso aplicado: Adivinhe um número
[39]
Habilidades
[40]
Raciocínio Lógico
Aperfeiçoamento
Raciocínio lógico é uma forma 
de pensamento estruturado, ou raciocínio, 
que permite encontrar a conclusão ou determinar a resolução
de um problema.
Raciocínio Lógico
[41]
Raciocínio lógico é uma forma 
de pensamento estruturado, ou raciocínio, 
que permite encontrar a conclusão ou determinar a resolução
de um problema.
Raciocínio Lógico
[42]
Habilidade de treinamento
Classificação
Raciocínio Lógico
[43]
Indução
Dedução
Abdução
Classificação
Raciocínio Lógico
[44]
Indução
Dedução
Abdução
Leis e teorias
Fenômeno observado
Classificação
Raciocínio Lógico
[45]
Indução
Dedução
Abdução
Leis e teorias
Fenômeno observado
Ciências 
experimentais
Classificação
Raciocínio Lógico
[46]
Indução
Dedução
Abdução
Leis e teorias
Previsões e explicações
Classificação
Raciocínio Lógico
[47]
Indução
Dedução
Abdução
Leis e teorias
Previsões e explicações
Ciências exatas
Classificação
Raciocínio Lógico
[48]
Indução
Dedução
Abdução
Conclusão Premissa
Ex: A grama está molhada, logo 
deve ter chovido
Classificação
Raciocínio Lógico
[49]
Indução
Dedução
Abdução
Conclusão Premissa
Ex: A grama está molhada, logo 
deve ter chovido
Diagnósticos
Processo 
investigativo
Raciocínio Lógico
[50]
Inferência
Sintética
Abdução Indução Dedução
Analítica
Raciocínio Lógico
[51]
Um pai, mãe e seu casal de filhos estão sentados em uma mesa. Os homens
se chamam Roberto e Sérgio, as mulheres Teresa e Fernanda. Sabe-se que
o pai está à frente de Fernanda e o filho e esquerda; e que
a mãe está do lado direito de Sérgio.
Mesa
Raciocínio Lógico
[52]
Um pai, mãe e seu casal de filhos estão sentados em uma mesa. Os homens
se chamam Roberto e Sérgio, as mulheres Teresa e Fernanda. Sabe-se que
o pai está à frente de Fernanda e o filho e esquerda;e que
a mãe está do lado direito de Sérgio.
Mesa
Pai
Fernanda
Filho
Raciocínio Lógico
[53]
Um pai, mãe e seu casal de filhos estão sentados em uma mesa. Os homens
se chamam Roberto e Sérgio, as mulheres Teresa e Fernanda. Sabe-se que
o pai está à frente de Fernanda e o filho e esquerda; e que
a mãe está do lado direito de Sérgio.
Mesa
Pai
Fernanda
Filho Mãe
Sérgio
Raciocínio Lógico
[54]
Um pai, mãe e seu casal de filhos estão sentados em uma mesa. Os homens
se chamam Roberto e Sérgio, as mulheres Teresa e Fernanda. Sabe-se que
o pai está à frente de Fernanda e o filho e esquerda; e que
a mãe está do lado direito de Sérgio.
R: Sérgio é o pai
Teresa é a mãe
Fernanda a filha e Roberto é o filho.
Mesa
Aperfeiçoamento
[55]
Melhoramento
Aprimoramento
Ato de aperfeiçoar
Refinamento
Aperfeiçoamento
[56]
Melhoramento
Aprimoramento
Ato de aperfeiçoar
Refinamento
A partir de uma solução, 
determinar pontos de melhora e 
refinamento
Aperfeiçoamento
[57]
• Encontrar solução eficiente
• Otimizar processos
• Simplificar linhas de códigos
• Funções bem definidas
Ato de aperfeiçoar
Melhorar códigos e 
algoritmos
Melhor uso de recursos
// Primeiros passos para começar a 
programar/ Pensamento Computacional/
[58]
Pilares: Decomposição
Etapa 3
Percurso
Etapa 1 Introdução ao pensamento computacional
Etapa 2 Habilidade complementares
Etapa 3 Pilares: Decomposição
[59]
Percurso
Etapa 4 Pilares: Padrões
Etapa 5 Pilares: Abstração
Etapa 6 Pilares: Algoritmos
[60]
Percurso
Etapa 7 Estudo de caso conceitual: perdido
Etapa 8 Estudo de caso aplicado: Soma de um intervalo
Etapa 9 Estudo de caso aplicado: Adivinhe um número
[61]
É preciso coompreender como executar cada etapa de 
um pensamento computacional.
Dessa forma, as aulas subsequêntes são dedicadas
à compreensão individual de cada pilar desse
processo de pensamento.
Objetivo Geral
[62]
"If you can't solve a problem,
then there is an easier
problem that you can solve: find it"
George Polya – professor e matemático
Decomposição
[63]
Primeiro passo da resolução de problemas dentro do conceito
de pensamento computacional
"Dado um problema complexo, devemos quebra-lo
em problemas menores. Portanto, problemas
mais fáceis e gerenciáveis."
Decomposição
[64]
Estratégia
Processo de quebrar e determinar
partes menores e gerenciáveis
Decomposição
[65]
Análise
Estratégia
Processo de quebrar e determinar
partes menores e gerenciáveis
Decomposição
[66]
Análise
"realizar exame 
detalhado"
Estudar, explorar
Decompor em elementos 
constituíntes
Estratégia
Combinar os elementos
recompondo o problema original
Decomposição
[67]
Síntese
Estratégia
Combinar os elementos
recompondo o problema original
Decomposição
[68]
Síntese
Fundir os 
elementos de 
maneira coerente
Processo de 
reconstrução
Consiste em reunir 
elementos distintos 
em um único 
elemento
Estratégia
Ordem de execução de tarefas
menores
Decomposição
[69]
Sequêncial
Paralelo
Estratégia
Ordem de execução de tarefas
menores
Decomposição
[70]
Sequêncial
Dependência entre tarefas. 
Executadas em "fila"
Estratégia
Ordem de execução de tarefas
menores
Decomposição
[71]
Paralelo
Tarefas podem ser executadas 
concomitantemente.
Eficiência
Tempo
Decomposição
[72]
Variáveis
Pequenos 
problemas
Segmentação
Decomposição
[73]
Variáveis
Pequenos 
problemas
Segmentação• Não basta aplicar
• Desenvolver a decomposição "by yourself"
Maneiras distintas de 
decompor o mesmo 
problema
Decomposição
[74]
Como decompor?
Identificar ou 
coletar dados
Agregar os 
dados
Funcionalidade Decomposição
Decomposição
[75]
Exemplos
Decomposição
[76]
Ex do cotidiano: cozinhar
• Identificar os ingredientes
• Determinar as etapas (sequêncial ou paralelo)
• Executar cada etapa
• Agregar os ingredientes para finalizar (Recompor com 
coerência)
Decomposição
[77]
Ex do cotidiano: funcionamento de uma bike
• Identificar os componentes
• Papel de cada componente
• Interdependência das peças
Funcionamento 
do sistema
Decomposição
[78]
Exemplo: criar um app
• Finalidade
• Interface
• Funcinalidades
• Pré-requisitos
Definição de 
componentes e etapas
Desenvolvimento mais 
eficiente
Decomposição
[79]
Exemplo: criar um app
• Finalidade
• Interface
• Funcinalidades
• Pré-requisitos
Definição de 
componentes e etapas
Desenvolvimento mais 
eficiente
Decomposição
[80]
Exemplo: Artigo
• O que será abordado?
• Estrutura
• Conteúdo de cada tópico
• Textos de conexão
Definição de 
componentes e etapas
Sequêncial ou paralelo
Em ordem ou não
Decomposição
[81]
Ações
Padrão
Virar
Direita Esquerda
Mover
Cima Baixo
Movimento
Andar Correr
Mover perna Impulsionar
Sentar Levantar
Exemplo: movimentos
de um avatar
// Primeiros passos para começar a 
programar/ Pensamento Computacional/
[82]
Pilares: Padrões
Etapa 4
Padrões
[83]
Reconhecimento de Padrões
• Modelo base
• Estrutura invariante
• Repetição
Padrões
[84]
Reconhecimento de Padrões
• Modelo base
• Estrutura invariante
• Repetição Similaridades e 
diferença
Padrões
[85]
Ex: fotos de redes sociais Compressão
Salvar no servidor
de dados
...
Padrões
[86]
Ex: fotos de redes sociais Compressão
Salvar no servidor
de dados
...
Padrões
[87]
Ex: Compressão de dados
Compressão por reconhecimento de padrões
3 2 1 2 1
Padrões
[88]
Seres vivos x padrões
Padrões
[89]
Seres vivos x padrões
Padrões
[90]
Reconhecimento de Padrões
• Por que determinar padrões?
Padrões
[91]
Reconhecimento de Padrões
• Por que determinar padrões?
Generelizar, com objetivo de obter
resolução para problemas diferentes
Padrões
[92]
Reconhecimento de Padrões
• Por que determinar padrões?
Categorias
Classes
Padrões
[93]
Reconhecimento de Padrões
• Por que determinar padrões?
Categorias
Classes
Dependem do 
domínio
Tipo de media
Padrões
[94]
Como o computador 
reconhece padrões?
• Grau de similaridade
• Grupos conhecidos x objeto 
desconhecido
Pelo ser humano
Padrões
[95]
Como o computador 
reconhece padrões?
• Grau de similaridade
• Grupos conhecidos x objeto
desconhecido
Pelo ser humano
COMPARAÇÃO
Padrões
[96]
Como simular esse 
comportamento?
Representação de atributos
Aprendizado – conceito
associado ao objeto
Padrões
[97]
Como simular esse 
comportamento?
Representação de atributos
Aprendizado – conceito
associado ao objeto
Armazenar dados
Padrões
[98]
Como simular esse 
comportamento?
Representação de atributos
Aprendizado – conceito
associado ao objeto
Armazenar dados
Regras de decisão
Padrões
[99]
Em resumo ...
Padrões
[100]
Abordagem
Extração de características
Classificação de dados
Métodos Aplicações
DIFERENTES
Padrões
[101]
Aplicações
• Classificação de dados
• Reconhecimento de imagem
• Reconhecimento de fala
• Análise de cenas
• Classificação de documentos
Padrões
[102]
Aplicações
• Classificação de dados
• Reconhecimento de imagem
• Reconhecimento de fala
• Análise de cenas
• Classificação de documentos
Machine Learning
Redes Neurais
Inteligência Artificial
Ciência de dados
// Primeiros passos para começar a 
programar/ Pensamento Computacional/
[103]
Pilares: Abstração
Etapa 5
Abstração
[104]
Generalização /
Abstração
ABSTRAIR
Observar, um ou mais elementos, 
avaliando características e 
propriedades em separado
Abstração
[105]
Generalização /
Abstração
ABSTRAIR
Observar, um ou mais elementos, 
avaliando características e 
propriedades em separado
ABSTRAÇÃO
Processo intelectual de 
isolamento de um objeto da 
realidade
Abstração
[106]
Generalização /
Abstração
ABSTRAIR
Observar, um ou mais elementos, 
avaliando características e 
propriedades em separado
ABSTRAÇÃO
Processo intelectual de 
isolamento de um objeto da 
realidade
Generalizar
Tornar-se geral, mais amplo, 
extensão
Abstração
[107]
Generalização, na lógica, éa operação intelectual que
consiste em reunir numa cl
asse geral, um conjunto de
seres ou fenômenos
similares.
Generalização / Abstração
https://pt.wikipedia.org/wiki/L%C3%B3gica
Abstração
[108]
Como classificar 
os dados?
• Características
• Pontos essenciais
• Generalizar x detalhar
Abstração
[109]
REPRESENTAÇÃO
Abstração
[110]
Estudantes
Representação de dados
Abstração
[111]
Estudantes
Representação de dados
CARACTERÍSTICAS
Abstração
[112]
Estudantes
Representação de dados
CARACTERÍSTICAS
• Nome completo
• Matrícula
• Endereço
• Campus
• Curso
• Telefone
• Email
• ...
• Trabalho
• Tem filhos
• Programa preferido
• Livro preferido
• Tamanho do calçado
• ...
Abstração
[113]
Estudantes
Representação de dados
CARACTERÍSTICAS
• Nome completo
• Matrícula
• Endereço
• Campus
• Curso
• Telefone
• Email
• ...
• Trabalho
• Tem filhos
• Programa preferido
• Livro preferido
• Tamanho do calçado
• ...
Pontos 
essenciais
Abstração
[114]
Conceitos baseados
em abstrações
Input OutputOperator
Abstração
[115]
Conceitos baseados
em abstrações
Input OutputOperator
Abstração
[116]
Conceitos baseados
em abstrações
Input OutputOperator
Abstração
[117]
Conceitos baseados
em abstrações
Input OutputOperator
Abstração
[118]
Conceitos baseados
em abstrações
Input OutputOperator
Abstração
[120]
Conceitos baseados
em abstrações
Conceitos baseados
em abstrações
a b c
a
b c
D
A
D
O
S
P
R
O
C
E
S
S
A
D
O
Abstração
[121]
Conceitos baseados
em abstrações
Conceitos baseados
em abstrações Cliente Servidor
Layer 3
Layer 2
Layer 1
Abstração
[122]
Conceitos baseados
em abstrações
Conceitos baseados
em abstrações Cliente Servidor
Layer 3
Layer 2
Layer 1
a b c
a
b c
D
A
D
O
S
P
R
O
C
E
S
S
A
D
O
Abstração
[123]
Conceitos baseados
em abstrações
Conceitos baseados
em abstrações
Exemplos
Abstração
[124]
Por onde começar a limpar o terreno?
Abstração
[125]
Por onde começar a limpar o terreno?
Classificar?
Abstração
[126]
Por onde começar a limpar o terreno?
Classificar?
Abstração
[127]
Por onde começar a limpar o terreno?
Distâncias
Abstração
[128]
Por onde começar a limpar o terreno?
Distâncias
Abstração
[129]
Por onde começar a limpar o terreno?
// Primeiros passos para começar a 
programar/ Pensamento Computacional/
[130]
Pilares: Algortimos
Etapa 6
Algoritmos
[131]
• Energia
• Trabalhador
• Eficiência
• Rapidez
Algoritmos
[132]
• Energia
• Trabalhador
• Eficiência
• Rapidez
Algoritmos
[133]
• Energia
• Trabalhador
• Eficiência
• Rapidez
Algoritmos
[134]
PROCESSAMENTO DE DADOS
O computador recebe, manipula e 
armazena dados.
Algoritmos
[135]
PROCESSAMENTO DE DADOS
O computador recebe, manipula e 
armazena dados.
Algoritmos
[136]
Processo de resolução de problemas "step by setp" utilizando
instruções
Instruções
O que precisa ser 
feito?
Qual a ordem de 
execução?
Algoritmos
[137]
Processo de resolução de problemas "step by setp" utilizando 
instruções
Instruções
O que precisa ser 
feito?
Qual a ordem de 
execução?
Algoritmos
[138]
Desenvolvimento do Programa
• Análise
Estudo e definição dos dados
de entrada e saída
• Algoritmo
• Codificação
Algoritmos
[139]
Desenvolvimento do Programa
• Análise
• Algoritmo
• Descreve o problema por meio de
• ferramentas narrativas, fluxograma,
• ou pseudocódigo
• Codificação
Algoritmos
[140]
Desenvolvimento do Programa
• Análise
• Algoritmo
• Codificação
O algoritmo é codificado de acordo
com a linguagem de programação
escolhida
Algoritmos
[141]
Sequência de passos com objetivo definido
Execução de tarefas específicas
Conjunto de operações que resultam
em uma sucessão finita de ações
Algoritmos
[142]
Algoritmos
[143]
Instruções executadas passo a passo 
para concluir a tarefa
Algoritmos
[144]
Como construir um algoritmo?
• Compreenção do problema
• Definição dados de entrada
• Definir processamento
• Definir dados de saída
• Utilizar um método de construção
• Teste e diagnóstico
Pontos mais importantes
Algoritmos
[145]
Como construir um algoritmo?
• Compreenção do problema
• Definição dados de entrada
• Definir processamento
• Definir dados de saída
• Utilizar um método de construção
• Teste e diagnóstico
Dados fornecidos e 
Cenário
Algoritmos
[146]
Como construir um algoritmo?
• Compreenção do problema
• Definição dados de entrada
• Definir processamento
• Definir dados de saída
• Utilizar um método de construção
• Teste e diagnóstico
Cálculos e Restrições
Algoritmos
[147]
Como construir um algoritmo?
• Compreenção do problema
• Definição dados de entrada
• Definir processamento
• Definir dados de saída
• Utilizar um método de construção
• Teste e diagnóstico
Após processamento
Algoritmos
[148]
Como construir um algoritmo?
• Compreenção do problema
• Definição dados de entrada
• Definir processamento
• Definir dados de saída
• Utilizar um método de construção
• Teste e diagnóstico
Construção e refinamento do 
algoritmo
Algoritmos
[149]
Construção de algoritmos
Narrativa
Fluxograma
Pseudocódigo
Algoritmos
[150]
Construção de algoritmos
Narrativa
Fluxograma
Pseudocódigo
Utilização da 
linguagem natural
Sem conceitos 
novos
Diversas interpretações 
possíveis
Algoritmos
[151]
Construção de algoritmos
Narrativa
Fluxograma
Pseudocódigo
Utilização de símbolos 
pré-definidos
Simples 
entendimento
Conhecimento prévio da 
estrutura e símbolos
Algoritmos
[152]
Construção de algoritmos
Narrativa
Fluxograma
Pseudocódigo
Portugol
Regras definidas
Passos a serem 
seguidos
Algoritmos
[153]
Multiplicação de dois 
números:
Passo 1 – recebe os valores
Passo 2 – Multiplica
Passo 3 – Imprime resultado
Algoritmos
[154]
Média de alunos:
Passo 1 – recebe os valores
Passo 3 – Imprime resultado
Passo 4 – Regra de aprovação
Passo 5 – Imprima o resultado
// Primeiros passos para começar a 
programar/ Pensamento Computacional/
[155]
Estudo de caso conceitual: 
perdido
Etapa 7
Perdido
[156]
Perdido
[157]
Como resolver o problema utilizando o pensamento 
computacional?
Perdido
[158]
Como resolver o problema utilizando o pensamento
computacional?
• Identificar mecanismos
• Recursos comuns
• Detalhes mais importantes
Perdido
[159]
Sobrevivência
Água
Comida
Abrigo
Perdido
[160]
Sobrevivência
Água
Comida
Abrigo
Perdido
[161]
Sobrevivência
Água
Chuva
Nascente
Comida
Coletar
Caçar
Abrigo
Loclização
Proteção
Quente e seco
Perdido
[162]
Sobrevivência
Água
Chuva
Nascente Fogo
Comida
Coletar
Caçar Fogo
Abrigo
Localização Mapa
Proteção
Fogo
Lança
Quente e seco Fogo
Perdido
[163]
Sobrevivência
Água
Chuva
Nascente Fogo
Comida
Coletar
Caçar Fogo
Abrigo
Localização Mapa
Proteção
Fogo
Lança
Quente e seco Fogo
REPETIÇÃO
Perdido
[164]
Sobrevivência
Água
Chuva
Nascente Fogo
Comida
Coletar
Caçar Fogo
Abrigo
Localização Mapa
Proteção
Fogo
Lança
Quente e seco Fogo
Procurar água
Procurar comida
Onde construir o 
abrigo?
Danger zones
Perdido
[165]
Sobrevivência
Água
Chuva
Nascente Fogo
Comida
Coletar
Caçar Fogo
Abrigo
Localização Mapa
Proteção
Fogo
Lança
Quente e seco Fogo
Perdido
[166]
Sobrevivência
Água
Chuva
Nascente Fogo
Comida
Coletar
Caçar Fogo
Abrigo
Localização Mapa
Proteção
Fogo
Lança
Quente e seco Fogo
FOCO:
Nos aspectos principais, não 
precisa de detalhamento.
Perdido
[167]
So far so good …
• Decomposição
• Reconhecimento de padrões
• Abstração
Próximo passo ...
Perdido
[168]
So far so good …
• Decomposição
• Reconhecimento de padrões
• Abstração
Próximo passo ...
Determinar instruções passo a 
passo para cozinhar
Perdido
[169]
Preparando a comida
• Pegar o peixe
• Colocar água na panela
• Fever a água
• Limpar o peixe
• Fazer o cozido
• Assar o filé
Perdido
[170]
Preparando a comida
• Pegar o peixe
• Colocar água na panela
• Fevera água
• Limpar o peixe
• Fazer o cozido
• Assar o filé
Limpar o peixe
Colocar água na 
panela
Ferver a água
Fazer o cozido
Comer
Pescar
Assar o filé
Perdido
[171]
Mesmo processo para
• Encontrar água
• Construir abrigo
• Máximizar chances de resgate
• ...
// Primeiros passos para começar a 
programar/ Pensamento Computacional/
[172]
Estudo de caso aplicado: 
soma de um intervalo
Etapa 8
Soma de intervalo
[173]
Ex: soma de n° entre 1 e 200
1+2
1+3
1+4
1+5 ...
Soma de intervalo
[174]
Ex: soma de n° entre 1 e 200
1+2
1+3
1+4
1+5 ...
Solução ineficiente!
Soma de intervalo
[175]
Ex: soma de n° entre 1 e 200
200 + 1
199 + 2
198 + 3
197 + 4 ...
Outra forma de 
expressar a solução
Soma de intervalo
[176]
Ex: soma de n° entre 1 e 200
200 + 1
199 + 2
198 + 3
197 + 4 ...
Decomposição
Padrão
200 + 1​ = 201
199 + 2​ = 201
198 + 3​ = 201
197 + 4 = 201 ...
Soma de intervalo
[177]
Ex: soma de n° entre 1 e 200
200 + 1
199 + 2
198 + 3
197 + 4 ...
Decomposição
Padrão
200 + 1​ = 201
199 + 2​ = 201
198 + 3​ = 201
197 + 4 = 201 ...
Soma de intervalo
[178]
Ex: soma de n° entre 1 e 200
200 + 1 = 201
199 + 2 = 201
198 + 3 = 201
197 + 4 = 201
...
Valor se repete
Quantas vezes? 200/2 = 100
201 x 100 = 20.100
Resultado
Soma de intervalo
[179]
Ex: soma de n° entre 1 e 200
200 + 1 = 201
199 + 2 = 201
198 + 3 = 201
197 + 4 = 201
...
Valor se repete
Quantas vezes? 200/2 = 100
201 x 100 = 20.100
Resultado
Expressar em variáveis
Soma de intervalo
[180]
Expressar em variáveis
Ex: soma de n° entre x e y
[x, y] -> intervalo 1 e 200
Soma de intervalo
[181]
Expressar em variáveis
Ex: soma de n° entre x e y
[x, y] -> intervalo
y+x = resultado parcial
(y-1) + (x+1) = resultado_parcial
…
1 e 200
200 + 1 = 201
199 + 2 = 201
Soma de intervalo
[182]
Expressar em variáveis
Ex: soma de n° entre x e y
[x, y] -> intervalo
y+x = resultado parcial
(y-1) + (x+1) = resultado_parcial
…
y/2 = total
total x resultado parcial = resultado
200/2 = 100
100 x 201 = 20.100
Soma de intervalo
[183]
Passo 1 – Recebe os valores (x e y)
Passo 2 – Resolva:
y/2 = total
Passo 3 – Resolva: 
y+x = resultado_parcial
Passo 4 – Ache o total
Final = total x resultado_parcial
Passo 5 – Imprima o resultado
Algoritmo
// Primeiros passos para começar a 
programar/ Pensamento Computacional/
[184]
Estudo de caso aplicado: 
adivinhe o número
Etapa 9
Adivinhe o número
[185]
Ex: adivinhe o número
O problema consiste em determinar o número escolhido por uma
pessoa dentro de um intervalo.
Perguntas com respostas de sim e não.
Adivinhe o número
[186]
Ex: adivinhe o número
O número é 1?
O número é 2?
O número é 3?
...
Possível solução
Adivinhe o número
[187]
Ex: adivinhe o número
O número é 1?
O número é 2?
O número é 3?
...
Possível solução
Ineficiente
Desperdício de tempo
Adivinhe o número
[188]
Ex: adivinhe o número
P: O número é maior que 50?
R: Não.
P: O número é menor que 20?
R: Sim.
…
até encontrar o número
Possível solução
Adivinhe o número
[189]
Método de 
busca
Ex: Busca binária Mais eficiente que busca 
por varredura
Adivinhe o número
[190]
Método de 
busca
Ex: Busca binária
Passo 1 – Ordenar o vetor
Passo 2 – Módulo de L/2
Passo 3 – Acessar estrutura
Passo 4 – Comparar valores
Passo 5 – Repita até encontrar o número
Passo 6 – Imprima "Busca bem sucedida"
Mais eficiente que busca 
por varredura
Habilidade
[191]
Como aprimorar essa habilidade?
Permitindo que seus alunos expliquem suas decisões e seu
processo de desenvolvimento ...
(Brennan & Renesck)
Para um problema proposto
// Primeiros passos para começar a programar
[192]
Aula 2: Introdução à Lógica
de programação
Objetivo Geral
[193]
Esta aula foca em apresentar o conceito de lógica
aplicada à programação, como um processo de pensamento
atrelado ao conceito de algoritmos e resolução de 
problemas.
Percurso
Etapa 1 O que é Lógica?
Etapa 2 Técnicas de lógica da programação
Etapa 3 Breve história da computação
[194]
// Primeiros passos para começar a programar/ 
Introdução à Lógica de Programação
[195]
O que é Lógica?
Etapa 1
Lógica
[196]
Problema
Proposta duvidosa
Numerosas soluções
Questão
Objeto de discussão
Lógica
[197]
Definição formal
"Problema é uma questão que foge a uma determinada regra, 
ou melhor é um desvio de percurso, o qual impede de atingir 
um objetivo com eficiencia e eficácia."
Lógica
[198]
Lógica
Lógica
[199]
Definição formal de lógica
"Parte da filosofia que trata das formas do pensamento
em geral (dedução, indução, hipótese, inferência etc.) e 
das operações intelectuais que visam à determinação do 
que é verdadeiro ou não."
Lógica
[200]
Lógica
Organização coesa
Forma de raciocínio
Forma como desencadeiam 
acontecimentos
Ordenação que segue convenções
Lógica
[201]
Lógica
"Organização e planejamento das instruções, assertivas em
um algoritmo, a fim de viabilizar a implantação de 
um programa."
Lógica
[202]
Percebe que essa 
definição se aplica no 
seu cotidiano?
Lógica
[203]
Percebe que essa 
definição se aplica no 
seu cotidiano? Sequência de instruções
Lógica
[204]
Percebe que essa 
definição se aplica no 
seu cotidiano? Sequência de instruções
Ações
Ações
Ações
Lógica
[205]
Percebe que essa 
definição se aplica no 
seu cotidiano? Sequência de instruções
Ação
Ações
Ações
Ações
Lógica
[206]
Percebe que essa 
definição se aplica no 
seu cotidiano? Sequência de instruções
Ação
Ações
Ações
Ações
Lógica
[207]
Seres humanos podem prever
comportamentos, computadores não.
Falta de costume
Lógica
[208]
Seres humanos podem prever
comportamentos, computadores não.
Falta de costume
Instruções detalhadas
Lógica
[209]
"Everybody in this country should learn 
how to program a computer because it 
teaches you how to think."
Steve Jobs
Por que entender a lógica 
em programação?
// Primeiros passos para começar a programar/ 
Introdução à Lógica de Programação
[210]
Técnicas de Lógica de 
Programação
Etapa 2
Técnicas
[211]
Planta baixa
Técnicas
[212]
Planta baixa Projeto
Técnicas
[213]
Planta baixa Projeto Planejamento
Técnicas
[214]
Planta baixa Projeto Planejamento
Seguem a lógica e determinam as instruções
Técnica Linear
[215]
• Modelo tradicional
• Não tem vínculo
• Estrutura hierárquica
• Programação de computadores
Modelos de desenvolvimento e resolução
Técnica Linear
[216]
• Modelo tradicional
• Não tem vínculo
• Estrutura hierárquica
• Programação de computadores
Modelos de desenvolvimento e resolução
fonte: 
editoraconstruir.com.br
Técnica Linear
[217]
Modelos de desenvolvimento e resolução
fonte: 
editoraconstruir.com.br
Ordenação de elementos por uma única
propriedade.
Única dimensãoRecursos limitados
Execução sequenciada
Técnica Linear
[218]
Técnica Linear
[219]
Acordar
Técnica Linear
[220]
Acordar
Fazer o café
Técnica Linear
[221]
Acordar
Fazer o café
Tomar o café
Técnica Estruturada
[222]
Modelos de desenvolvimento e resolução
Organização, disposição e ordem dos elementos essenciais
que compõem um corpo (concreto ou abstrato)
Estrutura
Técnica Estruturada
[223]
Modelos de desenvolvimento e resolução
Objetivo
Processamento de dados
Entendimento
Validação
Escrita
Manutenção
Facilitar
Programas
Técnica Estruturada
[224]
Modelos de desenvolvimento e resolução
Acordar
Técnica Modular
[225]
Módulo 1
Módulo 3
Módulo 2
Módulo 4
Partes independentes
Controlada por um conjunto
de regras
Modelos de desenvolvimento e resolução
Técnica Modular
[226]
Modelo padrão
Técnica Modular
[227]
Módulo 1
Módulo 3
Módulo 2
Módulo 4 Modelos de desenvolvimento e resolução
• Simplicação
• Decompor o problema
• Verificação do módulo
M
et
as
Técnica Modular
[228]
Modelos de desenvolvimento e resolução
Módulo preparar 
acordar
Módulo preparar bebida
Módulo tomar 
café da manhã
Regras
// Primeirospassos para começar a programar
[229]
Aula 3: Fundamentos de 
algoritmos
Objetivo
[230]
Nesta aula serão apresentados os conceitos básicos para 
o correto entendimento de algoritmos. 
Esses conceitos como, variáveis, tipos de 
dados, instruções, condições, entre 
outros temas relacionados.
Percurso
Etapa 1 Tipologia e variáveis
Etapa 2 Instruções primitivas
[231]
Etapa 3 Estruturas condicionais e operadores
Percurso
Etapa 4 Estruturas de repetição
Etapa 5 Vetores e matrizes
[232]
Etapa 6 O que são funções?
Percurso
Etapa 7 Instruções de entrada/saída
[233]
// Primeiros passos para começar a programar/ 
Fundamentos de algoritmos
[234]
Tipologias e
variáveis
Etapa 1
Variáveis
[235]
Qual a função do computador?
Variáveis
[236]
Qual a função do computador?
Informação
Dados Instruções
Tipos de dados
[237]
Informação
Dados Instruções
Tratadas e processadas
Tipos de dados
[238]
Informação
Dados Instruções
Tratadas e processadas
Numéricos
Caractéres
Lógicos
Tipos - Numérico
[239]
0, 1, 5, 50, 60 , 800, …
-58, -50, -49, 32, -10, -5Numéricos
Inteiros
Reais
5.95, 9.54, -8.8, -0.555 ...
0, 1, 5, 50, 60 , 800, …
-58, -50, -49, 32, -10, -5
[240]
Tipo - Caracteres
"Programação"
"PROGRAMAÇÃO"
"KU*&NH53g"
"Fone:(25)99865-5741"
"Rua alameda, n°45"
Caractere
A
C
k
p e
[241]
Tipo - Lógico
Booleano
Lógico
Verdadeiro - 1
Falso - 0
[242]
Tipo - Lógico
Booleano
Lógico
Verdadeiro - 1
Falso - 0
.Verdadeiro .V ou .S
.Falso .F ou .N
Português estruturado
[243]
VariávelO que é uma 
variável? Mutável
Possui variações
Incerto
Instável
Inconstante
[244]
VariávelO que é uma 
variável?
Variável - pode assumir qualquer um dos valores 
de um determinado conjunto de valores
a + b = ca - b = d
[245]
VariávelO que é uma 
variável?
Variável - pode assumir qualquer um dos valores 
de um determinado conjunto de valores
a + b = ca - b = d
[246]
Variável
Variável
[247]
Variável
Variável
Identificar
[248]
Variável
Regras
• Atribuição de um ou mais caracteres
• Primeira letra - não número
• Sem espaços em branco
• Vedado
• Utilização de palavras reservadas
• Caracteres e números
Nome da variável
[249]
Variável
Regras
• Atribuição de um ou mais caracteres
• Primeira letra - não número
• Sem espaços em branco
• Vedado
• Utilização de palavras reservadas
• Caracteres e números
Nome da variável
Nome_usuario
telefone
user12
x2
Z4
[250]
Variável
Modificação
de estado
Papéis de uma
variável
Viagiada, controle
Ação
Controle
[251]
VariávelO que é uma 
variável?
Definição
Tudo aquilo que é fixo ou estável.
Inalterável
O que não muda
Invariável
[252]
VariávelO que é uma 
variável?
Definição
Tudo aquilo que é fixo ou estável.
Inalterável
O que não muda
Invariável
[253]
Variável
Constante?
Definição
Tudo aquilo que é fixo ou estável.
Inalterável
O que não muda
Invariável
phi = 1,618
pi = 3,14
resulta = recebido * 0.10
Objetivo
[254]
Tratadas e processadas
OperaçõesInformação
Dados Instruções
// Primeiros passos para começar a programar/ 
Fundamentos de algoritmos
[255]
Instruções primitivas
Etapa 2
Instruções Primitivas
[256]
Operadores
Cálculo matemáticos
Variáveis
Constantes
Instruções Primitivas
[257]
Operadores
Cálculo matemáticos
Variáveis
Constantes
Binário Unário
Instruções Primitivas
[258]
Operadores
fonte: livro de referência
Instruções Primitivas
[259]
Operadores
Area = pi*raio²
fonte: livro de referência
Instruções Primitivas
[260]
Definição formal
Instruções são linguagem de palavras-chave (vocabulário) de 
uma determinada de programação que tem por finalidade
comandar um computador que irá tratar os dados
O que são instruções?
Instruções Primitivas
[261]
Linguagens de programação
Janela
Window
Ventana
Notação
Operações
Outros conceitos
Entrada, processamento e saída
Dados
[262]
Outros conceitos
Entrada, processamento e saída
Dados
[263]
Exemplo
[264]
Média escolar
Início programa:
Nota1 = 5
Nota = 8
Resultado = 0
Resultado = (Nota1 + Nota2)/2
Escreva resultado
Fim programa
Saída:
6.5
Exemplo
[265]
Média escolar
Início programa:
Nota1 = 5
Nota = 8
Resultado = 0
Resultado = (Nota1 + Nota2)/2
Escreva resultado
Fim programa
Saída:
6.5
Variável
Constante
Exemplo
[266]
Média escolar
Início programa:
Nota1 = 5
Nota = 8
Resultado = 0
Resultado = (Nota1 + Nota2)/2
Escreva resultado
Fim programa
Saída:
6.5
Variável
Constante
Exemplo
[267]
Média escolar
Início programa:
Nota1 = 5
Nota = 8
Resultado = 0
Resultado = (Nota1 + Nota2)/2
Escreva resultado
Fim programa
Saída:
6.5
Variável
Constante
E se quisermos verificar se foi 
aprovado ou não?
// Primeiros passos para começar a programar/ 
Fundamentos de algoritmos
[268]
Estruturas condicionais e 
operadores
Etapa 3
Exemplo
[269]
Média escolar
Início programa:
Nota1 = 5
Nota = 8
Resultado = 0
Resultado = (Nota1 + Nota2)/2
Escreva resultado
Fim programa
Saída:
6.5
Variável
Constante
E se quisermos verificar se foi 
aprovado ou não?
Estrutura Condicional
[270]
Condicional
Estado de uma pessoa ou coisa Condição
Que expressão uma condição
ou suposição
Contem ou implica uma suposição 
ou hipótese
Estrutura Condicional
[271]
Qual a 
ideia?
Condição
Operação
Estrutura Condicional
[272]
Qual a 
ideia?
Condição
Operação
Satisfeita
Exceção
Inverdade
Estrutura Condicional
[273
Simples Composta
Condição
Operação
Condição
Operação
Exceção
Encadeada
Condição
Operação
Condição
Operação
Exceção
Estrutura Condicional
[274
Operadores Relacionais
Estrutura Condicional
[275
Condicional Simples
Fonte: livro de referência
Condição
Operação
Estrutura Condicional
[276
Condicional Simples
Fonte: livro de referência
Se (<codição>) então
<instruções para condição verdadeira>
fim_se
Estrutura Condicional
[277
Fonte: livro de referência
Início programa:
A = 0
B = 0
X = 0
leia A
leia B
X = A + B
se (X > 10)
escreva X
Fim se
Fim programa
Estrutura Condicional
[278
Condicional Composta
Fonte: livro de 
referência
Condição
Operação
Exceção
Estrutura Condicional
[279
Condicional Composta
Fonte: livro de 
referência
Se (<codição>) então
<instruções para condição verdadeira>
fim_se
Estrutura Condicional
[280
Fonte: livro de 
referência
Inicio programa:
A = 0
B = 0
X = 0
leia A
leia B
X = A + B
se (X > 10)
escreva X
Fim se
Fim programa
Estrutura Condicional
[281]
Condicional Composta
Condição
Operação
Exceção
Fonte: livro de 
referência
Estrutura Condicional
[282]
Condicional Composta
Fonte: livro de 
referência
Se (<codição>) então
<instruções para condição verdadeira>
Senão
<instruções para condição falsa>
fim_se
Estrutura Condicional
[283]
Fonte: livro de 
referência
Inicio programa:
A = 0
B = 0
X = 0
leia A
leia B
X = A + B
se (X >= 10)
X = X-7
Senão
X = X+5
Fim se
Fim programa
Exemplo
[284]
Média escolar
Início programa:
Nota1 = 5
Nota = 8
Resultado = 0
Resultado = (Nota1 + Nota2)/2
Escreva resultado
Fim programa
Saída:
6.5
Estrutura Condicional
[285]
Condicional Encadeado
Condições sucessivas
Condição
Operação
Condição
Operação
Exceção
Fonte: livro de 
referência
Estrutura Condicional
[286]
Fonte: livro de 
referência
Se (<codição 1>) então
<instruções para condição verdadeira>
Senão
Se (<condição 2>) então
<instruções para: condição 2 verdadeira e condição 1 falsa>
Senão
<instruções para condição 1 e 2 falsas>
fim_se
Condicional Encadeado
Estrutura Condicional
[287]
Fonte: livro de 
referência
Início programa:
A = 0
B = 0
X = 0
leia A
leia B
X = A + B
se (X >= 10)
X = X-7
Senão
X = X+5
Fim se
Fim programa
Estrutura Condicional
[288]
Operadores Lógicos
Fonte: biblioo.info
Estrutura Condicional
[289]
Quando utilizar?
• Verificação de V ou F
• Substituição
• encadeamento de condições
Operadores 
lógicos?
Estrutura Condicional[290]
Fonte: biblioo.info
Quando utilizar?
• Verificação de V ou F
• Substituição
• encadeamento de condições
Estrutura Condicional
[291]
AND – operador Lógico
Condição verdadeira
• Todas devem ser satisfeitas
Fonte: l ivro de referência
Fonte: dot.li.com
Estrutura Condicional
[292]
AND – operador Lógico
Ex: Curso de inglês
se (gramatica .e .conversacao) então
escreva "aprovado"
senão
escreva "Reprovado"
Fonte: livro de referência
Fonte: dot.li.com
Estrutura Condicional
[293]
OR – operador Lógico
Condição verdadeira
• Apenas uma das condições
Deve ser verdadeira
Fonte: livro de referência
Fonte: dot.li.com
Estrutura Condicional
[294]
AND – operador Lógico
Ex:
se (choveu .ou. grama_molhada) então
escreva "Plantas regadas"
senão
escreva "Regar plantas"
Fonte: livro de referência
Fonte: dot.li.com
Estrutura Condicional
[295]
NOT – operador Lógico
• Operador de negação
• Inversão do resultado lógico
Fonte: livro de referência
Estrutura Condicional
[296]
NOT – operador Lógico
• Operador de negação
• Inversão do resultado lógico
Ex:
• Not B - > tudo que não está em B
// Primeiros passos para começar a programar/ 
Fundamentos de algoritmos
[297]
Estruturas de 
repetição
Etapa 4
Estruturas de Repetição
[298]
Laços
Malhas de repetição
Repetição
Loop
Controle de fluxo
Trecho de um 
programa
Estruturas de Repetição
[299]
Trecho de um 
programa
Condições de parada
Estruturas de Repetição
[300]
Trecho de um 
programa
Condições de parada
• Número de repetições
pré-fixada
• Condição a ser satisfeita
Estruturas de Repetição
[301]
Trecho de um 
programa
Mas não é só 
repetir o código?
Estruturas de Repetição
[302]
Trecho de um 
programa
Mas não é só 
repetir o código?
Redução de linhas
Compreensão facilitada
Redução de erro
Qual a 
vantagem?
Estruturas de Repetição
[303]
Tem mais de tipo 
de estrutura de
repetição?
Enquanto ... faça
Repita ... até
Para ... de … até … faça
Estruturas de Repetição
[304]
Enquanto
Teste lógico
• Início
Número de repetições
• indefinidas
Fonte: pt.vecteezy.com
Grama alta
Estruturas de Repetição
[305]
Enquanto
Teste lógico
• Início
Número de repetições
• indefinidas
Fonte: pt.vecteezy.com
Grama alta
Aparar grama
Estruturas de Repetição
[306]
Enquanto
Teste lógico
• Início
Número de repetições
• indefinidas
Fonte: pt.vecteezy.com
Grama alta
Aparar grama
Analisar grama
Estruturas de Repetição
[307]
Enquanto
Teste lógico
• Início
Número de repetições
• indefinidas
grama = Falso
Enquanto (grama == falso) faça
<instrução de cortar grama>
<atualiza grama>
fim enquanto
[308]
Repita
Teste lógico
• final
Número de repetições
• indefinidas
Procurar artigo
Estruturas de Repetição
Virar página
Analisar conteúdo
Estruturas de Repetição
[309]
Para … de … até
Teste
• Início
Número de repetições
• Definidas
somatorio = 0
para inicio = 1 até 10
somatorio = somatorio + inicio
Escreva somatorio
fim para
Estruturas de Repetição
[310]
Trecho de um 
programa
Consigo mesclar 
as estruturas?
Uma dentro 
da outra?
Estruturas de Repetição
[311]
Trecho de um 
programa
Consigo mesclar 
as estruturas?
Uma dentro 
da outra?
Enquanto (<condição>)
Se (<condição2>)
<instruções>
fimse
...
fim enquanto
// Primeiros passos para começar a programar/ 
Fundamentos de algoritmos
[312]
Vetores e matrizes
Etapa 5
Vetores e Matrizes
[313]
0, 1, 5, 50, 60 , 800, …
-58, -50, -49, 32, -10, -5Numéricos
Inteiros
Reais
5.95, 9.54, -8.8, -0.555 ...
0, 1, 5, 50, 60 , 800, …
-58, -50, -49, 32, -10, -5
Vetores e Matrizes
[314]
Definição formal
"Um vetores é caracterizado por uma variavel dimensionada
com tamanho pré-fixado."
Container
Matriz unidimensional
Vetores e Matrizes
[315]
Definição formal
"Matriz é uma tabela organizada em linhas e colunas no form
ato m x n, onde m representa o número de linhas (horizontal) 
e n o número de colunas (vertical)"
Container
Vetores e Matrizes
[316]
Matrizes
Coleção de variáveis
Contiguas em memória
Índices
Vetores e Matrizes
[317]
nota11 = 10
nota21 = 5
nota12 = 7
nota22 = 8
------------------------------------------
notas_aluno1 = [10,5]
notas_aluno2 = [7,8]
Média escolar
Vetores e Matrizes
[318]
nota11 = 10
nota21 = 5
nota12 = 7
nota22 = 8
------------------------------------------
notas_aluno1 = [10,5]
notas_aluno2 = [7,8]
Média escolar
notas_alunos = [10,5,7,8]
------------------------------------------
A cada duas posições
um novo aluno
Vetores e Matrizes
[319]
vetor conjunto [1..8]<inteiro>
vetor[15]
Vetor = [] Operações
Definição
Atribuição
Leitura
Vetores e Matrizes
[320]
D
a
d
o
s 
d
e
 a
lu
n
o
s
Vetores e Matrizes
[321]
D
a
d
o
s 
d
e
 a
lu
n
o
s
Vetores e Matrizes
[322]
Média escolar
matriz_alunos[6][6]
escreva "ID aluno"
escreva matriz_alunos[0][0]
escreva "Média"
escreva matriz_alunos[0][6]
------------------------------------------
Menor quantidade
de linhas
// Primeiros passos para começar a programar/ 
Fundamentos de algoritmos
[323]
O que são funções?
Etapa 6
Funções
[324]
Função
Sub-rotinaMétodo
Bloco
Subprograma
Subalgoritmo
Funções
[325]
Similar ao conceito de 
função matemática
blog.professorferretto.com.br
Funções
[326]
Definição formal
As funções, ou sub-rotinas são blocos de instruções que
realizam tarefas específicas
Decomposição do algoritmo
Funções
[327]
Definição formal
As funções, ou sub-rotinas são blocos de instruções que
realizam tarefas específicas
Decomposição do algoritmo
Funções
[328]
Função? Não é mais fácil 
fazer tudo junto?
Modularização do programa
Código mais claro e conciso
Reutilização de instruções
Funções
[329]
Função? Não é mais fácil 
fazer tudo junto?
Definição formal
"São blocos de instruções (código), identificados
por nomes e parâmetros"
Assinatura
Funções
[330]
Definição formal
"São blocos de instruções
(código), identificados
por nomes e parâmetros"
Nome
Invocação
Definição
Variável local
Funções
[331]
Definição formal
"São blocos de instruções
(código), identificados
por nomes e parâmetros"
São destruídas ao encerrar a função
Nome
Invocação
Definição
Variável local
Funções
[332]
Resultado
Função
Dados
Funções
[333]
Resultado
Função
Dados
Alterar estado do 
programa
Funções
[334]
Exemplo
Agora vamos determinar a média escolar
através de uma função.
Qual o ganho que teremos ao fazer essa modificação?
Funções
[335]
Agora vamos determinar a média escolar
através de uma função.
Qual o ganho que teremos ao fazer essa modificação?
Exemplo
Reutilização de código
Funções
[336]
Média escolar
funcao mediaescolar(nota1,nota2)
resultado = 0
resultado = (Nota1 + Nota2)/2
retorne resultado
fim funcao
------------------------------------------
aluno1 = mediaescolar(nota11,nota21)
aluno2 = mediaescolar(nota12,nota22)
aluno13 = mediaescolar(nota13,nota23)
// Primeiros passos para começar a programar/ 
Fundamentos de algoritmos
[337]
Instruções de
entrada/saída
Etapa 7
Instruções de entrada/saída
[338]
Resultado
Dados
Processamento
Instruções de entrada/saída
[339]
Resultado
Dados
Processamento
Quais os tipos e como 
inserir os dados?
Como exibir meu 
resultado?
Instruções de entrada/saída
[340]
Definição formal
Consiste na inserção e recebimento de dados do mundo real 
por meio de ação de alguma interface, seja teclado, mouse, 
arquivos, entre outros.
Instruções de entrada
Instruções de entrada/saída
[341]
Metadados
Inserção de dadosArquivos
Instruções de entrada/saída
[342]
Definição formal
Consiste na impressão dos dados do mundo abstrato, digital por
meio de ação de alguma interface.
Os formatos podem variar desde simples arquivos binários
até complexas querys de banco de dados.
Instruções de saída
Instruções de entrada/saída
[343]
Dispositivos de saída
Arquivos
Log do sistema
Arquivos de acesso
ao usuárioHíbridos
Instruções de entrada/saída
[344]
Existem dois tipos de 
saídas dentro de um programa
(algoritmo)
Saída programada
Saída por interrupção
Definida pelos periféricos
Instruções de entrada/saída
[345]
Existem dois tipos de 
saídas dentro de um programa
(algoritmo)
Saída programada
Saída por interrupção
Condicinal
Incondicional
Instruções de entrada/saída
[346]
Existem dois tipos de 
saídas dentro de um programa
(algoritmo)
Saída programada
Saída por interrupção
Condicinal
Incondicional
Aguarda o 
dispositivo
Instruções de entrada/saída
[347]
Casos
• Bem sucedida
• Erro de sintaxe ou outro
• Erros de programação
• Problemas com a interface
Saída na programação
código
// Primeiros passos para começar a programar
[348]
Aula 4: Linguagens de 
programação
Objetivo
[349]
O objetivo desta aula é apresentar os paradigmas de
programação existentes, incluindo o conceito em si. 
As linguagens de programação são baseadas em um ou mais
paradigmas, sendo o último caso conhecido como linguagem
multiparadigma.
Percurso
Etapa 1 Introdução à linguagem de programação
Etapa 2 Como um computador entende o programa?
[350]
Etapa 3 Características de um programa
Percurso
Etapa 4 Análises e código
Etapa 5 Paradigmas de programação
[351]
// Primeiros passos para começar a programar/ 
Linguagens de programação
[352]
Introdução à linguagem de 
programação
Etapa 1
Introdução
[353]
• Compreender as dificuldades enfrentadas;
• Fundamentos da computação;
• O processo de pensamento.
Por que falar de história da
computação?
Introdução
[354]
• Compreender as dificuldades enfrentadas;
• Fundamentos da computação;
• O processo de pensamento.
Por que falar de história da
computação?
Novos paradigmas
Base em pesquisas anteriores
Introdução
[355]
• Compreender as dificuldades enfrentadas;
• Fundamentos da computação;
• O processo de pensamento.
Por que falar de história da
computação?
Novos paradigmas
Base em pesquisas anteriores
Hardware Software
Introdução
[356]
História da computação
Primeiro dispositivo 
de cálculo
3mil A.C
Instrumentos 
computacionais
1920
Conceito de 
software
Charles Babbage
1937
Alan Turing na 
escola de cifra e 
códigos
9 matemáticos
1940
Transcrição de Ada 
Lovelace
1942 – 43
Projeto Dilab EUA
Codificador de voz
Turing, Neunam e 
Shanon
Entre 40 e 
50
ACE
Neuman e Turing
1946
Claude Shanon –
algebra booleana
1948
IA – Turing
1950
Máquina de cartões 
usado no censo 
americano
1880
Fonte: estalmat.org - ábaco romano
Introdução
[357]
História da computação
Primeiro dispositivo 
de cálculo
3mil A.C
Instrumentos 
computacionais
1920
Conceito de 
software
Charles Babbage
1937
Alan Turing na 
escola de cifra e 
códigos
9 matemáticos
1940
Transcrição de Ada 
Lovelace
1942 – 43
Projeto Dilab EUA
Codificador de voz
Turing, Neunam e 
Shanon
Entre 40 e 
50
ACE
Neuman e Turing
1946
Claude Shanon –
algebra booleana
1948
IA – Turing
1950
Máquina de cartões 
usado no censo 
americano
1880
2° guerra mundial: 1939 - 1945
Introdução
[358]
História da computação
Primeiro dispositivo 
de cálculo
3mil A.C
Instrumentos 
computacionais
1820
Conceito de 
software
Charles Babbage
1937
Alan Turing na 
escola de cifra e 
códigos
9 matemáticos
1940
Transcrição de Ada 
Lovelace
1942 – 43
Projeto Dilab EUA
Codificador de voz
Turing, Neunam e 
Shanon
Entre 40 e 
50
ACE
Neuman e Turing
1946
Claude Shanon –
algebra booleana
1948
IA – Turing
1950
Máquina de cartões 
usado no censo 
americano
1880
fonte: http://www.arithmometre.org/
Introdução
[359]
História da computação
Primeiro dispositivo 
de cálculo
3mil A.C
Instrumentos 
computacionais
1820
Conceito de 
software
Charles Babbage
1837
Alan Turing na 
escola de cifra e 
códigos
9 matemáticos
1840
Transcrição de Ada 
Lovelace
1942 – 43
Projeto Dilab EUA
Codificador de voz
Turing, Neunam e 
Shanon
Entre 40 e 
50
ACE
Neuman e Turing
1946
Claude Shanon –
algebra booleana
1948
IA – Turing
1950
Máquina de cartões 
usado no censo 
americano
1880
Introdução
[360]
História da computação
Primeiro dispositivo 
de cálculo
3mil A.C
Instrumentos 
computacionais
1820
Conceito de 
software
Charles Babbage
1837
Alan Turing na 
escola de cifra e 
códigos
9 matemáticos
1840
Transcrição de Ada 
Lovelace
1942 – 43
Projeto Dilab EUA
Codificador de voz
Turing, Neunam e 
Shanon
Entre 40 e 
50
ACE
Neuman e Turing
1946
Claude Shanon –
algebra booleana
1948
IA – Turing
1950
Máquina de cartões 
usado no censo 
americano
1880
Introdução
[361]
História da computação
Primeiro dispositivo 
de cálculo
3mil A.C
Instrumentos 
computacionais
1820
Conceito de 
software
Charles Babbage
1937
Alan Turing na 
escola de cifra e 
códigos
9 matemáticos
1940
Transcrição de Ada 
Lovelace
1942 – 43
Projeto Dilab EUA
Codificador de voz
Turing, Neunam e 
Shanon
Entre 40 e 
50
ACE
Neuman e Turing
1946
Claude Shanon –
algebra booleana
1948
IA – Turing
1950
Máquina de cartões 
usado no censo 
americano
1880
Alan Turing
Máquina enigma – cenas do filme Jogo da 
Imitação
Introdução
[362]
História da computação
Primeiro dispositivo 
de cálculo
3mil A.C
Instrumentos 
computacionais
1820
Conceito de 
software
Charles Babbage
1937
Alan Turing na 
escola de cifra e 
códigos
9 matemáticos
1940
Transcrição de Ada 
Lovelace
1942 – 43
Projeto Dilab EUA
Codificador de voz
Turing, Neunam e 
Shanon
Entre 40 e 
50
ACE
Neuman e Turing
1946
Claude Shanon –
algebra booleana
1948
IA – Turing
1950
Máquina de cartões 
usado no censo 
americano
1880
Alan Turing
Von Neuman
Claude 
Shannon
Introdução
[363]
História da computação
Primeiro dispositivo 
de cálculo
3mil A.C
Instrumentos 
computacionais
1820
Conceito de 
software
Charles Babbage
1937
Alan Turing na 
escola de cifra e 
códigos
9 matemáticos
1940
Transcrição de Ada 
Lovelace
1942 – 43
Projeto Dilab EUA
Codificador de voz
Turing, Neunam e 
Shanon
Entre 40 e 
50
ACE
Neuman e Turing
1946
Claude Shanon –
algebra booleana
1948
IA – Turing
1950
Máquina de cartões 
usado no censo 
americano
1880
Alan Turing
Von Neuman
Introdução
[364]
História da computação
Primeiro dispositivo 
de cálculo
3mil A.C
Instrumentos 
computacionais
1920
Conceito de 
software
Charles Babbage
1937
Alan Turing na 
escola de cifra e 
códigos
9 matemáticos
1940
Transcrição de Ada 
Lovelace
1942 – 43
Projeto Dilab EUA
Codificador de voz
Turing, Neunam e 
Shanon
Entre 40 e 
50
ACE
Neuman e Turing
1946
Claude Shanon –
algebra booleana
1948
IA – Turing
1950
Máquina de cartões 
usado no censo 
americano
1880
Alan Turing
Fonte: jstor.org
Introdução
[365]
História da computação
Primeiro dispositivo 
de cálculo
3mil A.C
Instrumentos 
computacionais
1820
Conceito de 
software
Charles Babbage
1937
Alan Turing na 
escola de cifra e 
códigos
9 matemáticos
1940
Transcrição de Ada 
Lovelace
1942 – 43
Projeto Dilab EUA
Codificador de voz
Turing, Neunam e 
Shanon
Entre 40 e 
50
ACE
Neuman e Turing
1946
Claude Shanon –
algebra booleana
1948
IA – Turing
1950
Máquina de cartões 
usado no censo 
americano
1880
Claude 
Shannon
Introdução
[366]
História da computação
Primeiro dispositivo 
de cálculo
3mil A.C
Instrumentos 
computacionais
1820
Conceito de 
software
Charles Babbage
1937
Alan Turing na 
escola de cifra e 
códigos
9 matemáticos
1940
Transcrição de Ada 
Lovelace
1942 – 43
Projeto Dilab EUA
Codificador de voz
Turing, Neunam e 
Shanon
Entre 40 e 
50
ACE
Neuman e Turing
1946
Claude Shanon –
algebra booleana
1948
IA – Turing
1950
Máquina de cartões 
usado no censo 
americano
1880
fonte: invent.org
Introdução
[367]
História da computação
Primeiro dispositivo 
de cálculo
3mil A.C
Instrumentos 
computacionais
1820
Conceito de 
software
Charles Babbage
1937
Alan Turing na 
escola de cifra e 
códigos
9 matemáticos1940
Transcrição de Ada 
Lovelace
1942 – 43
Projeto Dilab EUA
Codificador de voz
Turing, Neunam e 
Shanon
Entre 40 e 
50
ACE
Neuman e Turing
1946
Claude Shanon –
algebra booleana
1948
IA – Turing
1950
Máquina de cartões 
usado no censo 
americano
1880
fonte: invent.org
[368]
Introdução
Válvula
Relés - avanço
Primeiros computadores
IBM
Separação de memórias
Dicisão - algoritmo
Harvard Mark 1
Programável
18 mil válvulas
ENIAC
Fonte: inf.ufrgs.br
2° guerra mundial
Mulheres programando no ENIAC
[369]
Introdução
Programa armazenado
EDVAC
Colossus - programação por fio
[370]
Introdução
Intel 8080
Linguagem 
basic -
Microsoft
1975
Apple
1976
Apple II
1977
IBM-PC
1981
Apple III
1980
Lisa – fracasso 
da Apple
1983
Windows 1.0
1985
Windows 2000
1988
Windows XP
2001
Fonte:wired.com
fonte: 
computerhistory.org
[371]
Introdução
Intel 8080
Linguagem 
basic -
Microsoft
1975
Apple
1976
Apple II
1977
IBM-PC
1981
Apple III
1980
Lisa – fracasso 
da Apple
1983
Windows 1.0
1985
Windows 2000
1988
Windows XP
2001
Apple II
IBM-PC
o
p
e
n
s
o
u
rc
e
[372]
Introdução
Intel 8080
Linguagem 
basic -
Microsoft
1975
Apple
1976
Apple II
1977
IBM-PC
1981
Apple III
1980
Lisa – fracasso 
da Apple
1983
Windows 1.0
1985
Windows 2000
1988
Windows XP
2001
Apple III
LISA
Interface de usuário
[373]
Introdução
Intel 8080
Linguagem 
basic -
Microsoft
1975
Apple
1976
Apple II
1977
IBM-PC
1981
Apple III
1980
Lisa – fracasso 
da Apple
1983
Windows 1.0
1985
Windows 2000
1988
Windows XP
2001
Introdução
[374]
Assembly
• 1949
• Primeira linguagem
• Linguagem de
• Montagem
• Máquina
[375]
1949
Ling. de máquina
Anos 50
1° linguagens
Entre 60 e 70
Paradigmas
Déc. 90
Alto nível
2000
Novos conceitos
[376]
1949
Ling. de máquina
Anos 50
1° linguagens
Entre 60 e 70
Paradigmas
Déc. 90
Alto nível
2000
Novos conceitosApple II
fonte: 
computerhistory.org
[377]
1949
Ling. de máquina
Anos 50
1° linguagens
Entre 60 e 70
Paradigmas
Déc. 90
Alto nível
2000
Novos conceitos
Prolog
ML
[378]
1949
Ling. de máquina
Anos 50
1° linguagens
Entre 60 e 70
Paradigmas
Déc. 90
Alto nível
2000
Novos conceitos
Prolog
ML
[379]
1949
Ling. de máquina
Anos 50
1° linguagens
Entre 60 e 70
Paradigmas
Déc. 90
Alto nível
2000
Novos conceitos
Prolog
ML
Introdução
[380]
Problemas computacionais
Objeto de discussão que possui instruções passo a passo
que são mais facilmente resolvíveis em ambiente
computacinal.
Problemas de decisão
Problemas de busca
Problemas de otimização
Introdução
[381]
• Caracter lógico - Sim ou Não
• Ideia
• Pertencimento
Problemas de decisão
A
Introdução
[382]
• Caracter lógico - Sim ou Não
• Ideia
• Pertencimento
Ex: "Dado um número n inteiro
positivo, determine se n e primo"
Problemas de decisão
A
Introdução
[383]
• Caracter lógico - Sim ou Não
• Ideia
• Pertencimento
Ex: "Dado um número n inteiro
positivo, determine se n e primo"
Problemas de decisão
A
Introdução
[384]
• Relacionamento binário
• Objetivo
• Semelhante ao nome
• x está em A?
• Recorrente em teoria de grafos
• Ex: clique
Problemas de busca
Introdução
[385]
Objetivo
• Maximizar, ou
• Minimizar uma função
Aplicações
Problemas de otimização
Introdução
[386]
Método padronizado composto por um 
conjunto de regras sintáticas e semânticas de 
implementação de um código fonte.
O que é uma linguagem de programação?
Introdução
[387]
Método padronizado composto por um 
conjunto de regras sintáticas e semânticas de 
implementação de um código fonte.
Conjunto de palavras com regras
O que é uma linguagem de programação?
Introdução
[388]
Código fonte
Tradução
Interpretação
// Primeiros passos para começar a programar/ 
Linguagens de programação
[389]
Como o computador
entende o programa?
Etapa 2
Introdução
[390]
Código fonte
Tradução
Interpretação
Introdução
[391]
Como o 
computador 
entende o 
programa?
Um programa é um amontado de palavras
senão for possível que o computador
entenda
Introdução
[392]
Como o 
computador 
entende o 
programa?
Um programa é um amontado de palavras
senão for possível que o computador
entenda
Processo de tradução
Introdução
[393]
Como o 
computador 
entende o 
programa?
Linguagem de alto nível
Compilador
Executa analise do programa
Introdução
[394]
Como o 
computador 
entende o 
programa?
Linguagem de alto nível
Compilador
Executa analise do programa
Assembly
Linguagem de 
máquina
Introdução
[395]
Como o 
computador 
entende o 
programa?
Linguagem de alto nível
Compilador
Executa analise do programa
Assembly
Linguagem de 
máquina
Introdução
[396]
Interpretação Programa fonte executado
diretamente
(1) Geração do programa objeto
(2) Execução do programa objeto
Tradução
Tradução
[397]
Bibliotecas
externas
Programa fonte
Análises
Tradução
[398]
Interpretador
Programa fonte
Execução
Introdução
[399]
Interpretação Programa fonte executado
diretamente
(1) Geração do programa objeto
(2) Execução do programa objeto
Tradução
Execução mais rápida
Maior flexibilidade
Programas menores
Introdução
[400]
Interpretação Programa fonte executado
diretamente
(1) Geração do programa objeto
(2) Execução do programa objeto
Tradução
Execução mais rápida
Maior flexibilidade
Programas menores
// Primeiros passos para começar a programar/ 
Linguagens de programação
[401]
Características de um 
programa
Etapa 3
[402]
Basta sair 
programando?
Características
[403]
Basta sair 
programando?
Características
Sim, existem importantes 
características
[404]
Características
Diretrizes
Desenvolvimento de 
programas
Legibilidade
Redigibilidade
Confiabilidade
Custo
[405]
Características
Legibilidade
• Facilidade de leitura
• Compreensão
• Ortogonalidade
• Definição adequada das
estruturas
"Estado que é legível"
Coerência nas instruções
[406]
Características
Redigibilidade
• Pode conflitar com a legibilidade
• Ortogonalidade
• Simplicidade da escrita
• Suporte à abstração
• Reuso do código
• Expressividade Coerência nas instruções
Facilidade de escrita de 
código
[407]
Características
Redigibilidade
• Pode conflitar com a legibilidade
• Ortogonalidade
• Simplicidade da escrita
• Suporte à abstração
• Reuso do código
• Expressividade Coerência nas instruções
Facilidade de escrita de 
código
operador ++
uso do for
[408]
Características
Confiabilidade
Possui:
• verificação de tipos
• Trata exceções
• Uso de ponteiros
• Compatibilidade entre compiladores
Faz o que foi programado para fazer
[409]
Características
Custo
Possui:
• Treinamento
• Codificação
• Compilação
• Execução
• Infra-estrutura
Análise de impacto
Características
[410]
Outras características
Comunidade ativa
Disponibilidade de ferramentas
Adoção pelo mercado
Atualizações
Uso para IA
// Primeiros passos para começar a programar/ 
Linguagens de programação
[411]
Análises de código
Etapa 4
Análise
[412]
Análise léxica
[413]
Particionar Classificar Eliminar
Análise léxica
[414]
Particionar Classificar Eliminar
Elementos 
denominados tokens
Análise léxica
[415]
Particionar Classificar Eliminar
Elementos 
denominados tokens
Elementos: 
identificadores, palavras reservadas, 
números, strings
Análise léxica
[416]
Particionar Classificar Eliminar
Elementos 
denominados tokens
Elementos: 
identificadores, palavras reservadas, 
números, strings
Elementos: 
Caracteres de espaços em 
branco, comentários, ...
[417]
Análise sintática
Sintaxe:
"componente do sistema linguístico que interligam os
constituintes da sentença, atribuindo-lhe uma
estrutura"
Corretude do programa
Forma
[418]
Análise sintática
Sintaxe:
"componente do sistema linguístico que interligam os
constituintes da sentença, atribuindo-lhe uma estrutura"
Padrão - gramática
• Depende da linguagemde programação utilizada
Forma
[419]
Análise semântica
Semântica:
"É o estudo do significado. Incide sobre
a relação entre significantes, como: palavras, frases, sina
is e símbolos"
Lógica do programa
Significado
[420]
Análise semântica
Semântica:
"É o estudo do significado. Incide sobre
a relação entre significantes, como: palavras, frases, sina
is e símbolos"
Erro de semântica:
• não faz o que é esperado
Significado
if (x = 0)
printf("O valor e' nulo\n");
[421]
Análise semântica
Semântica:
"É o estudo do significado. Incide sobre
a relação entre significantes, como: palavras, frases, sina
is e símbolos"
Erro de semântica:
• não faz o que é esperado
Significado
if (x = 0)
printf("O valor e' nulo\n");
if (x == 0)
printf("O valor e' nulo\n");
Erro de semântica
// Primeiros passos para começar a programar/ 
Linguagens de programação
[422]
Paradigmas de 
programação
Etapa 5
[423]
Paradigmas
O que é um 
paradigma?
[424]
Paradigmas
O que é um 
paradigma? Definição formal
"Forma de resolução de problemas com 
diretrizes e limitações específicas de cada 
paradigma utilizando linguagem de 
programação."
[425]
Classificação
Orientação à objeto
Estruturado
Procedural
Computação 
distribuída
Funcional
Lógico
[426]
Classificação
Orientação à objeto
Estruturado
Procedural
Computação 
distribuída
Funcional
Lógico
[427]
Classificação
Orientação à objeto
Estruturado
Procedural
Computação 
distribuída
Funcional
Lógico
[428]
Classificação
Orientação à objeto
Estruturado
Procedural
Computação 
distribuída
Funcional
Lógico
[429]
Classificação
Orientação à objeto
Estruturado
Procedural
Computação 
distribuída
Funcional
Lógico
[430]
Classificação
Orientação à objeto
Estruturado
Procedural
Computação 
distribuída
Funcional
Lógico
[431]
Classificação
Orientação à objeto
Estruturado
Procedural
Computação 
distribuída
Funcional
Lógico
Ada
[432]
Paradigma Estruturado
Conceitos:
• Sequência
• Decisão
• Iteração
Ênfase em sequência
[433]
Paradigma Estruturado
Conceitos:
• Sequência
• Decisão
• Iteração
Ênfase em sequência
[434]
Paradigma Estruturado
Conceitos:
• Sequência
• Decisão
• Iteração
Ênfase em sequência
Dominou o mercado até POO
[435]
Paradigma Estruturado
Utilização:
• Problemas simples e diretos
• Aprender programação
POO ainda não compreendida por muitos
Ênfase em sequência
[436]
Paradigma Estruturado
Conceitos:
• Sequência
• Decisão
• Iteração
Ênfase em sequência
[437]
Orientação à Objeto
Paradigma de programação
baseado na utilização de objetos
e suas interações
Análogo ao mundo real
[438]
Orientação à Objeto
O que é um objeto?
[439]
Orientação à Objeto
O que é um objeto?
[440]
Orientação à Objeto
"Um objeto é descrito por características
específicas, comportamentos e estado"
O que é um objeto?
O que tenho Sou capaz de fazer Como faço
[441]
Modelo
Cor
Carga
Corpo
Tampa
Ponta
O que tenho Sou capaz de fazer Como faço
escrever
desenhar
rabiscar
pintar
destampar
Tampada
Destampada
Em uso
Orientação à Objeto
[442]
Orientação à Objeto
O
ri
e
n
ta
ç
ã
o
 a
 O
b
je
to
O que tenho
Sou capaz de fazer
Como faço
Atributos
Métodos
Estados
[443]
Orientação à Objeto
Modelo
Atributos
Métodos
Estados
Classificação
[444]
Ponto de vista da programação
POO Estruturada
O que é um objeto?
Variável
Alocação em 
Alocação em memória
Operações associadas
Classe
Alocação em 
memória
Operações 
associadas
Orientação à Objeto
[445]
classe caneta():
cor: inteiro
carga: caracter
tampada: lógico
metodo escrever()
Se estado tampada
Escreva ("Destampar")
Senão
Escreva ("algo")
Fimse
metodo tampar()
Tampada = verdadeiro
fimclasse
Orientação à Objeto
[446]
Orientação à Objeto
HERANÇA
ENCAPSULAMENTO
POLIMORFISMO
ABSTRAÇÃO
Pilares de 
Orientação a Objeto
• Classes
• Características
• Atributos
• Métodos
[447]
Orientação à Objeto
Comportamento e 
estado
Específicos
Comportamento
e
Estado gerais
Classe mãe
Classe filho Classe filha
[448]
Orientação à Objeto
PE
POO
Reuso de código
Problemas específicos e 
diretos
// Primeiros passos para começar a programar
[449]
Referências
Bibliográficas
Referências
[450]
Computional Thiking
https://www.cs.cmu.edu/~CompThink/resources/TheLinkWing.pdf
https://ubiquity.acm.org/article.cfm?id=1922682
https://www.youtube.com/watch?v=YVEUOHw3Qb8
https://simplificandoredes.com/historia-da-computacao/
https://simplificandoredes.com/pensamento-computacional/
https://www.cs.cmu.edu/~CompThink/resources/TheLinkWing.pdf
https://ubiquity.acm.org/article.cfm?id=1922682
https://www.youtube.com/watch?v=YVEUOHw3Qb8
https://simplificandoredes.com/historia-da-computacao/
https://simplificandoredes.com/pensamento-computacional/
Referências
[451]
Padrões
https://www.cin.ufpe.br/~if114/Monografias/Reconhecimento/
https://web.fe.up.pt/~jmsa/recpad/index.htm
https://www.teses.usp.br/teses/disponiveis/18/18133/tde-10072006-
002119/publico/Capitulo_2_mestrado.pdf
http://www.vision.ime.usp.br/~teo/publications/dissertacao/node9.html
https://periodicos.furg.br/vetor/article/view/3363/3811
https://www.cin.ufpe.br/~if114/Monografias/Reconhecimento/
https://web.fe.up.pt/~jmsa/recpad/index.htm
https://www.teses.usp.br/teses/disponiveis/18/18133/tde-10072006-002119/publico/Capitulo_2_mestrado.pdf
http://www.vision.ime.usp.br/~teo/publications/dissertacao/node9.html
https://periodicos.furg.br/vetor/article/view/3363/3811
Referências
[452]
Programação e algoritmos
http://www.inf.ufes.br/~tavares/labcomp2000/aulas.htm
https://www.dca.fee.unicamp.br/cursos/EA876/apostila/HTML/
http://www.inf.ufes.br/~tavares/labcomp2000/aula1.htm
http://www.inf.ufes.br/~tavares/labcomp2000/aulas.htm
https://www.dca.fee.unicamp.br/cursos/EA876/apostila/HTML/
http://www.inf.ufes.br/~tavares/labcomp2000/aula1.htm
Referências
[453]
Algoritmos
Livro: Fundamentos da programação de computadores – Pearson
https://www.youtube.com/watch?v=HtSuA80QTyo&list=PLUl4u3cNGP61Oq3t
WYp6V_F-5jb5L2iHb
Algoritmos - MIT
https://www.youtube.com/watch?v=HtSuA80QTyo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb
Referências
[454]
• José Augusto Manzano, Algoritmos -
lógica para desenvolvimento de programação de computadores, Ed. Érica, 
17a ed. (ou mais recentre) - livro de referência
• Ana Fernandes 
Ascencio, Fundamentos da programação de computadores - algoritmos, 
Pascal, C/C e Java, Ed. Pearson, 2a ed.
• Andrew S. Tanenbaum, “Livro Organização Estruturada de Computadores”, 
Ed. Pearson, 5a edição -- Capítulo 1
Referências
[455]
• The Formal Semantics of Programming Languages, Glynn Winskel Deitel 
e Deitel, “C++ How to Program”, 5th edition, Editora Prentice Hall, 2005 --
Capítulo 1
• Waldemar Celes, Renato Cerqueira e José Lucas Rangel, 
"Introdução a Estrutura de Dados com Técnica de Programação em C", 
Editora Campus-Elsevier, 2004 -- Capítulo 1
> Fórum/Artigos
> Comunidade Online (Discord)
Dúvidas?
[456]
https://discord.com/invite/gFKWUdTkaj

Continue navegando