Buscar

Introdução à Computação Aplicada

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 58 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 58 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 58 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Outros materiais