SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Downloaden Sie, um offline zu lesen
Introdução à algoritmia
Carlos Santos
LabMM 3 - NTC - DeCA - UA
Aula 02, 14-09-2012
O que é um programa?

• Um programa é um conjunto de instruções que:

  • tem como objetivo a resolução de um ou vários problemas;

  • é normalmente escrito com o apoio de uma linguagem de computador;

  • é interpretado e executado por uma máquina/computador.
O que é programar?

• É o acto de ordenar um conjunto de instruções pré-definidas de forma
  lógica, com o objetivo de resolver um problema.



  • O que é a lógica ?

     • “É a ciência que estuda as leis e critérios de validade que regem o
       pensamento e a demonstração, ou seja, ciência dos princípios formais
       do raciocínio.” (Manzano, 2000: 3)

     • Usar o “raciocínio” lógico implica compreender os processos de
       geração de conhecimento, implica seguir uma sequência coerente e
       regular de acontecimentos.
Passos a seguir no acto de programar

1. Definir o problema e identificar todas as suas especificidades;

2. Escolher a estratégia ou método para a resolução do problema;

3. Resolver o problema numa sequência lógica de instruções;

4. Codificar essas instruções numa linguagem de programação (JavaScript,
   PHP, Actionscript, Pascal, Java, C, C++, Objective C,….);

5. Testar e corrigir erros;

6. Documentar o programa.
1. Definição do problema

• Identificar claramente:

   • Qual o objetivo final a atingir com a resolução do problema?

   • Quais os dados e que tipos de dados estão em causa?

   • Quais as variantes que o problema pode ter e em que situações?

   • Quais os limites dos dados?
1. Definição do problema

• Para dar resposta a estas questões devem ser definidas:

  • Especificações de entrada (input de dados)

  • Especificações de saída (output de dados)

  • Variações (condicionantes, variantes em função de determinadas
    condições)
2. Estratégias ou métodos de resolução de
problemas

• Estratégia Top-down

  • baseada na divisão do problema em sub-problemas resolvendo um a um
    para chegar ao todo. Abordagem dos problemas gerais para a
    especificidade. Aplica-se a programação estruturada.

• Estratégia Bottom-up

  • baseada na divisão do problema em sub-problemas mas partindo das
    especificidades conhecidas, evolui definindo as condições de combinação
    das especificidades num todo complexo.

• Estratégia tentativa-erro

  • sequência de tentativas e experiências até atingir a solução correta.
2. Estratégias ou métodos de resolução de
problemas

• E na prática?

  • divisão entre estratégias não é totalmente “estanque”;

  • uma combinação de métodos é aplicada dependendo do problema e da
    experiência do programador.



• 1ª regra na adoção de estratégias é não “desesperar” perante um problema
  que pode parecer demasiado complicado!
3. Resolução do problema

• ... desenvolver um algoritmo capaz de dar resposta a todas as
  necessidades do problema.

  • O que é um algoritmo?

     • Um algoritmo é uma sequência de instruções delimitadas, um conjunto
       de passos claros e objetivos, que permitem resolver um problema ou
       problemas.

• O acto de construir algoritmos é programar!

  • Descrever algoritmos consiste na representação gráfica ou numa
    linguagem próxima do homem dos processos de resolução e surge como
    um passo intermédio à codificação numa linguagem de computador.
Características de um algoritmo

 Os algoritmos, segundo Donald E. Knuth, têm cinco características
 importantes:

  • Finitude

      • Todos os passos definidos num algoritmo têm de ter um fim previsto,
        não podem ser deixados condicionantes que levem à infinitude.

  • Definitude

      • Um algoritmo e os seus passos têm de ser definidos até à exaustão,
        não pode ser deixada qualquer ambiguidade que leve à indefinição de
        instruções para o computador.

 (Donald E. Knuth, "Fundamental algorithms", V1 de "The Art of Computer Programming", 2ª edição, Addison-
 Wesley Publishing Company, Reading, Massachusetts, 1973.)
