Baixe o app para aproveitar ainda mais
Prévia do material em texto
CK0178 - Computação Aplicada Apresentação da Disciplina Emanuele Santos UFC - Universidade Federal do Ceará - Professora Emanuele Santos Agenda Informações gerais Objetivos Ementa Metodologia Avaliação Bibliografia Motivação Algoritmos 2 UFC - Universidade Federal do Ceará - Professora Emanuele Santos Informações gerais Aulas Teóricas - Sexta-feira, 08-10h Local: Sala 09, Bloco 951 Aulas Práticas - Sexta-feira, 14h-16h Local: Laboratório de Informática do Centro de Ciências, Bloco 902 3 UFC - Universidade Federal do Ceará - Professora Emanuele Santos Objetivos Apresentar conceitos de lógica de programação Discutir as principais abordagens para a representação de algoritmos. Desenvolver algoritmos com estruturas de dados adequadas para resolver problemas computacionais de forma eficiente. Utilizar os operadores aritméticos, além dos comandos básicos de entrada e saída. Proporcionar um primeiro contato com uma linguagem de programação. 4 UFC - Universidade Federal do Ceará - Professora Emanuele Santos Objetivos (cont.) Nesse curso, nós investigaremos a replicação de DNA e responderemos a seguinte pergunta: Onde em um genoma começa a replicação de DNA? Nós veremos que, para muitas bactérias, nós podemos responder a essa pergunta com apenas alguns algoritmos simples para achar mensagens escondidas no genoma. 5 UFC - Universidade Federal do Ceará - Professora Emanuele Santos Ementa (1/2) Introdução à Lógica Tipos de dados e Instruções Primitivas Estruturas de controle para a tomada de decisões Estruturas de controle de repetição Estruturas de dados homogêneas (vetores e matrizes) 6 UFC - Universidade Federal do Ceará - Professora Emanuele Santos Ementa (2/2) Utilização de funções e parâmetros Recursividade Estruturas de dados heterogêneas (registros) Noções básicas de arquivos 7 UFC - Universidade Federal do Ceará - Professora Emanuele Santos Metodologia Aulas expositivas Aulas práticas utilizando a linguagem Python Exercícios extra-classe (interativos na Web) 8 UFC - Universidade Federal do Ceará - Professora Emanuele Santos Avaliação Duas avaliações (AP1, AP2) - 60% Exercícios de Programação (EP) - 40% Média = ( (AP1 + AP2)/2 ) * 0.6 + EPs * 0.4 Se Média >= 7 então Senão: 🤯 Avaliação Final (AF) Se (Média + AF)/2 >= 5 então 🌊 Senão: # 9 UFC - Universidade Federal do Ceará - Professora Emanuele Santos Frequência Requisitos para Aprovação É importante ressaltar que o aluno deve estar presente a 75% das aulas dadas. Os alunos que não atinjam a este patamar estarão sujeitos a reprovação por falta. 10 UFC - Universidade Federal do Ceará - Professora Emanuele Santos Bibliografia Básica * Ascencio, Ana Fernanda Gomes; Campos, Edilene Aparecida Veneruchi de: Fundamentos da programação de computadores: Algoritmos, Pascal, C/ C++ e Java - 3ª edição, Pearson Prentice Hall, 2012. 11 * Ver outros títulos no formulário da disciplina no SIGAA Menezes, Nilo Ney Coutinho: Introdução à Programação com Python - 2ª edição, Novatec, 2014. Por que aprender a programar? ONDE EM UM GENOMA COMEÇA A REPLICAÇÃO DE DNA? UFC - Universidade Federal do Ceará - Professora Emanuele Santos Replicação de DNA A replicação do genoma é uma das tarefas mais importantes que acontecem dentro da célula. Antes que uma célula possa se dividir, ela precisa replicar o seu genoma de tal forma que cada uma de suas duas células filhas possa herdar a sua própria cópia. 15 1953: Francis Crick e James Watson com seu modelo de molécula de DNA, ano da grande descoberta. “It has not escaped our notice that the specific pairing we have postulated immediately suggests a possible copying mechanism for the genetic material.” UFC - Universidade Federal do Ceará - Professora Emanuele Santos “Mecanismo de replicação de DNA” 17 UFC - Universidade Federal do Ceará - Professora Emanuele Santos O que um biólogo vê 18 Fonte: https://simple.wikipedia.org/wiki/Binary_fission UFC - Universidade Federal do Ceará - Professora Emanuele Santos O que um cientista da Computação vê 19 …ATCAATGATCAACGTAAGCTTCTAAGCATGATCAAGGTGCTCA… string de DNA Processo biológico complicado …ATCAATGATCAACGTAAGCTTCTAAGCATGATCAAGGTGCTCA… cópia 1 …ATCAATGATCAACGTAAGCTTCTAAGCATGATCAAGGTGCTCA… cópia 2 UFC - Universidade Federal do Ceará - Professora Emanuele Santos Origem da Replicação A replicação começa em uma região genômica chamada origem da replicação (ori). 20 UFC - Universidade Federal do Ceará - Professora Emanuele Santos Vetores virais em terapia genética 21 Origem da replicação Gene inserido CélulaComo podemos localizar ori? Encontrando a origem da replicação Experimento: “Vou retirar esse fragmento de DNA. Será que o genoma ainda consegue se replicar?” UFC - Universidade Federal do Ceará - Professora Emanuele Santos Bioinformática Métodos computacionais são atualmente o único modo realístico para responder às perguntas em biologia moderna: São mais rápidos do que qualquer abordagem experimental; Os resultados de muitos experimentos não podem ser interpretados sem uma análise computacional. 23 UFC - Universidade Federal do Ceará - Professora Emanuele Santos Bioinformática Abordagens experimentais existentes para encontrar ori são muito demoradas. Apenas para algumas espécies ori foi localizada experimentalmente. Precisamos de uma abordagem computacional para encontrar ori. 24 UFC - Universidade Federal do Ceará - Professora Emanuele Santos Procurando ori Ao longo desse curso, focaremos no caso relativamente fácil de encontrar ori em genomas de bactérias, muitos dos quais consistem em um único cromossomo circular. 25 ALGORITMO UFC - Universidade Federal do Ceará - Professora Emanuele Santos Algoritmo É uma sequência finita de passos que visam atingir um objetivo bem definido Utiliza-se um controle de fluxo para especificar quando cada passo deve ser executado Algoritmos estão “disfarçados” no nosso cotidiano Receitas culinárias Instruções para realizar alguma tarefa Instruções como chegar a algum lugar 27 UFC - Universidade Federal do Ceará - Professora Emanuele Santos Exemplos de Algoritmos para... ...fazer um sanduíche ...fazer um omelete …fazer brigadeiro ...instalar um aplicativo no celular …ir do bloco 951 para o RU 28 UFC - Universidade Federal do Ceará - Professora Emanuele Santos Noções de lógica Ciência das formas do pensamento, raciocínio Já que o pensamento é a manifestação do conhecimento, e que o conhecimento busca a verdade, é preciso estabelecer algumas regras para que essa meta possa ser atingida. Assim, a lógica é o ramo da filosofia que cuida das regras do bem pensar, ou do pensar correto, sendo, portanto, um instrumento do pensar 29 Fonte: wikipedia http://pt.wikipedia.org/wiki/Lógica UFC - Universidade Federal do Ceará - Professora Emanuele Santos Noções de lógica Todo mamífero é um animal. Todo cavalo é mamífero. Portanto, todo cavalo é um animal. Silogismo: a partir de duas premissas, podemos chegar a uma conclusão Lógica no dia-a-dia Sempre que quisermos colocar ordem no pensamento, estamos usando a lógica 30 UFC - Universidade Federal do Ceará - Professora Emanuele Santos Lógica de Programação Uso da lógica na programação de computadores para desenvolver soluções logicamente válidas e coerentes para os problemas a serem resolvidos Raciocínio é algo abstrato, independente de linguagem ou idioma Utilizam-se algoritmos para manter a lógica independentede uma linguagem de programação 31 UFC - Universidade Federal do Ceará - Professora Emanuele Santos Etapas para o desenvolvimento de um programa Análise: Estudar o enunciado do problema e definir os dados de entrada, o processamento a ser realizado e os dados de saída; Elaborar um Algoritmo: Desenvolver uma possível solução para o problema. Isso pode ser realizado utilizando-se descrição narrativa, fluxograma ou português estruturado Codificação: Transformar o algoritmo em códigos (programa) utilizando uma determinada linguagem de programação; 32 UFC - Universidade Federal do Ceará - Professora Emanuele Santos Programa Etapas para o desenvolvimento de um programa 33 Problema Solução Lógica Algoritmo Codificação UFC - Universidade Federal do Ceará - Professora Emanuele Santos Método para construção de algoritmos Compreender completamente o problema a ser resolvido Definir os dados de entrada, as condições iniciais, que dados serão fornecidos e quais objetos fazem parte do problema Definir os dados de saída Definir o processamento, cálculos a serem efetuados, restrições. Transformação dos dados de entrada em dados de saída. Identificar as responsabilidades Construir o algoritmo Testar o algoritmo usando simulações 34 UFC - Universidade Federal do Ceará - Professora Emanuele Santos Tipos de representações de algoritmos Descrição narrativa Fluxograma Português estruturado (Portugol) ou pseudocódigo 35 UFC - Universidade Federal do Ceará - Professora Emanuele Santos Descrição narrativa Consiste em analisar o enunciado do problema e escrever os passos a serem seguidos para a sua resolução utilizando uma linguagem natural (português, por exemplo) Vantagem: A linguagem já é conhecida Desvantagem: Ambiguidade, múltiplas interpretações 36 UFC - Universidade Federal do Ceará - Professora Emanuele Santos Exemplos de Algoritmos: descrição narrativa Algoritmo para mostrar o resultado da multiplicação de dois números 38 Passo 1: Receber os dois números que serão multiplicados. Passo 2: Multiplicar os números. Passo 3: Mostrar o resultado obtido na multiplicação. UFC - Universidade Federal do Ceará - Professora Emanuele Santos Exemplos de Algoritmos Faça um algoritmo para mostrar o resultado da divisão de dois números Descrição narrativa: 39 Passo 1: Receber os dois números que serão divididos. Passo 2: Se o segundo número for igual a zero, não poderá ser feita a divisão. Caso contrário, dividir os números e mostrar o resultado da divisão. UFC - Universidade Federal do Ceará - Professora Emanuele Santos Fluxograma Consiste em analisar o enunciado do problema e escrever os passos a serem seguidos para a sua resolução utilizando símbolos gráficos predefinidos Vantagem: o entendimento de elementos gráficos é mais simples que o entendimento de textos Desvantagens: É preciso aprender a simbologia dos fluxogramas Fluxograma pode ser muito conciso, dificultando sua transcrição para um programa 40 UFC - Universidade Federal do Ceará - Professora Emanuele Santos Símbolos do Fluxograma 41 Início/Fim: marca o início ou o fim de um programa Decisão: indica desvios na sequência lógica de execução do programa Processamento: qualquer operação com alteração no conteúdo de uma variável UFC - Universidade Federal do Ceará - Professora Emanuele Santos Símbolos do Fluxograma 42 Entrada de dados Linhas de fluxo: indica sequência das etapas e a direção do fluxo Saída de dados UFC - Universidade Federal do Ceará - Professora Emanuele Santos Exemplos de fluxograma Faça um algoritmo em fluxograma para mostrar o resultado da multiplicação de dois números 43 Início Fim N1,N2 M = N1 * N2 M UFC - Universidade Federal do Ceará - Professora Emanuele Santos Exemplos de Algoritmos Faça um algoritmo em fluxograma para mostrar o resultado da divisão de dois números 44 Início Fim N1,N2 D = N1 / N2 DN2 = 0 Divisão por zero Não Sim UFC - Universidade Federal do Ceará - Professora Emanuele Santos Pseudocódigo ou Portugol Consiste em analisar o enunciado do problema e escrever os passos a serem seguidos para a sua resolução por meio de regras bem definidas Vantagem Transcrição do algoritmo para qualquer linguagem é quase imediata, bastando conhecer as palavras reservadas dessa linguagem que serão utilizadas Desvantagem É preciso aprender as regras do pseudocódigo 45 UFC - Universidade Federal do Ceará - Professora Emanuele Santos Exemplos de Algoritmos Faça um algoritmo e pseudocódigo para mostrar o resultado da multiplicação de dois números 46 algoritmo declare N1, N2, M numérico escreva “Digite dois números” leia N1, N2 M ← N1 * N2 escreva “Multiplicação = “, M fim algoritmo. UFC - Universidade Federal do Ceará - Professora Emanuele Santos Exemplos de Algoritmos Faça um algoritmo em pseudocódigo para mostrar o resultado da divisão de dois números 47 algoritmo declare N1, N2, D numérico escreva “Digite dois números” leia N1, N2 se N2 = 0 então escreva “Divisão por zero” senão início D ← N1 / N2 escreva “Divisão = “, D fim fim algoritmo. UFC - Universidade Federal do Ceará - Professora Emanuele Santos Linguagem de programação É uma linguagem artificial utilizada para expressar sequências de ações ou comandos que devem ser executados pela máquina (computador) Existem várias linguagens de programação Python (a linguagem que iremos utilizar) Java C, C++ Assembly 48 UFC - Universidade Federal do Ceará - Professora Emanuele Santos Linguagem Natural x Linguagem de Máquina 49 Python UFC - Universidade Federal do Ceará - Professora Emanuele Santos Linguagens de Programação 50 Linguagem de Baixo Nível Linguagem de Máquina Tradutor Compilador ou Interpretador Linguagem de Alto Nível C, C++, Java, PHP,... São traduzidas em linguagem de máquina (compostas por 0s e 1s) que podem ser processadas pelo computador. São livres de ambiguidades→ única interpretação. UFC - Universidade Federal do Ceará - Professora Emanuele Santos Resolução de Problema 51 UFC - Universidade Federal do Ceará - Professora Emanuele Santos Tradutores Processam linguagens de alto nível, traduzindo-as em linguagens de baixo nível Interpretadores Compiladores 52 UFC - Universidade Federal do Ceará - Professora Emanuele Santos Interpretador As instruções definidas na linguagem de alto nível (código- fonte) são executadas diretamente O interpretador processa o programa um comando de cada vez 53 UFC - Universidade Federal do Ceará - Professora Emanuele Santos Compilador Lê o programa e o traduz completamente antes de começar a executá-lo Programa: código fonte Programa traduzido: código objeto ou executável 54 Uma vez compilado, o programa pode ser executado múltiplas vezes sem precisar de nova tradução UFC - Universidade Federal do Ceará - Professora Emanuele Santos Desenvolvimento de um Programa Interpretado 55 Escrever/Modificar Código Fonte Início Erros de Execução? não sim Executar Programa Fim UFC - Universidade Federal do Ceará - Professora Emanuele Santos Desenvolvimento de um Programa Compilado 56 Escrever/Modificar Código Fonte Início Compilar Erros de Compilação? Linkeditar não sim Erros de Ligação? 1 1 sim Executar Programa Erros de Execução? Fim não sim não UFC - Universidade Federal do Ceará - Professora Emanuele Santos Exercícios Faça um algoritmo para converter uma temperatura dada em Fahrenheitpara Celsius, utilizando descrição narrativa, fluxograma e pseudocódigo. Faça um algoritmo para calcular a média aritmética M entre duas notas de um aluno e mostrar sua situação, que pode ser aprovado (M ≥ 7), reprovado (M < 4) e AF (4 ≤ M < 7). Se o aluno ficar de AF, entre com a nota da AF e mostre a média e o resultado final. Utilize descrição narrativa, fluxograma e pseudocódigo. 57 UFC - Universidade Federal do Ceará - Professora Emanuele Santos Próxima aula em laboratório Conceito de Variável Tipos de dados Formação de identificadores Familiarização com o ambiente de programação 58
Compartilhar