GBT017 - Informática para Biotecnologia
Aula 01 - Apresentação da Disciplina e Introdução
William Chaves de Souza Carvalho
E-mails: william.carvalho@ufu.br e william.souza.carvalho@gmail.com
Telefone e WhatsApp: (34) 99976 5680
Sala: Campus Santa Mônica – Bloco 1B, piso superior, sala 1B201b
Materiais: www.facom.ufu.br/~william
Atendimento: agendar horário por e-mail ou WhatsApp (terças, quartas ou quintas-feiras)
O
BJETIVO
O objetivo desta disciplina é ensinar os conceitos básicos de
programação de computadores, de modo que o biotecnólogo possa
fazer da computação uma ferramenta relevante no desenvolvimento
de suas pesquisas ou trabalhos.
Nesta disciplina será usada a linguagem Python. É uma linguagem de
fácil aprendizagem, frequentemente utilizada em diversas áreas da
Conceitos básicos de computação.
Introdução aos algoritmos e programação.
Introdução do Python.
Variáveis. Comandos. Expressões. Funções.
Comandos condicionais e de repetição.
Laços e comandos de iterações.
Comunicação com o exterior.
Estrutura de dados. Modularidade. Pacotes.
Exemplos na área de biotecnologia.
B
IBLIOGRAFIA
Básica
LUTZ, M.; ASCHER, D. Aprendendo Python. Tradução de João Tortello. Porto Alegre, Bookman, 2007. SCHUERER, K. C. et al. Introduction to Programming Using Python (programming Course for Biologist
at the Pasteur Institute). Pasteur Institute, 2008.
MENEZES, N. Introdução Programação com Python. São Paulo, Editora Novatec, 2010. Slides e materiais utilizados nas aulas.
Complementar
ASCÊNCIO, A.; CAMPOS, E. Fundamentos da Programação de Computadores. Rio de Janeiro: Pearson-Prentice Hall, 2008.
CAPRON, H. L.; JOHNSON, J. Introdução à Informática. Rio de Janeiro: Pearson-Prentice Hall, 2009. MIZRAHI, V. Treinamento em Linguagem C. Rio de Janeiro: Pearson-Prentice Hall, 2008.
SCHILDT, H. C. C Completo e Total. 3ª ed. São Paulo: Pearson Makron Books, 1997.
KERNIGHAN, B.; RITCHIE, D. M. The C Programming Language. 2ª ed. Prentice Hall: New Jersey, 1988.
A
VALIAÇÃO
3 provas em sala.
Data Prova 1: 15/04/2019 – 25 pontos.
Data Prova 2: 13/05/2019 – 25 pontos.
Data Prova 3: 24/06/2019 – 30 pontos.
Programas Propostos ao longo do semestre (20 pontos).
Datas de entrega a combinar.
1 prova substitutiva, se necessário, abrangendo
o conteúdo do
semestre, substituindo a menor nota OU valendo 100, o que favorecer
o aluno.
C
RONOGRAMA
Data Conteúdo
11-Mar-19 Apresentação da Disciplina e Alguns Conceitos 18-Mar-19 Algoritmos e Fluxogramas
25-Mar-19 Preparação do Ambiente, Variáveis e Expressões 1-Apr-19 Estruturas e Comandos Condicionais
8-Apr-19 Estruturas e Comandos de Repetição
15-Apr-19 Prova P1
22-Apr-19 Listas, Tuplas e Dicionários 29-Apr-19 Strings
6-May-19 Funções
C
RONOGRAMA
Data Conteúdo
20-May-19 Arquivos 27-May-19 Classes
3-Jun-19 Estudos de Caso
10-Jun-19 Talvez não haverá aula
17-Jun-19 Algumas ferramentas e Bibliotecas úteis de Python
24-Jun-19 Prova P3
1-Jul-19 Apresentação Trabalho Final (TF)
G
RUPO
W
HATS
A
PP
INF P/ BIOTEC UFU 2019-1
Link: https://chat.whatsapp.com/FNSOptT5QKs1WaKlsBQzwZ
Canal de difusão rápida de avisos, dúvidas, agendamentos, achados e perdidos, troca de materiais, etc. desde que relacionados à nossa disciplina.
Todos os membros são administradores: todos podem ajudar no bom funcionamento, como por exemplo, incluir algum colega que ainda não tenha entrado. Observação: É uma boa ideia não excluir o professor do grupo...
A participação NÃO é obrigatória, mas recomendada. Grupo será apagado ao fim do semestre.
A
LGUNS
C
OMBINADOS
…
Os pilares do nosso relacionamento são: Respeito, Confiança e Diálogo.
Quatro horários seguidos: sim, é cansativo pra todo mundo!
O estudo de programação exige um certo nível de concentração para
acompanhar a execução de uma série de instruções complexas escritas numa linguagem estranha.
Evite conversas paralelas, refreie o impulso de “dar só uma olhadinha” no
Facebook, WhatsApp, Snap, e-mail. A exceção é o Tinder, porque senão você pode perder aquele match que estava esperando há tempos!
Deu sono, acabou a paciência, precisa fazer trabalho mais urgente de outra disciplina ou precisa conversar com o colega? Não tem problema você sair, dar uma voltinha e voltar.
M
AIS
A
LGUNS
C
OMBINADOS
…
Celular tocou? Se precisar atender, atenda! Apenas deixe o toque em volume baixo. Se a conversa for demorada, dê uma saidinha e depois volte!
Ficou com dúvida?
Por favor, interrompa a aula a qualquer momento. Só não leve a dúvida para casa.
A prova caiu numa semana apertada? Perdeu a prova? Avise!
N
A
A
ULA DE
H
OJE
…
Apresentação da Disciplina
Informática, Dado, Informação e Conhecimento
Representação de Dados
– Sistema Binário
Hardware e Software
Principais Componentes de Hardware
Arquitetura de von Neumann
Endereçamento de Memória
Tipos de Computadores
I
NFORMÁTICA
É o ramo de conhecimento humano que se dedica ao tratamento da
informação mediante o uso de computadores e demais dispositivos de
processamento de dados.
O termo informática vem do francês
informatique
:
União das palavras information, informação; e,
Automatique, automática.
Tratamento automatizado da informação mediante o uso de
computadores eletrônicos.
D
ADO
, I
NFORMAÇÃO E
C
ONHECIMENTO
Dado Informação Conhecimento
• Valores das vendas de hoje
• Histórico de vendas do mês
• Histórico das vendas deste mês e dos últimos anos
• Análise estatística
• Crescimento do Mercado • Posição dos concorrentes
• Perfil detalhado do consumidor
• Receptividade do
consumidor a novas ofertas e promoções
• Retorno as campanhas publicitárias
• Estudos de ciclo de vida do produto
Dado
• Observação sobre
algum componente
do mundo;
• Facilmente
estruturados;
• Passível de
obtenção por
máquinas;
• Frequentemente
quantificados;
• Facilmente
transferíveis.
Por Boris (PNG), SVG by Sjef - en:Image:Nucleotides.png, Domínio público, https://commons.wikimedia.org/w/index.php?curid=2933261Informação
• Dados dotados de
reelevância e
propósito;
• Requer unidade de
análise (
regras
);
• Consenso em relação
ao significado;
• Exige
necessariamente a
medicação humana
(
interpretação
).
Os ácidos nucleicos são moléculas gigantes (macromoléculas),
formadas por unidades
monoméricas (aminoácidos) menores conhecidas como nucleotídeos.
São formados por quatro tipos de nucleotídeos e quatro tipos de bases nitrogenadas (adenina,
timina, guanina e citosina) que irão formar moléculas de DNA distintas
conforme a sequência e a
quantidade desses nucleotídeos.
Conhecimento
• Produto valioso da
mente humana;
• Inclui reflexão,
síntese e contexto;
• Difícil estruturação;
• Difícil obtenção por
máquinas;
• Difícil
transferência.
N
A
P
RÁTICA
…
Dados Informação Conhecimento Ideia / Insigth Sabedoria
Inovação Solução Ação
Sensores, Bancos de Dados,
Business Intelligence,
Registros, Redes Computação Cognitiva, Big
Data, Deep Learning
E
XEMPLO
1: C
ONVERSÃO DE
L
IBRAS POR MINUTO
(
LB
/
MIN
)
PARA
K
MOL POR HORA
(
KMOL
/
H
)
1000 libras por minuto de um gás (peso molar médio = 30,24) está sendo enviado
para uma coluna de absorção. Qual é a taxa de fluxo molar (TFM) do gás em
Τ
𝑘𝑚𝑜𝑙 ℎ?
Solução:
1) Transformando lb em kg
⇒ 1000 𝑙𝑏 = 1000 𝑙𝑏 × 0,4536
𝑘𝑔𝑙𝑏
= 453,6 𝑘𝑔
2) A taxa de fluxo molar = 453,6
𝑘𝑔 𝑚𝑖𝑛 = 453,6 × 60 = 27216
Τ
𝑘𝑔 ℎ
Τ
3) Portanto, a 𝑇𝐹𝑀 =
27216E
XEMPLO
1: S
OLUÇÃO EM
P
YTHON
1 clc()
2 m = 1000 * 0.4536; // kg /min
3 M = 30.24; //gm/mol
4 m1 = m * 60 / M;
E
XEMPLO
2: C
ÁLCULO DO
N
ÚMERO DE MOLÉCULAS EM
691𝑔
DE
𝐾
2
𝐶𝑂
3
Quantas moléculas estão presentes em 691 𝑔 de 𝐾2𝐶𝑂3?
Solução:
1) O peso atômico dos elementos são: 𝐾 = 39.1; C = 12.0 e 𝑂 = 16.0
2) O peso molecular de 𝐾2𝐶𝑂3 é: 39.1 × 2 + 12 + 16 × 3 = 138.2
3) O no de moles de 691𝑔 de 𝐾
2𝐶𝑂3 =
691
138.2 = 5 𝑚𝑜𝑙 𝐾2𝐶𝑂3
4) Como 1 mol de uma substância contém 6,023 × 1023 moléculas, 5 mol de 𝐾2𝐶𝑂3
1 clc() 2 MK = 39.1; 3 MC = 12.0; 4 MO = 16; 5 MK2CO3 = MK * 2 + MC + MO * 3; 6 m = 691; 7 N = m / MK2CO3 ; 8 A = 6.023 * 10^23; 9 moleculas = N * A;
10 disp(" moléculas " ,moleculas ," N Total de moleculas = ")
L
INGUAGEM DE
M
ÁQUINA
O computador é uma máquina
eletrônica capaz apenas de trabalhar com a variação da eletricidade que passa por seus componentes.
O computador é, essencialmente, uma máquina calculadora. Assim, a melhor forma de traduzir a linguagem humana para o computador é usar a matemática.
Regras matemáticas estão presentes nos circuitos eletrônicos do computador. Todos os dados armazenados,
processados e transmitidos por ele são convertidos em valores matemáticos e lógicos.
Como os circuitos eletrônicos variam apenas entre o estado ligado e desligado a matemática computacional utiliza o sistema numérico binário como base para todas a funções que o computador realiza.
R
EPRESENTAÇÃO DE
D
ADOS
Os computadores entendem apenas
duas coisas: ligado e desligado.
Dados são representados na forma
binária:
Sistema numérico binário (base 2). Contém somente 2 dígitos: 0 e 1.
Corresponde a dois estados: ligado e desligado.
R
EPRESENTAÇÃO DE
D
ADOS
Bit: abreviação de binary digit (dígito binário).
Dois valores possíveis: 0 e 1. Nunca pode estar vazio.
Unidade básica para armazenar dados: 0 significa desligado; 1 significa ligado
Byte: um grupo de 8 bits.
Cada byte tem 256 (28) valores possíveis.
Para texto, armazena um caractere.
Dispositivos de memória e armazenamento são medidos na quantidade de bytes que podem armazenar.
R
EPRESENTAÇÃO DE
D
ADOS
Palavra: número de bits que a CPU processa como uma unidade.
Tipicamente, um número inteiro de bytes.
Quanto maior a palavra, mais potente é o computador.
Computadores pessoais tipicamente têm 32 ou 64 bits de extensão de palavras.
R
EPRESENTAÇÃO DE
D
ADOS
R
EPRESENTAÇÃO DE
D
ADOS
C
APACIDADES DE
A
RMAZENAMENTO
Kilobyte: 1024 bytes 2
10.
Capacidade de memória dos computadores pessoais mais antigos.
Megabyte: aproximadamente, um milhão 2
20de bytes.
Dispositivos de armazenamento portáteis (disquetes, CD-ROMs).
Gigabyte: aproximadamente, um bilhão 2
30de bytes.
Memória de computadores pessoais.
Dispositivos de armazenamento (HD’s, DVD’s, memória Flash, Blu-Ray).
Terabyte: aproximadamente, um trilhão 2
40de bytes.
Dispositivos de armazenamento para sistemas muito grandes. Memória de mainframes e servidores de rede.
C
OMPONENTES BÁSICOS DO COMPUTADOR
Hardware
:
Equipamentos físicos, periféricos de entrada e saída; componentes físicos da máquina: carcaças, placas, fios, fontes de energia, cabos, etc.
Software
:
É constituído pelos programas que permitem atender às necessidades do usuário. Envolve um conjunto de
(1) Instruções que são executadas para produzir a tarefa desejada;
(2) Estrutura de dados que permitem que os programas manipulem corretamente as informações; (3) Documentos: que descrevem a operação e uso do programas
D
ISPOSITIVOS DE
E
NTRADA E
S
AÍDA
Dispositivos de Entrada
Permitem ao computador acessar informações do mundo externo. É a forma como os dados são inseridos dentro do computador
Dispositivos de Saída
Permitem a saída de informações para meios externos e possibilitam sua
visualização, armazenamento ou utilização por outro equipamento
D
ISPOSITIVOS DE
E
NTRADA
Teclado
Scanner
Mouse
Tela sensível ao toque
Caneta digitalizadora
D
ISPOSITIVOS DE
S
AÍDA
Monitores VGA, Super VGA,
LCD, etc.
Impressoras Laser, jato de tinta,
matricial, térmica
Alto-falantes
P
RINCIPAIS
C
OMPONENTES DE
H
ARDWARE
1. Monitor de vídeo
2. Placa Mãe
3. Processador
4. Memória RAM
5. Placa de Vídeo, Modem, etc.
6. Fonte de Energia
7. Leitor de CD/DVD
8. Disco Rígido (HD)
9. Mouse / Teclado
Conjunto de chips e conexões
que tem a função de conectar o
processador aos demais
componentes do computador
(memória, HD, placa de vídeo,
etc.);
Gerencia a transação de dados
entre os componentes;
Pode ter vários dispositivos
integrados (on-board), como
placa de vídeo, placa de som e
dispositivo de rede;
Alguns fabricantes: ASUS,
ECS, Intel, MSI e Gigabyte.
Os processadores (ou CPU, de Central Processing Unit) são responsáveis pela execução de cálculos, decisões lógicas e instruções. São constituídos por dois
componentes principais:
ALU (Unidade Aritmética e Lógica); Unidade de Controle.
A maior parte do mercado está concentrada com a Intel e a AMD. Samsung e Qualcomm se destacam no
segmento móvel.
A maioria dos chips compartilha determinadas
características: clock, bits internos, memória cache, uso de dois ou mais núcleos, etc.
C
LOCK DO
P
ROCESSADOR
As atividades dos dispositivos do computador precisam ser sincronizadas. O clock é um sinal de sincronismo:
1. Quando os dispositivos recebem o sinal para executar, isso se chama “pulso de clock”. 2. A cada pulso, os dispositivos executam as tarefas, param e vão para o próximo clock.
O clock é medido em hertz (Hz), que indica o número de ciclos que num certo, no caso, segundos.
Se um processador trabalha a 800 Hz, ele é capaz de lidar com 800 operações de ciclos de clock por segundo.
Megahertz (MHz) indica 1000 KHz (ou 1 milhão de hertz) e gigahertz (GHz) indica 1000 MHz. Um processador com frequência de 800 MHz pode trabalhar com 800 milhões de ciclos por segundo.
M
EMÓRIA
C
ACHE
É um tipo de memória de alta velocidade localizada internamente no
processador. Armazena as instruções e os dados mais requisitados pela
CPU, evitando buscas repetitivas na memória principal.
Ela é
mais cara
que a RAM,
não conta com o mesmo nível de
miniaturização
e consome
mais energia
, mas é muito
mais rápida
.
Existem, basicamente, 2 tipos de cache: cache L1 (Level 1) e cache L2
(Level 2). O L2 é mais simples, ligeiramente maior e mais lento que L1.
O cache L2 passou a ser utilizado quando cache L1 foi insuficiente.
É possível encontrar modelos que contam com cache L3.
M
ÚLTIPLOS
N
ÚCLEOS
Uma forma encontradas pelos fabricantes
para lidar com a limitação da frequência de
clock foi fabricar CPUs com mais de um
núcleo: dual core, quad core, octa core, etc.
Contam com dois ou mais núcleos no
mesmo circuito integrado, como se
houvessem diversos processadores no chip.
O dispositivo pode lidar com dois processos
por vez (ou mais), um para cada núcleo,
melhorando o desempenho do computador
M
EMÓRIA
P
RINCIPAL
(RAM)
Armazena as instruções dos
programas que estão sendo
executados e os dados necessários
à sua execução;
Quando a execução de um
programa é solicitada, normalmente
ele é carregado do disco rígido (HD)
para a memória RAM, de onde suas
instruções são buscadas e
executadas pela CPU.
Memória de rápido acesso;
Chamada memória volátil, pois
necessita de alimentação elétrica
para manter os dados armazenados;
Os dados podem ser lidos ou
gravados em qualquer posição da
memória (acesso aleatório);
Capacidade comuns: 16 MB (1996),
128, 256, 512 MB, 1, 2, 4 ou 8 GB.
M
EMÓRIA
A
UXILIAR
Podem reter grande
quantidade de dados.
Armazena os dados e
programas.
Os dados não são
perdidos quando o
computador é
desligado (não é
volátil).
Funcionamento muito
lento.
Maior Velocidade de Acesso aos dados Maior Custo de Armazenamento por byte Cache Mem. RAM Disco Magnético Disco Ótico Fita Magnética Memória FlashD
ISPOSITIVOS DEA
RMAZENAMENTO DEM
EMÓRIAA
UXILIAR Disco Rígido (HD – Hard Disk)
Armazenamento Magnético
Alta capacidade de armazenagem de dados: 160 GB, 250 GB, 400 GB, 1 TB, 2 TB, etc
Fita Magnética
Armazenamento Magnético
Alta capacidade de armazenagem de dados: 200, 400, 800 GB, etc. Acesso sequencial ao dados
Armazenamento Óptico - CDs e DVDs
CD-R (Compact Disc – Recordable): Capacidades comuns: 650 ou 700 MB.
CD-RW (Compact Disc Rewritable): Como o CD-R, porém pode ser gravado várias vezes DVD-R comum (Single Layer): Capacidade: 4,7 GB.
D
ISPOSITIVOS DEA
RMAZENAMENTO DEM
EMÓRIAA
UXILIAR Armazenamento Óptico – Blue-ray e HD-DVD Disco do mesmo tamanho do CD ou DVD;
Utilizados para armazenar vídeo de alta definição ou grandes quantidades de dados; Alto custo;
Capacidades de armazenagem: HD-DVD Dual Layer (30 GB), Blu-Ray Dual Layer (50 GB) Memória Flash
Tipo de memória não-volátil que pode ser apagada e reprogramada eletricamente; Utilizada em dispositivos do tipo pen-drive, memory stick, mp3-player;
Apresenta baixo consumo e boas taxas de transferência; Já é utilizada em notebooks;
BIOS
Gravado em memória permanente (firmware)
Responsável pelo suporte básico de acesso ao hardware, e início do sistema operacional.
Alguns de seus parâmetros podem ser configurados.
A
RQUITETURA DE VON
N
EUMANN
John von Neumann
Dados e programas a serem executados
são carregados para memória principal;
A unidade central de processamento (CPU),
que executa realmente as instruções, é
separada da memória;
As instruções dos programas e os dados
são transmitidos da memória principal para
a CPU, onde o processamento é realizado;
Os resultados das operações na CPU
devem ser novamente transferidos para a
memória;
E
NDEREÇOS DE
M
EMÓRIA
Bit: 0 ou 1
Byte: conjunto de 8 bits
Palavra: é o conjunto de bits que representa os blocos de informação
transferidos ou processados pela CPU. Os processadores atuais são
capazes de utilizar palavras de 64 bits, isto é, endereçam, processam
e transferem informações através de canais de 64 bits.
Uma máquina de 64 bits tem registradores capazes de armazenar 64
bits e instruções para movimentar, manipular, somar, etc. palavras de
64 bits.
E
NDEREÇOS DE
M
EMÓRIA
A memória é semelhante a uma rua cheia de edifícios de apartamentos.
Cada edifício (palavra) possui vários apartamentos (bytes).
Cada apartamento possui seu próprio endereço.
Todos os apartamentos são numerados (endereçados) sequencialmente,
de 0 ao número total de apartamentos do condomínio.
Os edifícios agrupam os apartamentos (a palavra faz o mesmo).
O endereço dos apartamentos é fixo, mas as correspondências
E
NDEREÇOS DE
M
EMÓRIA
Um
endereço de memória
identifica uma locação física na memória de um
computador de forma similar ao de um endereço residencial em uma
cidade.
O endereço
aponta
para o local onde os dados estão armazenados, da
mesma forma como seu endereço indica onde você reside.
Quando você
muda de casa precisa atualizar seu endereço junto ao banco, Cemig,
DMAE, editoras, etc
.
Dois endereços podem ser numericamente iguais, mas se referirem a locais
distintos se pertencerem a espaços de endereçamento diferentes.
Exemplo:
Pode existir o endereço “Av. Afonso Pena, 200” em Uberlândia e “Av.
Afonso Pena, 200” em Belo Horizonte. Espaço de endereçamento é uma
área de moradias, como um bairro, vila, cidade, etc.
E
NDEREÇOS DE
M
EMÓRIA
Cada localização de memória tem um
endereço
Um número único, como em uma caixa postal.
Pode conter somente uma instrução ou
peça de dados
Quando dados são reescritos na memória, o conteúdo anterior desse endereço é destruído.
Referenciado pelo número
As linguagens de programação usam um endereço simbólico (nomeado), tal como Horas ou Salário.
T
IPOS DE
C
OMPUTADORES
Existem vários tipos de computadores
Smartphones (Sim, isso mesmo!)
PDAs ou Handhelds (Parecidos com tablets) Computadores portáteis (laptops)
Computadores de mesa (desktops)
Computadores de médio porte (servidores) Mainframes
M
AINFRAMES
Características:
Computador de grande porte, dedicado normalmente ao processamento de um volume grande de informações;
Disponibilizam alto nível de segurança;
Possuem um grande número de processadores;
Processamento de transações de cartões de crédito, gerenciamento de contas bancárias, aplicações de data mining e data warehouse, censo, sistemas de ERP, etc.
M
AINFRAMES
Exemplo
IBM System z9 Enterprise
Class Modelo 2094-S54
54 processadores principais
Até 512 GB de memória
principal
Peso: Até 2003 kg
Altura: 1,94 metro
S
UPERCOMPUTADORES
Altíssima velocidade de processamento e grande capacidade de memória,
empregado normalmente em pesquisas científicas, aeroespaciais e militares. Supercomputador da NASA
Columbia
10240 processadores Intel Itanium; 20 terabytes de RAM;
440 terabytes de armazenamento; 51.87 teraflops, ou 51.87 trilhões de
operações de ponto flutuante por segundo.
S
ISTEMA
O
PERACIONAL
O Sistema Operacional é o conjunto de programas
essenciais de todo computador. Tablets e smartphones são computatores!
Este conjunto de programas gerenciam recursos,
processadores, armazenamento, dispositivos de entrada e saída e dados da máquina e seus periféricos.
O Sistema Operacional faz a comunicação entre o hardware e os demais softwares e cria uma plataforma comum a
E
XEMPLOS DE
S
ISTEMAS
O
PERACIONAIS
F
UNÇÕES
B
ÁSICAS DOS
S
ISTEMAS
O
PERACIONAIS
As funções básicas dos sistemas operacionais incluem:
Definição da interface com o usuário;
Compartilhamento de hardware entre usuários; Compartilhamento de dados entre usuários;
Gerenciamento dos dispositivos de entrada e saída; Tratamento e recuperação de erros.