Características de um algoritmo

 • Entrada

   • Para a definição de um algoritmo é necessário identificar os dados de
     entrada, se existirem.

 • Saída

   • O algoritmo procura a resolução de um problema e portanto terá de
     produzir dados de saída, é necessário identificar os dados ou métodos
     de saída.

 • Eficácia

   • Os passos de um algoritmo não devem ultrapassar um nível de
     complexidade que não possam ser entendidos ou executados pelo
     programador; o que leva a problemas em implementar, testar e corrigir.
Características de um algoritmo

• Etapas fundamentais de um algoritmo:

  • entrada de dados (input)

  • processamento dos dados

  • output de dados (output)
Desafio para a próxima OT

• Exercício a lançar para recordar entrada e saída de dados com JavaScript

  • enunciado lançado online

  • resolução em casa

  • esclarecimento de dúvidas online e na OT
Como “escrever” um algoritmo?

 Diferentes técnicas de representação:

  • Pseudo-código

     + linguagem próxima de língua natural

     + facilidade de representação e entendimento

     - pode conduzir a erros de interpretação

     - menor objetividade
Como “escrever” um algoritmo?

 • Fluxograma ou diagramas de blocos

   + representação por diagramas padronizados

   + objetivo e sintético

   - exige o conhecimento dos símbolos e métodos de representação de
     processos

 • Linguagem de programação

   • programadores experimentes têm a capacidade e o conhecimento
     necessário para escrever soluções de problemas diretamente na
     linguagem de programação. Não deve ser considerada uma técnica de
     representação de algoritmos
Pseudo-código

• Português estruturado e simplificado para evitar redundâncias

• Menos rigoroso que as L.P. para facilitar o entendimento

• Cada expressão deve ser colocada numa linha separada, usar a indentação

• Colocar comentários precedidos de *

• Cada algoritmo deve ser delimitado por INICIO e um ou vários FIM

• Termos e expressões reservadas em MAIÚSCULAS
Pseudo-código
Fluxograma

• Conceito

  • Representação padronizada, pela utilização de símbolos definidos, da
    sequência de instruções e processos lógicos de um algoritmo.



• Vantagens

  + objetividade

  + clareza na interpretação

  + facilita a transposição para qualquer linguagem de programação
Fluxograma

• Principais símbolos utilizados num fluxograma ou num diagrama de blocos
  (norma ISO 5807: 1985)
Fluxograma

• Principais símbolos utilizados num fluxograma ou num diagrama de blocos
  (norma ISO 5807: 1985)




   X
   X X X
Fluxogramas

• Como desenhar?

  • Papel e lápis são um excelente ponto de partida!

  • Ferramentas específicas:

     • Aplicações locais:

        • Microsoft Visio

        • OmniGraffle (mac)

     • Online:

        • Gliffy
E “no antigamente”? :)




IBM Data Processing Techniques, Flowcharting
Techniques (1969)
http://www.fh-jena.de/~kleine/history/software/IBM-
FlowchartingTechniques-GC20-8152-1.pdf
Exemplos de aplicação

• um recurso com exemplos básicos (pseudo-código e fluxograma)

  • http://www.comp.dit.ie/rlawlor/prob_solv/flowcharts/ch03%20Flowchart
    %20and%20Pseudocode%20Examples.pdf
Como mudar um pneu furado de um carro?

• que passos são necessário?
Como mudar um pneu furado de um carro?




                               Ver possível solução em:
                               http://www.rff.com/flat_tire.htm
Exemplos

• exemplo da troca de pneu furado e outros exemplos com diferentes níveis de
  complexidade

  • http://www.rff.com/flowchart_samples.htm

Weitere ähnliche Inhalte

Was ist angesagt?

Como fazer a gestão do Time de Desenvolvimento
Como fazer a gestão do Time de DesenvolvimentoComo fazer a gestão do Time de Desenvolvimento
Como fazer a gestão do Time de DesenvolvimentoAragon Vieira
 
Aula 02 - Lógica de Programação
Aula 02 - Lógica de ProgramaçãoAula 02 - Lógica de Programação
Aula 02 - Lógica de ProgramaçãoAislan Rafael
 
I - introdução a algoritmos
I -  introdução a algoritmosI -  introdução a algoritmos
I - introdução a algoritmosAlessandra Sra JM
 
