O documento discute vários tópicos fundamentais da Ciência da Computação, incluindo: (1) a diferença entre Computação e programação, (2) a importância da matemática e raciocínio lógico, (3) o algoritmo MDC de Euclides para calcular o máximo divisor comum de dois números.
4. O QUE É CIÊNCIA DA COMPUTAÇÃO?
• Computação não é apenas estudar
programação
• O computador é uma ferramenta
• Conjunto de ferramentas e ideias para a
compreensão de sistemas
5. O QUE É NECESSÁRIO PARA ENTENDER
COMPUTAÇÃO?
• Maturidade matemática
• Exercitar o raciocínio lógico
• Estar preparado para estudar conteúdos
novos todo o tempo
6. O CIENTISTA DA COMPUTAÇÃO
• O Bacharel em Ciência da Computação é o profissional
capacitado a solucionar problemas do mundo real, por
meio da construção de modelos computacionais e de
sua implementação.
• Capacidade para aplicar seus conhecimentos de forma
independente e inovadora, acompanhando a evolução
de setor e contribuindo na busca de soluções nas
diferentes áreas de aplicação da computação;
http://www.di.ufpb.br/node/14
8. FÍSICA VERSUS COMPUTAÇÃO
• A física é a ciência que estuda a natureza e
seus fenômenos em seus aspectos mais
gerais.
• Físicos buscam por irregularidades para
encapsulá-las em leis gerais.
• Cientistas da computação geralmente
trabalham no sentido oposto.
12. CRIANDO UM SITE DE APOSTAS ONLINE
• Criando um jogo de roleta online
• Como será o jogo?
• Como o jogador ganha ou perde?
• Qual a probabilidade de ganhar?
• O que pode dar errado?
17. Física e Computação
• Alguns processos são extremamente difíceis
de serem revertidos.
• Nível microscópico: • Nível macroscópico:
18. Factoring is Hard
• Site de Apostas Online
– Realiza-se a implementação com multiplicações por
números grandes e primos.
• Não apenas fatorar os números é difícil como também
determinar se o ultimo dígito de um dos fatores é ou não
7.
20. COMPASS AND STRAIGHTEDGE
• Algoritmo criado na Grécia antiga usado para
criar complexas figuras geométricas usando
apenas régua e compasso.
• Analogamente na computação criamos
algoritmos que usam um conjunto limitado de
operações simples para resolver problemas
complexos.
36. O ALGORITMO MDC DE EUCLIDES
MDC(0,34) = 34
Se A for maior que B troque as posições
if(A==0) {
return B;
} else {
return MDC(A%B,A);
}
37. O ALGORITMO MDC DE EUCLIDES
• Quantos restos teremos que calcular?
• Quão menor ficam os números a cada passo?
38. O ALGORITMO MDC DE EUCLIDES
• Quantos restos teremos que calcular?
• Quão menor ficam os números a cada passo?
B%A < B/2
39. O ALGORITMO MDC DE EUCLIDES
• Quantos restos teremos que calcular?
• Quão menor ficam os números a cada passo?
B%A < B/2
• Existe uma forma de torna-lo mais eficiente?
41. CONSIDERAÇÕES FINAIS
• Espera-se que o Cientista da Computação
saiba como resolver problemas - uma vez
que isto é considerado mais importante do
que acumular informações.
• Deve estar preparado para lidar com
mudanças e enfrentar desafios.