Algoritmos e Programação de Computadores I Prof. Eduardo
Professor Eduardo Machado Real - Mestrado em Ciência da Computação - Especialização em Desenvolvimento de Aplicação para a World Wide Web - Licenciatura em Matemática (res. 2/97) - Graduação em Ciência da Computação Sociedade Brasileira de Computação nº 30495 Atividades (no Lattes): - http://lattes.cnpq.br/1147614161712893
Professor Projetos: - Ensino Introdução à Ciência da Computação e às suas Ferramentas de produtividade. - Pesquisa Estudos de Métodos de Aprendizado de Máquina. - Extensão Inclusão digital: o computador e as suas ferramentas de produtividade.
Professor Contato: - e-mail: eduardomreal@uems.br eduardomreal@gmail.com eduardomreal@hotmail.com Materiais: http://eduardomreal.wikispaces.com, no link da disciplina. Contato da turma?
Disciplina Algoritmos e Programação de Computadores 1 C/H semanal: 6 C/H Total: 204 (C/H teórica: 102 e C/H Aulas Práticas: 102) Aulas: - Terça-feira: das 20:50h às 22:30h - Quinta-feira: das 19:00h às 22:30h
Disciplina Algoritmos e Programação de Computadores 1 Plano de ensino - Ementa - Objetivos -...
Disciplina Algoritmos e Programação de Computadores 1 Critérios de avaliação - 4 Notas. - cada Nota será o resultado da aplicação de Prova e Trabalho(s) e/ou Atividade(s), sendo a média ponderada calculada para este resultado.
Disciplina Algoritmos e Programação de Computadores 1 Cronograma previsto
Introdução Um computador é uma máquina que manipula dados a partir de uma sequência de instruções. Finalidade: receber, manipular e armazenar dados. - realizar a tarefa de processamento de dados.
Introdução Verifique sobre o histórico dos computadores! Verifique sobre Unidade Central de Processamento (UCP), Memória e Dispositivos de Entrada e Saída de dados (E/S)!
Introdução De modo geral, as etapas para o desenvolvimento de um programa são: Análise Nesta etapa estuda-se o enunciado do problema para definir os dados de entrada, o processamento e os dados de saída. Algoritmo Ferramentas do tipo descrição narrativa, fluxograma ou português estruturado são utilizadas para descrever o problema com suas soluções. Codificação O algoritmo é transformado em códigos da linguagem de programação escolhida para se trabalhar.
Noções de Lógica Ideia de racionalidade e coerência. Consiste em ser a arte de pensar corretamente. Para desenvolver qualquer algoritmo e, consequentemente, qualquer software computacional, são necessários conhecimentos básicos de lógica.
Noções de Lógica Nova Andradina é uma cidade do estado de Mato Grosso do Sul. Zezinho nasceu em Nova Andradina. Portanto, Zezinho é Sul-matogrossense. O guarda-roupa está fechado. O terno está dentro do guarda-roupa. Preciso primeiro abrir o guarda-roupa, para depois pegar o terno. Sei que o livro está no armário. Sei que o armário está fechado. Logo, concluo que tenho de abrir o armário para pegar o livro.
Noções de Lógica Sei que sou mais velho que João. Sei que João é mais velho que José. Então, concluo que eu sou mais velho que José. Asdrúbal é aluno da UEMS. Para ser aprovado, um aluno do UEMS precisa obter nota maior ou igual a 6,0 e comparecer no mínimo a 75% das aulas. Asdrúbal compareceu a todas as aulas e obteve nota igual a 8,0. Então, o que podemos concluir?
Lógica de Programação A lógica de programação é essencial para pessoas que desejam trabalhar com desenvolvimento de programas para computadores. Lógica de programação pode ser definida como um conjunto de técnicas para encadear pensamentos a fim de atingir determinado objetivo. - compreender os conceitos de lógica de programação e de algoritmos, conhecer exemplos de algoritmos e algumas técnicas para construção de algoritmos e entender os conceitos de estrutura sequencial, estrutura de seleção e estruturas de repetição no contexto de algoritmos.
Lógica de Programação Instruções - Instrução é a informação que indica a um computador uma ação elementar a executar. Contexto Humano X Contexto Computacional
Algoritmos Um algoritmo é formalmente uma sequência finita de passos que levam a execução de uma tarefa. - Uma sequência de instruções que resultam de uma meta específica. Exemplos: receitas de culinária, manual de instruções, coreografia etc. As estruturas de dados servem para a manipulação das informações utilizadas no algoritmo
Algoritmos Somar dois números quaisquer.
Algoritmos Vamos acessar o material 1 e analisar o exemplo para trocar uma lâmpada!
Outros! Algoritmos
Algoritmos Crie uma sequência lógica para: - Ir à Universidade. - Somar dois números e multiplicar o resultado pelo primeiro número.
Algoritmos Segundo [Cormen et. al., 2012]:
Algoritmos Segundo [Cormen et. al., 2012]:
Algoritmos Problema da ordenação:
TAD Durante o processo de computação de sua saída, um algoritmo manipula dados obtidos de sua entrada. Quando os dados são dispostos e manipulados de forma homogênea, constituem um tipo abstrato de dado (TAD).
TAD Segundo [Pereira, 1996], - um TAD é formado por um conjunto de valores e por uma série de funções que podem ser aplicadas sobre esses valores; - funções e valores, em conjunto, constituem um modelo matemático que pode ser empregado para modelar e solucionar problemas do mundo real, especificando as características relevantes dos elementos envolvidos no problema, de modo que eles se relacionam e como podem ser manipulados.
TAD e ED Conforme [Ascencio & Araújo, 2010], um algoritmo é um projeto em função de TADs. Para implementálos em uma LP é necessário representá-los de alguma maneira nessa linguagem, utilizando tipos e operações suportadas pelo computador. Na representação do TAD, emprega-se uma estrutura de dados (ED).
ED [Cormen et. al., 2002]: uma estrutura de dados (ED) é um meio para armazenar e organizar dados com o objetivo de facilitar o acesso e as modificações.
ED As estruturas diferem umas das outras pela disposição ou manipulação de seus dados, de modo que não se pode separar as estruturas de dados e os algoritmos associados a elas. Todos os problemas a serem resolvidos por algoritmos possuem dados que precisam ser armazenados, e o são em estruturas, de acordo com o contexto do problema.
Por que o estudo dos algoritmos vale a pena? Projeto genoma DNA Internet e grande volume de dados Comércio eletrônico Indústria e comércio
Por que o estudo dos algoritmos vale a pena? Problemas concretos: - Mapas - Problemas matemáticos - Sequências - AM - Redes - SO - etc
Por que o estudo dos algoritmos vale a pena? Educação?
Construindo um algoritmo Problema das Torres de Hanói: Regra: Mover os discos de uma haste para outra sem que o disco maior fique sobre o disco menor.
Construindo um algoritmo Problema das Torres de Hanói: Solução:
Problema: Construindo um algoritmo Temos 3 recipientes de tamanhos distintos (8, 5 e 3 litros), sendo que o recipiente de 8 litros está totalmente cheio. Considerando que os recipientes não sejam graduados, deseja-se colocar 4 litros em dois recipientes.