Lógica e algoritmia
Lógica e algoritmiaLógica e algoritmia
Lógica e algoritmiaJoão Piedade
 
Lógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosLógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosRoney Sousa
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à ProgramaçãoMario Sergio
 
Programando java independente da ide
Programando java independente da ideProgramando java independente da ide
Programando java independente da ideHeider Lopes
 
Lógica de programação 2
Lógica de programação 2Lógica de programação 2
Lógica de programação 2José Lopes
 
Algoritmos - Paradigmas de Programação
Algoritmos - Paradigmas de ProgramaçãoAlgoritmos - Paradigmas de Programação
Algoritmos - Paradigmas de ProgramaçãoElaine Cecília Gatto
 
mod1-algoritmia
mod1-algoritmiamod1-algoritmia
mod1-algoritmiadiogoa21
 
Algoritmos - Aula 04 A - Principios de Resolucao de Problemas
Algoritmos - Aula 04 A - Principios de Resolucao de ProblemasAlgoritmos - Aula 04 A - Principios de Resolucao de Problemas
Algoritmos - Aula 04 A - Principios de Resolucao de ProblemasRodrigo Kiyoshi Saito
 
01. introducao a_logica_de_programacao
01. introducao a_logica_de_programacao01. introducao a_logica_de_programacao
01. introducao a_logica_de_programacaoTânia Rodrigues
 
Aula01 estrutura de dados - (começando as brincadeiras)
Aula01   estrutura de dados - (começando as brincadeiras)Aula01   estrutura de dados - (começando as brincadeiras)
Aula01 estrutura de dados - (começando as brincadeiras)Cleyton Fábio
 
Lógica de Programção - Módulo 1 - algoritmos-introdução
Lógica de Programção - Módulo 1 - algoritmos-introduçãoLógica de Programção - Módulo 1 - algoritmos-introdução
Lógica de Programção - Módulo 1 - algoritmos-introduçãoProfessor-David Remigio
 
4 introdução ao paradigma funcional
4 introdução ao paradigma funcional4 introdução ao paradigma funcional
4 introdução ao paradigma funcionalPéricles Miranda
 

Was ist angesagt? (20)

Como fazer a gestão do Time de Desenvolvimento
Como fazer a gestão do Time de DesenvolvimentoComo fazer a gestão do Time de Desenvolvimento
Como fazer a gestão do Time de Desenvolvimento
 
Módulo 1 de PSI
Módulo 1 de PSIMódulo 1 de PSI
Módulo 1 de PSI
 
Aula 02 - Lógica de Programação
Aula 02 - Lógica de ProgramaçãoAula 02 - Lógica de Programação
Aula 02 - Lógica de Programação
 
I - introdução a algoritmos
I -  introdução a algoritmosI -  introdução a algoritmos
I - introdução a algoritmos
 
Lógica e algoritmia
Lógica e algoritmiaLógica e algoritmia
Lógica e algoritmia
 
Lógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosLógica de Programação - Algoritmos
Lógica de Programação - Algoritmos
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à Programação
 
Programando java independente da ide
Programando java independente da ideProgramando java independente da ide
Programando java independente da ide
 
Lógica de programação 2
Lógica de programação 2Lógica de programação 2
Lógica de programação 2
 
Aula01 - Analise e Programação
Aula01 - Analise e ProgramaçãoAula01 - Analise e Programação
Aula01 - Analise e Programação
 
Logica Programação. ...
Logica Programação. ...Logica Programação. ...
Logica Programação. ...
 
Algoritmos - Paradigmas de Programação
Algoritmos - Paradigmas de ProgramaçãoAlgoritmos - Paradigmas de Programação
Algoritmos - Paradigmas de Programação
 
Etapas da programação
Etapas da programaçãoEtapas da programação
Etapas da programação
 
mod1-algoritmia
mod1-algoritmiamod1-algoritmia
mod1-algoritmia
 
Algoritmos - Aula 04 A - Principios de Resolucao de Problemas
Algoritmos - Aula 04 A - Principios de Resolucao de ProblemasAlgoritmos - Aula 04 A - Principios de Resolucao de Problemas
Algoritmos - Aula 04 A - Principios de Resolucao de Problemas
 
