Algoritmos e programação - Aula 1

29,766 views

Published on

Slides referentes a 1º aula da disciplina de Algoritmos e Programação, realizada no dia 01/08/2011

Published in: Technology

Algoritmos e programação - Aula 1

  1. 1. Algoritmos e Programação Thyago Maia Tavares de Farias Aula 1
  2. 2. Sumário <ul><li>Apresentação do Curso </li></ul><ul><li>Plano de Ensino (resumo) </li></ul><ul><li>O “segredo” para se sair bem na disciplina </li></ul><ul><li>Afinal, o que é um algoritmo? </li></ul><ul><li>O que podemos concluir sobre algoritmos? </li></ul>
  3. 3. Apresentação do Curso <ul><li>Professor: Thyago Maia Tavares de Farias </li></ul><ul><li>Mestre em Informática pelo PPGI/DI/UFPB </li></ul><ul><li>Bacharel em Ciência da Computação pela UFPB </li></ul><ul><li>Currículo Lattes: http://lattes.thyagomaia.net </li></ul><ul><li>E-Mail: [email_address] </li></ul><ul><li>Twitter: http://twitter.com/thyagomaia </li></ul>
  4. 4. Plano de Ensino <ul><li>Objeto de estudo: </li></ul><ul><ul><li>Ensino dos conceitos básicos de algoritmos estruturados, envolvendo tipos de dados e formas de representação de algoritmos; </li></ul></ul><ul><ul><li>Fundamentos das técnicas estruturadas de programação para o desenvolvimento de software; </li></ul></ul>
  5. 5. Plano de Ensino <ul><li>Objetivos: </li></ul><ul><ul><li>Geral: Introduzir conceitos de técnicas de programação, utilizando noções de algoritmos, através de linguagem de alto nível. </li></ul></ul><ul><ul><li>Específicos: </li></ul></ul><ul><ul><ul><li>Introduzir as técnicas para o desenvolvimento de algoritmos; </li></ul></ul></ul><ul><ul><ul><li>Estudo e aplicação das técnicas básicas de programação em linguagem de alto nível; </li></ul></ul></ul><ul><ul><ul><li>Análise e depuração de código; </li></ul></ul></ul>
  6. 6. Plano de Ensino <ul><li>Metodologia: </li></ul><ul><ul><li>Aulas teóricas (sala de aula) e práticas (laboratório); </li></ul></ul><ul><li>Avaliação: </li></ul><ul><ul><li>Avaliações escritas: </li></ul></ul><ul><ul><ul><li>3 avaliações (Datas a definir) </li></ul></ul></ul><ul><ul><ul><li>1 reposição (Datas a definir) </li></ul></ul></ul><ul><ul><ul><li>1 final (Datas a definir) </li></ul></ul></ul><ul><ul><li>Exercícios e atividades práticas em laboratório: </li></ul></ul><ul><ul><ul><li>Irão complementar as notas das avaliações; </li></ul></ul></ul><ul><ul><li>Projeto Integrador </li></ul></ul><ul><ul><ul><li>Tema: Desvendando as Redes Sociais; </li></ul></ul></ul><ul><ul><ul><li>Irá complementar a nota da 3ª avaliação; </li></ul></ul></ul>
  7. 7. Plano de Ensino <ul><li>Sobre o Projeto Integrador: </li></ul><ul><ul><li>Trabalhos específicos serão desenvolvidos para cada disciplina do período; </li></ul></ul><ul><ul><li>Grupos de até 4 pessoas; </li></ul></ul><ul><ul><li>O que será desenvolvido para a disciplina de algoritmos? </li></ul></ul><ul><ul><ul><li>Um programa que calcule estatísticas acerca das principais redes sociais do mercado; </li></ul></ul></ul><ul><ul><ul><li>1º estágio: Pesquisar fórmulas e dados que poderão ser utilizados nos programas; </li></ul></ul></ul>
  8. 8. Plano de Ensino <ul><li>Sobre o Projeto Integrador: </li></ul><ul><ul><li>O que será desenvolvido para a disciplina de algoritmos? </li></ul></ul><ul><ul><ul><li>Um algoritmo/programa que calcule estatísticas acerca das principais redes sociais do mercado; </li></ul></ul></ul><ul><ul><ul><li>1º estágio: Pesquisar fórmulas e dados que poderão ser utilizados nos algoritmos/programas (vale 1,0 ponto); </li></ul></ul></ul><ul><ul><ul><li>2º estágio: Início do desenvolvimento dos algoritmos/programas (vale 1,0 ponto); </li></ul></ul></ul><ul><ul><ul><li>3º estágio: Produção de relatório, entrega dos algoritmos/programas desenvolvidos e apresentação no Fórum Integrador (vale 2,0 ponto) </li></ul></ul></ul>
  9. 9. Plano de Ensino <ul><li>Bibliografia Básica: </li></ul><ul><ul><li>TREMBLAY, J. P. & BUNT, R. Ciência dos computadores : uma abordagem algorítmica . São Paulo: McGraw-Hill, 1983. </li></ul></ul><ul><ul><li>AVILANNO, Israel de Campos. Algoritmos e Pascal Manual de Apoio . Editora Moderna, 2ª Edição, 2006. </li></ul></ul><ul><ul><li>FARRER, Harry et al. Algoritmos estruturados . Rio de Janeiro: Guanabara Dois, 1989. </li></ul></ul>
  10. 10. Plano de Ensino <ul><li>Bibliografia Complementar: </li></ul><ul><ul><li>ASCENCIO, Ana Fernanda Gomes. Lógica de programação com pascal . São Paulo: Makron Books,1999. </li></ul></ul><ul><ul><li>MANZANO, José Augusto N. G.; YAMATUMI, Wilson Y. Programação em turbo pascal 7.0. São Paulo: Érica, 1993. </li></ul></ul><ul><ul><li>GUIMARÃES, Ângelo de Moura. Algoritmos e estrutura de dados . Rio de Janeiro:LTC, 1985. </li></ul></ul><ul><ul><li>KNUTH, D.E. The Art of Computer Programming (Vol 1:Fundamental Algorithms). São Paulo: Addison-Wesley, 1974. </li></ul></ul><ul><ul><li>WIRTH, N. Algoritmos and Data Structure . São Paulo: Pearson Prentice-Hall,1986. </li></ul></ul>
  11. 11. Plano de Ensino <ul><li>E-Books: </li></ul><ul><ul><li>TONET, Bruno; KOLIVER, Cristian. Introdução aos algoritmos . Disponível em < www.guanabara.info/logica/Apostilas/VisuAlg_Ref.pdf >. Acesso em 21 de Dezembro de 2010. </li></ul></ul><ul><ul><li>EVARISTO, Jaime. Programando com Pascal . Disponível em < http://professor.ic.ufal.br/jaime/ >. Acesso em 21 de Dezembro de 2010. </li></ul></ul>
  12. 12. Plano de Ensino <ul><li>Site da disciplina: </li></ul><ul><ul><li>http://ead.unipe.br </li></ul></ul><ul><ul><ul><li>Slides das aulas </li></ul></ul></ul><ul><ul><ul><li>Notas de aula </li></ul></ul></ul><ul><ul><ul><li>Lista de exercícios </li></ul></ul></ul><ul><ul><ul><li>Notas </li></ul></ul></ul><ul><ul><ul><li>Informações sobre o curso </li></ul></ul></ul><ul><ul><ul><li>Downloads </li></ul></ul></ul><ul><li>Softwares utilizados no curso: </li></ul><ul><ul><li>VisuAlg: http://www.apoioinformatica.inf.br/visualg/setupv2.exe </li></ul></ul><ul><ul><li>Pascal ZIM!: http://www.baixaki.com.br/download/pascal-zim-.htm </li></ul></ul>
  13. 13. O “segredo” para se sair bem na disciplina <ul><li>Procurar estar presente na maioria das aulas (é claro...) </li></ul><ul><ul><li>Lembre-se: Alguns exercícios poderão compor a nota de alguma prova! </li></ul></ul><ul><li>Se faltou, checar material no site e/ou com os colegas de sala; </li></ul><ul><li>Dúvida em algum assunto ou aula? Pergunte ao professor durante as aulas ou envie um e-mail </li></ul><ul><ul><li>Sempre checo e-mails e procuro respondê-los o mais breve possível </li></ul></ul><ul><li>E o mais importante: EXERCITE, EXERCITE... </li></ul>
  14. 14. Afinal, o que é um algoritmo? <ul><li>Sequência de instruções finitas e ordenadas de forma lógica para a resolução de uma determinada tarefa ou problema; </li></ul><ul><li>Não necessariamente envolve aspectos computacionais. Ex.: Uma receita de bolo, trocar um pneu de carro, trocar uma lâmpada, manual de instruções; </li></ul>
  15. 15. Exemplo <ul><li>Sequência para fritar um ovo: </li></ul><ul><ul><li>Retirar o ovo da geladeira </li></ul></ul><ul><ul><li>Colocar a frigideira no fogo </li></ul></ul><ul><ul><li>Colocar óleo </li></ul></ul><ul><ul><li>Esperar até o óleo ficar quente </li></ul></ul><ul><ul><li>Quebrar o ovo separando a casca </li></ul></ul><ul><ul><li>Colocar o conteúdo do ovo na frigideira </li></ul></ul><ul><ul><li>Esperar um minuto </li></ul></ul><ul><ul><li>Retirar o ovo da frigideira </li></ul></ul><ul><ul><li>Apagar o fogo </li></ul></ul>
  16. 16. Exemplo <ul><li>Tal sequência é um algoritmo? Vejamos... </li></ul><ul><ul><li>Possui uma sequência de instruções finitas e ordenadas? </li></ul></ul><ul><ul><ul><li>R.: SIM. Instruções de 1 a 9. </li></ul></ul></ul><ul><ul><li>O objetivo da sequência foi atingido? </li></ul></ul><ul><ul><ul><li>R.: SIM. O ovo foi frito. </li></ul></ul></ul><ul><ul><li>Logo, é um algoritmo! </li></ul></ul>
  17. 17. Exercício <ul><li>Ordene e estruture uma sequência para a realização de uma ligação telefônica em um orelhão. </li></ul>
  18. 18. Exercício <ul><li>Resposta 1: </li></ul><ul><ul><li>Tirar o fone do gancho </li></ul></ul><ul><ul><li>Ouvir sinal de linha </li></ul></ul><ul><ul><li>Introduzir cartão </li></ul></ul><ul><ul><li>Teclar o número desejado </li></ul></ul><ul><ul><li>Conversar </li></ul></ul><ul><ul><li>Desligar </li></ul></ul><ul><ul><li>Tirar o cartão </li></ul></ul>
  19. 19. Exercício <ul><li>Resposta 2 (Mais robusta) </li></ul><ul><ul><li>Tirar o fone do gancho </li></ul></ul><ul><ul><li>Ouvir sinal de linha </li></ul></ul><ul><ul><li>Introduzir cartão </li></ul></ul><ul><ul><li>Teclar o número desejado </li></ul></ul><ul><ul><li>Se chamar e alguém atender </li></ul></ul><ul><ul><ul><li>Conversar </li></ul></ul></ul><ul><ul><ul><li>Desligar </li></ul></ul></ul><ul><ul><ul><li>Retirar o cartão </li></ul></ul></ul><ul><ul><li>Senão </li></ul></ul><ul><ul><ul><li>Desligar </li></ul></ul></ul><ul><ul><ul><li>Voltar para a instrução 1 </li></ul></ul></ul>
  20. 20. O que podemos concluir sobre algoritmos? <ul><li>Algoritmo é uma espécie de passo a passo; </li></ul><ul><li>Algoritmos realizam uma saída (ex.: Um ovo frito) a partir de uma determinada entrada (um ovo) através de uma sequência de passos; </li></ul><ul><li>Os passos tem que ser executados um após o outro; </li></ul><ul><li>Um algoritmo está correto quando sua sequência de instruções resulta em uma saída esperada. </li></ul><ul><li>Podem existir um ou mais algoritmos para atingir um resultado, desde que o resultado (a saída) seja o mesmo! </li></ul>
  21. 21. Observação <ul><li>O algoritmo não é a solução do problema, mas o caminho que leva a mesma! </li></ul>

×