Este documento apresenta uma introdução à disciplina de Fundamentos de Computação. O objetivo é ensinar estudantes a pensar computacionalmente para resolver problemas de qualquer área modelando-os como algoritmos e representando as informações como dados no computador. O documento explica conceitos-chave como algoritmos, dados, representação binária e como os algoritmos também podem ser tratados como dados no computador.
3. Qual é o objetivo desta
disciplina em poucas
palavras ?
4. Aprender como propor soluções a um
problema (de qualquer área) a fim de
resolvido por um artefato computacional.
5. Para isso precisamos de uma diferente
forma de pensar, conhecida como
pensamento computacional.
6. Wing (2006) definiu o pensamento computacional como o conjunto
de habilidades intelectuais e de raciocı́nio que indicam como as
pessoas interagem e aprendem a pensar por meio da linguagem
computacional.
Os processos do pensamento envolvidos na formulaç ão de
problemas, de modo que suas soluç ões possam ser
representadas como passos e algoritmos computacionais (AHO,
2012).
Pensamento Computacional
7. http://www.bbc.co.uk/education/guides/zp92mp3/revision
Pensamento Computacional
● decomposition - breaking
down a complex problem or
system into smaller, more
manageable parts
● pattern recognition – looking
for similarities among and
within problems
● abstraction – focusing on the
important information only,
ignoring irrelevant detail
● algorithms - developing a
step-by-step solution to the
problem, or the rules to follow
to solve the problem
9. De acordo com Guttag e Grimmson,
podemos pensar no algoritmo como uma
forma de representar o conhecimento
imperativo, que difere do conhecimento
declarativo.
Refêrencia:
Guttag e Grimmson. http://www.veduca.com.br/play/357
10. “Dilma foi eleita para presidente do Brasil nas
eleições de 2014”
“y é a raiz quadrada de x se e somente se, y*y = x”
O conhecimento declarativo é composto de
declarações de fatos
11. O conhecimento imperativo é sobre como
realizar algo. Pense nisso como receita, um
algoritmo.
1) Comece adivinhando um g
2) Se g*g está perto suficientemente de x, então g é uma
boa aproximação da raiz quadrada de x. Fim do
algoritmo.
3) Se não, crie uma novo g que é a média g e x/g, Ou
seja, g2
= (g1
+ x/g1
) / 2
4) Com o novo g, volte ao passo 2.
14. “Ação ou acontecimento que, a partir de um estado inicial,
após um período de tempo finito, produz um estado final
previsível e bem-definido. Portanto, um algoritmo é a
descrição de um conjunto de comandos que, obedecidos,
resultam numa sucessão finita de ações.”
(FARRER, 1999)
“Um algoritmo é uma lista de instruções que, quando
executadas, transformam dados de entrada até a saída. As
instruções são um conjunto finito de etapas que podem ser
executadas, numa ordem precisa, por um mecanismo
determinista. Quando estas etapas são efetivamente
executadas , a execução deve terminar após um tempo
finito.”
(HOLLOWAY, 2006)
Outras definições
20. Grandezas representadas por números.
Exemplos de dados
Um texto é um dado, pois as nossas letras formam
um sistema numérico discreto (de base 26, o
número delas), e portanto quantificado.
21. Grandezas representadas por números.
Exemplos de dados
Um texto é um dado, pois as nossas letras formam
um sistema numérico discreto (de base 26, o
número delas), e portanto quantificado.
Imagens são coleções de pixels, onde cada pixel
tem um valor númerico
27. Esse trabalho serviu de base para um outro matematico e
engenheiro, construir um dos primeiros computadores onde os
algoritmos são tratados como dados. Computador IAS.
28.
29. Presper Eckert e John Mauchly os
pioneiros da informática fundaram a
companhia, com o objetivo de fabricar
máquinas baseadas em suas
experiências com o ENIAC e o
EDVAC.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43. Os computadores eletrônicos mudaram nos último 70
anos, contudo os conceitos básicos continuam valendo.
e o pensamento computacional continua sendo a base
para entendê-los.
E isso que se propõe a nossa disciplina. Aprender esta
diferente forma de pensar.