01. introducao a_logica_de_programacao
01. introducao a_logica_de_programacao01. introducao a_logica_de_programacao
01. introducao a_logica_de_programacao
 
Aula01 estrutura de dados - (começando as brincadeiras)
Aula01   estrutura de dados - (começando as brincadeiras)Aula01   estrutura de dados - (começando as brincadeiras)
Aula01 estrutura de dados - (começando as brincadeiras)
 
Lógica de Programção - Módulo 1 - algoritmos-introdução
Lógica de Programção - Módulo 1 - algoritmos-introduçãoLógica de Programção - Módulo 1 - algoritmos-introdução
Lógica de Programção - Módulo 1 - algoritmos-introdução
 
4 introdução ao paradigma funcional
4 introdução ao paradigma funcional4 introdução ao paradigma funcional
4 introdução ao paradigma funcional
 
Introducao
IntroducaoIntroducao
Introducao
 

Ähnlich wie Introdução à algoritmia - O que é um programa e programar

Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Robson Ferreira
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação12anogolega
 
Algoritmos - Aula 03 - Necessidade Do Uso da Logica
Algoritmos - Aula 03 - Necessidade Do Uso da LogicaAlgoritmos - Aula 03 - Necessidade Do Uso da Logica
Algoritmos - Aula 03 - Necessidade Do Uso da LogicaRodrigo Kiyoshi Saito
 
53392229 apostila-de-algoritmo-2009
53392229 apostila-de-algoritmo-200953392229 apostila-de-algoritmo-2009
53392229 apostila-de-algoritmo-2009starley lobo
 
Capítulo 02 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 02 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 02 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 02 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Os Fantasmas !
 
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...Alex Casañas
 
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...Alex Casañas
 
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...Alex Casañas
 
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...Alex Casañas
 
4-Introducao programacao-convertido.pptx
4-Introducao programacao-convertido.pptx4-Introducao programacao-convertido.pptx
4-Introducao programacao-convertido.pptxPatrícia Melo
 
Fundamento da ciência da computação
Fundamento da ciência da computaçãoFundamento da ciência da computação
Fundamento da ciência da computaçãoMarcos Gregorio
 
E14 s07-t3-algoritmos-2013-04-24 (1)
E14 s07-t3-algoritmos-2013-04-24 (1)E14 s07-t3-algoritmos-2013-04-24 (1)
E14 s07-t3-algoritmos-2013-04-24 (1)Alex Almeida
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascalangelicamenegassi
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascalangelicamenegassi
 
1 - Introdução à Lógica de Programação - Comandos Básicos.pptx
1 - Introdução à Lógica de Programação - Comandos Básicos.pptx1 - Introdução à Lógica de Programação - Comandos Básicos.pptx
1 - Introdução à Lógica de Programação - Comandos Básicos.pptxJONATHANSILVADEOLIVE
 
Técnicas_Implementação
Técnicas_ImplementaçãoTécnicas_Implementação
Técnicas_ImplementaçãoWagner Zaparoli
 
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOSAULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOSprofjotamarcosduarte
 
LabMM3 - Aula teórica 02
LabMM3 - Aula teórica 02LabMM3 - Aula teórica 02
LabMM3 - Aula teórica 02Carlos Santos
 

Ähnlich wie Introdução à algoritmia - O que é um programa e programar (20)

Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação
 
Algoritmos - Aula 03 - Necessidade Do Uso da Logica
Algoritmos - Aula 03 - Necessidade Do Uso da LogicaAlgoritmos - Aula 03 - Necessidade Do Uso da Logica
Algoritmos - Aula 03 - Necessidade Do Uso da Logica
 
53392229 apostila-de-algoritmo-2009
53392229 apostila-de-algoritmo-200953392229 apostila-de-algoritmo-2009
53392229 apostila-de-algoritmo-2009
 
Capítulo 02 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 02 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 02 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 02 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
 
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
 
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
 
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
 
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...Unidade 111   estrutura de dados e lógica de programação - com respostas 15-0...
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
 
4-Introducao programacao-convertido.pptx
4-Introducao programacao-convertido.pptx4-Introducao programacao-convertido.pptx
4-Introducao programacao-convertido.pptx
 
