Algoritmos e a Linguagem de Programação
Definições
Engenharia de Software: uma área da computação voltada à
especificação, desenvolvimento, manutenção e criação de sistemas de
software, com aplicação de tecnologias e práticas de gerência de
projetos e outras disciplinas, visando organização, produtividade e
qualidade.
Atualmente, essas tecnologias e práticas englobam linguagens de
programação, banco de dados, ferramentas, plataformas, bibliotecas,
padrões, processos e a questão da qualidade de software.
Linguagem de programação: são regras que permitem transformar um
algoritmo em um programa.
Algoritmo: é uma sequência lógica de ações a serem executadas em
uma determinada tarefa.
Programa: é um algoritmo que pode ser entendido por um hardware.
Ementa do PPC
Engenharia de Software: englobam linguagens de programação,
banco de dados, ferramentas, plataformas, bibliotecas, padrões,
processos e a questão da qualidade de software.
Linguagem de programação: são regras que permitem transformar um
algoritmo em um programa.
Algoritmo: é uma sequência lógica de ações a serem executadas em
uma determinada tarefa.
Programa: é um algoritmo que pode ser entendido por um hardware.
Nome alternativo desta disciplina: “Algoritmo e Lógica de Programação”
Algoritmo
Um algoritmo é formalmente uma sequência lógica e finita de passos
que levam a execução de uma tarefa.
Assim, até mesmo as coisas mais simples, podem ser descritas por
sequências lógicas:
Por exemplo, a sequência para “Somar dois números quaisquer”
1. Escreva o primeiro número no círculo A.
2. Escreva o segundo número no círculo B.
3. Some o número do círculo A com número do círculo B e coloque o
resultado no quadrado.
Programa
Um programa corresponde as ações de um algoritmo transcritas em
uma linguagem de programação obedecendo à sua sintaxe.
São exemplos de linguagens de programação: Java, Delphi, C, Pascal,
LabVIEW, Arduino etc.
Exemplo de programação
gráfica feito no LabVIEW
Exemplo de programação
através de linhas de comando
Motivo da escolha do Arduino
Estudantes, hobbistas e profissionais de diversas áreas,cada vez mais,
estão utilizando a plataforma Arduino para por em prática suas ideias.
O projeto do Arduino foi desenvolvido em uma ambiente educacional,
logo é excelente para os iniciantes obterem projetos trabalhando de
modo rápido.
Seu ambiente de programação é um ambiente de desenvolvimento
muito fácil de usar por projetistas.
É um "open source Hardware e software", sendo que se desejado,
pode-se baixar o diagrama do circuito, comprar todos os componentes e
fazer a sua própria placa.
O hardware é um chip de baixo custo.
Existem diversas comunidades onde se pode buscar ajuda.
Há simuladores de Arduino online, o que dispensa a necessidade da
disponibilidade física de hardware para aprender a usar suas
funcionalidades básicas.
Hardware para programas
Dependendo da aplicação, um programa pode rodar em um computador
associado a uma placa de aquisição de dados ou em um microcontrolador.
ou
Hardware para programas
As aplicações podem ser as mais diversas.
Vídeo
What Most Schools Dont Teach:
https://youtu.be/nKIu9yen5nc
Projetos com Arduino:
https://www.youtube.com/watch?v=Lp8eSCuQqb0
https://www.youtube.com/watch?v=0f2DlmolKvQ
Apresentação do Plano de Ensino
Vide arquivo no Moodle.
Definição de Algoritmo
Formalmente, um algoritmo é uma sequência lógica e finita de passos
que levam a execução de uma tarefa.
Assim, até mesmo as coisas mais simples, podem ser descritas por
sequências lógicas:
Por exemplo, a sequência para “Somar dois números quaisquer”
1. Escreva o primeiro número no círculo A.
2. Escreva o segundo número no círculo B.
3. Some o número do círculo A com número do círculo B e coloque o
resultado no quadrado.
Construção de um Algoritmo
Etapas:
1º Análise preliminar
2º Solução
3º Teste de qualidade
4º Alteração
5º Produto final
Construção de um Algoritmo
1º Análise preliminar:
Entender o problema, identificando os dados envolvidos e os resultados
esperados.
Antes de montar um algoritmo, precisa-se dividir o problema
apresentado em três fases fundamentais.
ENTRADA: São os dados de entrada do algoritmo provenientes do meio
externo, manual ou automaticamente.
PROCESSAMENTO: São os procedimentos utilizados para chegar ao
resultado esperado.
SAÍDA: São as ações geradas pelo algoritmo para o meio externo.
Construção de um Algoritmo
2º Solução:
Desenvolver a sequência lógica e finita de passos que levam a
execução de uma tarefa para resolver o problema.
Para tanto, pode-se empregar uma decomposição (Top-Down), que
consiste em pegar um grande problema, de difícil solução, e dividi-lo em
problemas menores que devem ser mais facilmente resolvidos.
Construção de um Algoritmo
2º Solução:
Desenvolver a sequência lógica e finita de passos que levam a
execução de uma tarefa para resolver o problema.
Para tanto, pode-se empregar uma decomposição (Top-Down), que
consiste em pegar um grande problema, de difícil solução, e dividi-lo em
problemas menores que devem ser mais facilmente resolvidos.
Construção de um Algoritmo
3º Teste de qualidade:
Ideal testar o algoritmo com o máximo de combinações possíveis.
4º Alteração:
Caso o resultado do algoritmo não seja satisfatório, altere-o e submeta
a um novo teste.
5º Produto final:
Algoritmo concluído e testado.
Formas de Representação de um Algoritmo
Dentre as formas de representação de algoritmos mais conhecidas,
podemos citar:
Descrição Narrativa;
Fluxograma;
Pseudocódigo.
Formas de Representação de um Algoritmo
Descrição Narrativa: Nesta forma de representação, os algoritmos são
expressos diretamente em linguagem natural.
Porém, apresenta o inconveniente da ambiguidade de alguns termos.
Por exemplo, para o cálculo da média de um aluno:
Obter as notas da primeira e da segunda prova;
Calcular a média aritmética entre as duas;
Se a média for maior ou igual a 7, o aluno foi aprovado, senão ele
foi reprovado.
Formas de Representação de um Algoritmo
Fluxograma: Permite visualizar os caminhos (fluxos) e as etapas de
processamento de dados possíveis.
Dentro destas etapas, os passos para a resolução do problema utiliza
modelagem com uma linguagem visual para especificar o conjunto de
instruções por meio de formas geométricas, facilitando a compreensão
da lógica utilizada pelo profissional.
Existem atualmente vários padrões
para definir as formas geométricas a
serem utilizadas para as diversas
instruções (passos) a serem
seguidos pelo sistema.
Formas de Representação de um Algoritmo
Fluxograma:
- Obter as notas da primeira e da segunda
prova;
- Calcular a média aritmética entre as duas;
- Se a média for maior ou igual a 7, o aluno
foi aprovado, senão ele foi reprovado.
Se resultado=>7,
Então rfinal= aprovado
Senão,
Então rfinal= reprovado
Formas de Representação de um Algoritmo
Pseudocódigo: É uma forma genérica de escrever um algoritmo,
utilizando uma linguagem simples.
Por assemelhar-se bastante à forma em que os programas são escritos,
encontra muita aceitação.
Na verdade, esta representação é suficientemente geral para permitir a
tradução de um algoritmo nela representado para uma linguagem de
programação.
Existem algumas variações no formato do pseudocódigo, dependendo
do autor.
Formas de Representação de um Algoritmo
Pseudocódigo: Exemplo de implementação em Arduino.
Formas de Representação de um Algoritmo
Pseudocódigo: Exemplo de implementação em LabVIEW.
Cadastrar no TinkerCad
www.tinkercad.com
Vídeo
Quarta Revolução Industrial:
https://www.youtube.com/watch?v=jTLpqipsw0g
Bibliografia
Bibliografia Básica:
FARREL, Joyce. Lógica e design de programação: introdução. São Paulo:
Cengage Learning, 2010.
MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo de. Algoritmos: lógica
para desenvolvimento de programação de computadores. 8.ed. São Paulo:
Érica, 2000.
SOUZA, Marco Antonio Furlan de et al. Algoritmos e lógica de programação: um
texto introdutório para Engenharia. São Paulo: Cengage Learning, 2004.
Bibliografia Complementar:
DROZDEK, Adam. Estrutura de dados e algoritmos C++. São Paulo: Pioneira
Thomson Learning, 2002.
FORBELLONE, André Luiz Villar; EBERSPACHER, Henri Frederico. Lógica de
programação: a construção de algoritmos e estruturas de dados. 3. ed. São
Paulo: Pearson Prentice Hall, 2005.
PRESSMAN, Roger S. Engenharia de software: uma abordagem profissional. 6.
ed. São Paulo: McGraw-Hill, 2010.
SALVETTI, Dirceu Douglas; BARBOSA, Lisbete M. Algoritmos. São Paulo: Makron
Books, 1998.
TUCKER, Allen B.; NOONAN, Robert E. Linguagens de programação: princípios
e paradigmas. 2.ed. São Paulo: MacGraw Hill, 2008.