Buscar

Introdução à Ciência da Computação

Prévia do material em texto

Introdução a Ciência da 
Computação
Introdução
Elverton Fazzion
2017/02
Slides adaptados do prof. Osvaldo (DCC/UFMG)
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
COMPUTADORES
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Computadores
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Computadores
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Sunway TaihuLight (2017) 
● 93 Petaflops (93 quintilhões de operações aritméticas p/s)
○ 10 milhões de cores (um i7 possui 4 cores)
● Denominado supercomputador 
○ O (ou um dos) melhor(es) em sua geração 
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Evolução dos Supercomputerdores
Soma
#500
#1
Escala 
Logarítmica
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
ENIAC (1946)
● … 385 operações 
aritméticas por segundo
● 1000 vezes mais 
potente que seus 
predecessores
● mais “super” que os 
supercomputadores 
atuais
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Novidades em computação
● É fácil prever que os computadores serão mais rápidos
○ Mas qual é o rumo tomado na computação?
● Caso MS-DOS
○ Vendido para a Microsoft por $50.000 por Tim Patterson
○ Microsoft fez um contrato sem exclusividade com a IBM
○ Poucos anos depois a Microsoft se tornou maior que a IBM
● Caso Yahoo
○ Yahoo era uma das maiores empresas de computação
○ 1999: Poderia ter comprado a Google
○ 2006: Quase comprou o Facebook
● Difícil prever o que será novidade na computação
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
O que um computador faz?
● Transformam informação ...
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
O que um computador faz?
● Transformam informação …
● Recebem informação de entrada e produz informação de 
saída …
Computador Entrada Saída
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
O que um computador faz?
● Transformam informação …
● Recebem informação de entrada e produz informação de 
saída …
Computador Valor total da folha 
de pagamentos
Funcionários
Salários
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
O que um computador faz?
● Transformam informação …
● Recebem informação de entrada e produz informação de 
saída …
Computador Páginas da Internet 
que possuem o 
texto
Páginas da 
Internet
Texto
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
O que um computador faz?
● Transformam informação …
● Recebem informação de entrada e produz informação de 
saída …
Computador 
Jogo
Tecla R
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Computabilidade e Máquina de Turing
● Todos os computadores têm a mesma 
capacidade de transformação de 
informação, desde que disponham de 
armazenamento externo suficiente
● Essa capacidade é definida por um 
dispositivo teórico, a máquina de 
Turing (1937), que captura a noção de 
computabilidade
Alan Turing (1912-1954)
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Computabilidade
X
IBM PC PC GAMER 2017
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Computabilidade
X
IBM PC PC GAMER 2017
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Computabilidade
X
Os dois possuem o mesmo poder de computabilidade 
porém o IBM PC vai demorar MUITO MAIS tempo para 
computar a informação (rodar o jogo)
IBM PC PC GAMER 2017
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Computabilidade e Velocidade
● A velocidade com que a informação é transformada 
determina o seu valor
● Se um computador demora 2 dias para calcular a previsão 
de tempo para amanhã, a informação produzida não tem 
valor algum
● Se cálculos de bombas atômicas ou de projetos de aviões 
são feitos mais rapidamente, o ganho competitivo 
compensa o investimento
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Potência computacional TOP500 por país
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
MÓDULOS
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Sistema computacional em módulos
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Processador Intel Core i7-980X
1,17 bilhões de transistores em ~2cm2!
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Arquitetura do sistema Android
12 milhões de linhas de 
código
100 homens- ano
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
A Internet
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Módulos
● Processadores, Computadores, Super-Computadores, 
programas, bancos de dados, usam módulos, 
sub-módulos, sub-sub-módulos, …
● Módulos são fundamentais para o domínio de sistemas 
complexos
● Estão em todas as partes da computação
● É graças à modularização que a computação funciona e 
está mudando o mundo.
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Módulos computacionais
Informação de 
entrada
Informação de 
saída
Módulo 
Computacional
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Composição de módulos
I IM IM IM
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Composição de módulos
I IM IM IMM
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Composição de módulos
I
I
M
IM
IM
I IM
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Composição de módulos
I
I
M
IM
IM
I IM
M
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Composição de módulos
I IM IM IMM
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
INFORMAÇÃO ANALÓGICA E DIGITAL
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Informação
● Difícil definição: algo em um objeto (suporte) que 
diz alguma coisa sobre outro objeto (alvo) ou 
grandeza
● Um filme fotográfico revelado tem informação sobre 
uma cena fotografada
● Um arquivo JPEG (formato comum para imagens 
digitais) também tem
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Informação analógica e digital
Alvo
Informação 
Analógica
Informação 
Digital
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Informação analógica x Informação digital
● Analógica
○ Registro no objeto suporte tem uma relação física direta com o alvo
○ Relação contínua
○ Ex. A deformação da mola de uma balança (suporte) tem relação 
direta com o peso de um cacho de bananas (alvo)
● Simbólica (ou digital)
○ Registro no objeto suporte é um símbolo com alguma convenção 
de interpretação que permita o seu reconhecimento
○ Relação discreta
○ Ex. Papel (suporte) com números expressando o peso em gramas 
de um cacho de bananas (alvo)
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Informação analógica
Ponto de fusão 
do gelo
Ponto de ebulição 
da água
Corpo humano
● Um termômetro 
tem informação 
sobre a 
temperatura de 
outros corpos ou 
ambientes
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Informação Digital
Ponto de fusão 
do gelo
Ponto de ebulição 
da água
Corpo humano
● O uso de uma 
escala permite 
transformar 
informação 
analógica em 
informação 
simbólica (ou 
digital)
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Informação Digital
Ponto de fusão 
do gelo
Ponto de ebulição 
da água
Corpo humano
● Qual posição da 
coluna de 
mercúrio 
corresponde ao 
símbolo 50?● É preciso 
explicitar a escala, 
Celsius, Farenheit 
ou outra
50
50
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
BITS
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Simbolos podem representar símbolos
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Componentes de um computador
● Computadores trabalham com símbolos
● Processador transforma informação simbólica segundo 
um programa
● Memórias armazenam informação simbólica
● Dispositivos de entrada importam informações
○ Teclado, mouse, entrada de rede, microfone, …
● Dispositivos de saída exportam informações
○ Monitores, impressoras, alto-falantes
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Componentes de um computador
Processador
Memória E/S
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Bits
● Processadores usam somente dois símbolos básicos; 
comumente notados 0 e 1
● Um bit é a unidade básica de informação que contém um 
destes dois símbolos
● Bits tem diversas representações
○ Voltagens ou correntes em circuitos
○ Comprimento de ondas óticas
○ Campos magnéticos
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Bits e informação
● 1 bit, 21 = 2 estados 
● 2 bits, 22 = 4 estados 
● 3 bits, 23 = 8 estados
● 8 bits (ou 1 byte), 28 = 256 estados, pode-se 
representar o alfabeto e os caracteres mais comuns 
● 24 bits, 224 = 16.777.216 pode-se representar cores 
de 1 pixel com uma excelente qualidade
● 80 bits, 280 = 1 yotta = 
1.208.925.819.614.629.174.706.176 estados!
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Prefixos binários e métricos
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Por que só usar 2 símbolos?
O uso de 2 símbolos não limita nossa 
capacidade de representação, mas porque só 
2? Porque não 10, mais familiar?
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Por que só usar 2 símbolos?
O uso de 2 símbolos não limita nossa 
capacidade de representação, mas porque só 
2? Porque não 10, mais familiar?
Confiabilidade: a distinção entre dois níveis 
de voltagem ou de amperagem é muito mais 
confiável
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
CONVERSÕES A/D E D/A
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Conversões AD e DA
● Computadores lidam com informação analógica fazendo 
conversões A/D e D/A
● Perdas ocorrem em cada conversão, mas é possível 
mantê-las em níveis aceitáveis
● Quase sempre o sinal analógico (som luz, etc.) é convertido 
para um sinal elétrico, também analógico, e depois 
convertido para digital
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Transmissão Digital de Áudio
A/D Canal Digital D/A
Microfone Alto-falante
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Sinal Analógico Original (1 segundo)
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Sinal original e 4 amostras/s com 2 bits de precisão
22=4
1
2
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Sinal digitalizado, 4 amostras/s, 2 bits de precisão
Tempo(s) Sinal(V)
0.00 00 (0)
0.33 10 (2)
0.66 10 (2)
1.00 00 (0)
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Informação disponível para reconstrução do sinal
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Reconstrução com interpolação linear
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Reconstrução com interpolação linear
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Sinal original e 40 amostras/s com 2 bits de precisão
22=4
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Reconstrução com interpolação linear
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Sinal original e 40 amostras/s com 6 bits de precisão
26=64
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Reconstrução com interpolação linear
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Conversões A/D e D/A
● A conversão não é perfeita mas, de maneira geral, pode 
ser muito boa
● Um CD usa 16 bits com 44,1 kHz
● Equipamentos profissionais de áudio usam 24 bits com 
96 kHz
● Limites fisiológicos da percepção humana são 
frequentemente explorados (MP3 é um exemplo)
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
MEMÓRIAS
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Memórias
● Memórias são usadas para registrar informações para 
recuperação posterior
● Computadores trabalham com diversos tipos de 
memória
● Memórias são organizadas segundo seu preço por bit e 
sua velocidade de acesso
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Hierarquia de memória
Cache L1, L2, L3
Memória RAM
Discos rígidos, SSDs
Registradores
Caches
Memória Principal
Memória Secundária
Registradores
+ Velocidade
- Capacidade
+ Custo ($)
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Hierarquia de memória
● Registradores
○ Memórias pequenas e muito rápidas
○ Ficam no mesmo chip do processador (fazem parte dele)
○ Precisam de energia para armazenar a informação (voláteis)
● Memória Principal
○ Circuito externo ao processador (mais lento que registradores)
○ O processador usa informações da memória principal para 
executar programas
○ Essas informações são copiadas para os registradores antes de 
serem utilizadas pelo processador
○ Assim como os registradores, são voláteis
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Caches
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Caches
● Memórias com menor capacidade que a memória 
principal porém com acesso muito mais rápido
○ Também ficam no mesmo chip do processador
● Elas armazenam uma parte dos dados que estão na 
memória principal para acesso mais rápido
● Existem para reduzir a discrepância entre a velocidade de 
operação do processador e a memória principal
○ O desafio é fazer com que os dados estejam na cache sempre 
que o processador precisar acessá-los
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Caches
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Memórias secundárias
● Tipicamente são discos magnéticos, onde informações 
podem ser lidas e escritas
● A informação é sempre formatada em arquivos e diretórios 
- uma abstração essencial para o seu uso, provida pelo 
sistema operacional
● Memórias secundárias são necessariamente não-voláteis
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
ORGANIZAÇÃO DO CURSO
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Organização do curso - Parte I
● Entender representações em computação
○ Sistemas de numeração e conversões
● Operações em sistemas de numeração
○ Adição, subtração, multiplicação e divisão
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Organização do curso - Parte II
● Representação de números no computador
○ Inteiros: complemento de um, complemento de dois
○ Decimais: ponto flutuante
● Limitações
○ Overflow e underflow
● Sistemas de computação
○ Computador simplificado
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Organização do curso - Parte III
● Programação bash
○ Comandos básicos (cd, ls, ...) 
○ Comandos intermediários (cut, paste, sort, wget, ...)
○ Editores de texto em terminais Unix
● Introdução ao LaTeX
○ Estrutura básica doLaTeX
○ Compilando um documento em LaTeX
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Avaliação
● Duas provas (referentes a Parte I e Parte II)
○ 30 pontos cada (total 60 pontos)
● Trabalho sobre programação BASH
○ 30 pontos (total 30 pontos)
● Listas de exercícios
○ 2 pontos cada (total 12 pontos -- 2 pontos extras)
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Cronograma (pode sofrer alterações)
Data Tópico
Entregas
Listas Trabalho
7-ago-2017 Introdução ao curso + Visão geral da área
14-ago-2017 Feriado
21-ago-2017 Não haverá aula
28-ago-2017 HackFest
04-set-2017 História da computação
11-set-2017 Sistemas de numeração Lista 1
18-set-2017 Sistemas de numeração
25-set-2017 Aritmética binária Lista 2
2-out-2017 Aritmética binária
9-out-2017 Representação númerica em computadores Lista 3
16-out-2017 Prova 1
23-out-2017 Representação númerica em computadores
30-out-2017 Sistemas de computação Lista 4
6-nov-2017 Sistemas de computação
13-nov-2017 Introdução a programação bash Lista 5
20-nov-2017 Prova 2
27-nov-2017 Introdução a programação bash
4-dez-2017 Introdução a programação bash
11-dez-2017 Introdução ao LaTex Lista 6
18-dez-2017 Substitutiva Trabalho 1
Elverton Fazzion -- DCOMP/UFSJ -- Introdução a Ciência da Computação 2017/02
Referências básicas
● Referência básica
○ Introdução à Ciência da Computação (2 edição) POLLONI, E. G. F. ; 
PERES, F. R. ; FEDELI, R. D; 
● Você pode estudar os tópicos dos slides por qualquer livro
○ Eu não vou pegar minúcias de livro 
○ Prova parecida com a lista de exercícios
○ Eu colocarei materiais suplementares no Moodle quando for 
pertinente

Continue navegando