Fundamento da ciência da computação
Fundamento da ciência da computaçãoFundamento da ciência da computação
Fundamento da ciência da computação
 
E14 s07-t3-algoritmos-2013-04-24 (1)
E14 s07-t3-algoritmos-2013-04-24 (1)E14 s07-t3-algoritmos-2013-04-24 (1)
E14 s07-t3-algoritmos-2013-04-24 (1)
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascal
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascal
 
1 - Introdução à Lógica de Programação - Comandos Básicos.pptx
1 - Introdução à Lógica de Programação - Comandos Básicos.pptx1 - Introdução à Lógica de Programação - Comandos Básicos.pptx
1 - Introdução à Lógica de Programação - Comandos Básicos.pptx
 
Analise Algoritmos
Analise AlgoritmosAnalise Algoritmos
Analise Algoritmos
 
Técnicas_Implementação
Técnicas_ImplementaçãoTécnicas_Implementação
Técnicas_Implementação
 
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOSAULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
 
Aula01
Aula01Aula01
Aula01
 
LabMM3 - Aula teórica 02
LabMM3 - Aula teórica 02LabMM3 - Aula teórica 02
LabMM3 - Aula teórica 02
 

Mehr von Carlos Santos

Is AI the Spice of our future?
Is AI the Spice of our future?Is AI the Spice of our future?
Is AI the Spice of our future?Carlos Santos
 
Mentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantesMentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantesCarlos Santos
 
1º Encontro Científico TCEdu
1º Encontro Científico TCEdu1º Encontro Científico TCEdu
1º Encontro Científico TCEduCarlos Santos
 
Tecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicialTecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicialCarlos Santos
 
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunosAVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunosCarlos Santos
 
AVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunosAVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunosCarlos Santos
 
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...Carlos Santos
 
Tecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho práticoTecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho práticoCarlos Santos
 
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)Carlos Santos
 
SAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning EnvironmentSAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning EnvironmentCarlos Santos
 
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO CampusRepensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO CampusCarlos Santos
 
A technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus projectA technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus projectCarlos Santos
 
SAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativoSAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativoCarlos Santos
 
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCARepensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCACarlos Santos
 
T20_LM3: APIs e Scoreoid
T20_LM3: APIs e ScoreoidT20_LM3: APIs e Scoreoid
T20_LM3: APIs e ScoreoidCarlos Santos
 
T19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoT19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoCarlos Santos
 
T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)Carlos Santos
 

Mehr von Carlos Santos (20)

Is AI the Spice of our future?
Is AI the Spice of our future?Is AI the Spice of our future?
Is AI the Spice of our future?
 
Mentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantesMentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantes
 
1º Encontro Científico TCEdu
1º Encontro Científico TCEdu1º Encontro Científico TCEdu
1º Encontro Científico TCEdu
 
Tecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicialTecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicial
 
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunosAVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
 
AVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunosAVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunos
 
chmod 777 education
chmod 777 educationchmod 777 education
chmod 777 education
 
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
 
Tecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho práticoTecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho prático
 
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
 
chmod 777 education
chmod 777 educationchmod 777 education
chmod 777 education
 
SAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning EnvironmentSAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning Environment
 
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO CampusRepensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
 
A technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus projectA technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus project
 
SAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativoSAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativo
 
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCARepensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
 
T20_LM3: APIs e Scoreoid
T20_LM3: APIs e ScoreoidT20_LM3: APIs e Scoreoid
T20_LM3: APIs e Scoreoid
 
T19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoT19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificação
 
T18_LM3: Ajax
T18_LM3: AjaxT18_LM3: Ajax
T18_LM3: Ajax
 
T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)
 

Kürzlich hochgeladen

Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Centro Jacques Delors
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdfJorge Andrade
 
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOInvestimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOMarcosViniciusLemesL
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresaulasgege
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinhaMary Alvarenga
 
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdfO Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdfPastor Robson Colaço
 
A experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxA experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxfabiolalopesmartins1
 
Prática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGISPrática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGISVitor Vieira Vasconcelos
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Regência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfRegência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfmirandadudu08
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024Jeanoliveira597523
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfManuais Formação
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfEditoraEnovus
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfAdrianaCunha84
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxIsabellaGomes58
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxOsnilReis1
 
Caixa jogo da onça. para imprimir e jogar
Caixa jogo da onça. para imprimir e jogarCaixa jogo da onça. para imprimir e jogar
Caixa jogo da onça. para imprimir e jogarIedaGoethe
 
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasRosalina Simão Nunes
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBAline Santana
 

Kürzlich hochgeladen (20)

Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf
 
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOInvestimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autores
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinha
 
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdfO Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
 
A experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxA experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptx
 
Prática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGISPrática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGIS
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
 
Regência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfRegência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdf
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdf
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdf
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdf
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
 
Caixa jogo da onça. para imprimir e jogar
Caixa jogo da onça. para imprimir e jogarCaixa jogo da onça. para imprimir e jogar
Caixa jogo da onça. para imprimir e jogar
 
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
 

Introdução à algoritmia - O que é um programa e programar

  • 1. Introdução à algoritmia Carlos Santos LabMM 3 - NTC - DeCA - UA Aula 02, 14-09-2012
  • 2. O que é um programa? • Um programa é um conjunto de instruções que: • tem como objetivo a resolução de um ou vários problemas; • é normalmente escrito com o apoio de uma linguagem de computador; • é interpretado e executado por uma máquina/computador.
  • 3. O que é programar? • É o acto de ordenar um conjunto de instruções pré-definidas de forma lógica, com o objetivo de resolver um problema. • O que é a lógica ? • “É a ciência que estuda as leis e critérios de validade que regem o pensamento e a demonstração, ou seja, ciência dos princípios formais do raciocínio.” (Manzano, 2000: 3) • Usar o “raciocínio” lógico implica compreender os processos de geração de conhecimento, implica seguir uma sequência coerente e regular de acontecimentos.
  • 4. Passos a seguir no acto de programar 1. Definir o problema e identificar todas as suas especificidades; 2. Escolher a estratégia ou método para a resolução do problema; 3. Resolver o problema numa sequência lógica de instruções; 4. Codificar essas instruções numa linguagem de programação (JavaScript, PHP, Actionscript, Pascal, Java, C, C++, Objective C,….); 5. Testar e corrigir erros; 6. Documentar o programa.
  • 5. 1. Definição do problema • Identificar claramente: • Qual o objetivo final a atingir com a resolução do problema? • Quais os dados e que tipos de dados estão em causa? • Quais as variantes que o problema pode ter e em que situações? • Quais os limites dos dados?
  • 6. 1. Definição do problema • Para dar resposta a estas questões devem ser definidas: • Especificações de entrada (input de dados) • Especificações de saída (output de dados) • Variações (condicionantes, variantes em função de determinadas condições)
  • 7. 2. Estratégias ou métodos de resolução de problemas • Estratégia Top-down • baseada na divisão do problema em sub-problemas resolvendo um a um para chegar ao todo. Abordagem dos problemas gerais para a especificidade. Aplica-se a programação estruturada. • Estratégia Bottom-up • baseada na divisão do problema em sub-problemas mas partindo das especificidades conhecidas, evolui definindo as condições de combinação das especificidades num todo complexo. • Estratégia tentativa-erro • sequência de tentativas e experiências até atingir a solução correta.
  • 8. 2. Estratégias ou métodos de resolução de problemas • E na prática? • divisão entre estratégias não é totalmente “estanque”; • uma combinação de métodos é aplicada dependendo do problema e da experiência do programador. • 1ª regra na adoção de estratégias é não “desesperar” perante um problema que pode parecer demasiado complicado!
  • 9. 3. Resolução do problema • ... desenvolver um algoritmo capaz de dar resposta a todas as necessidades do problema. • O que é um algoritmo? • Um algoritmo é uma sequência de instruções delimitadas, um conjunto de passos claros e objetivos, que permitem resolver um problema ou problemas. • O acto de construir algoritmos é programar! • Descrever algoritmos consiste na representação gráfica ou numa linguagem próxima do homem dos processos de resolução e surge como um passo intermédio à codificação numa linguagem de computador.
  • 10. Características de um algoritmo Os algoritmos, segundo Donald E. Knuth, têm cinco características importantes: • Finitude • Todos os passos definidos num algoritmo têm de ter um fim previsto, não podem ser deixados condicionantes que levem à infinitude. • Definitude • Um algoritmo e os seus passos têm de ser definidos até à exaustão, não pode ser deixada qualquer ambiguidade que leve à indefinição de instruções para o computador. (Donald E. Knuth, "Fundamental algorithms", V1 de "The Art of Computer Programming", 2ª edição, Addison- Wesley Publishing Company, Reading, Massachusetts, 1973.)
  • 11. Características de um algoritmo • Entrada • Para a definição de um algoritmo é necessário identificar os dados de entrada, se existirem. • Saída • O algoritmo procura a resolução de um problema e portanto terá de produzir dados de saída, é necessário identificar os dados ou métodos de saída. • Eficácia • Os passos de um algoritmo não devem ultrapassar um nível de complexidade que não possam ser entendidos ou executados pelo programador; o que leva a problemas em implementar, testar e corrigir.
  • 12. Características de um algoritmo • Etapas fundamentais de um algoritmo: • entrada de dados (input) • processamento dos dados • output de dados (output)
  • 13. Desafio para a próxima OT • Exercício a lançar para recordar entrada e saída de dados com JavaScript • enunciado lançado online • resolução em casa • esclarecimento de dúvidas online e na OT
  • 14. Como “escrever” um algoritmo? Diferentes técnicas de representação: • Pseudo-código + linguagem próxima de língua natural + facilidade de representação e entendimento - pode conduzir a erros de interpretação - menor objetividade
  • 15. Como “escrever” um algoritmo? • Fluxograma ou diagramas de blocos + representação por diagramas padronizados + objetivo e sintético - exige o conhecimento dos símbolos e métodos de representação de processos • Linguagem de programação • programadores experimentes têm a capacidade e o conhecimento necessário para escrever soluções de problemas diretamente na linguagem de programação. Não deve ser considerada uma técnica de representação de algoritmos
  • 16. Pseudo-código • Português estruturado e simplificado para evitar redundâncias • Menos rigoroso que as L.P. para facilitar o entendimento • Cada expressão deve ser colocada numa linha separada, usar a indentação • Colocar comentários precedidos de * • Cada algoritmo deve ser delimitado por INICIO e um ou vários FIM • Termos e expressões reservadas em MAIÚSCULAS
  • 18. Fluxograma • Conceito • Representação padronizada, pela utilização de símbolos definidos, da sequência de instruções e processos lógicos de um algoritmo. • Vantagens + objetividade + clareza na interpretação + facilita a transposição para qualquer linguagem de programação
  • 19. Fluxograma • Principais símbolos utilizados num fluxograma ou num diagrama de blocos (norma ISO 5807: 1985)
  • 20. Fluxograma • Principais símbolos utilizados num fluxograma ou num diagrama de blocos (norma ISO 5807: 1985) X X X X
  • 21. Fluxogramas • Como desenhar? • Papel e lápis são um excelente ponto de partida! • Ferramentas específicas: • Aplicações locais: • Microsoft Visio • OmniGraffle (mac) • Online: • Gliffy
  • 22. E “no antigamente”? :) IBM Data Processing Techniques, Flowcharting Techniques (1969) http://www.fh-jena.de/~kleine/history/software/IBM- FlowchartingTechniques-GC20-8152-1.pdf
  • 23. Exemplos de aplicação • um recurso com exemplos básicos (pseudo-código e fluxograma) • http://www.comp.dit.ie/rlawlor/prob_solv/flowcharts/ch03%20Flowchart %20and%20Pseudocode%20Examples.pdf
  • 24. Como mudar um pneu furado de um carro? • que passos são necessário?
  • 25. Como mudar um pneu furado de um carro? Ver possível solução em: http://www.rff.com/flat_tire.htm
  • 26. Exemplos • exemplo da troca de pneu furado e outros exemplos com diferentes níveis de complexidade • http://www.rff.com/flowchart_samples.htm