Maailmasta laskennalliseen malliin ja takaisin - Big History -kalvot 2012

  • 101 views
Uploaded on

Slides (in Finnish) about computer science and software engineering from the Big History course of University of Turku.

Slides (in Finnish) about computer science and software engineering from the Big History course of University of Turku.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
101
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
3
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. ì   Maailmasta  laskennalliseen  malliin   –  ja  takaisin   Jouni  Smed     Informaa/oteknologian  laitos   Turun  yliopisto  
  • 2. Sisältö   I.   Kuinka  esi*ää  ja  käsitellä  maailmaa  symbolises3   1.  2.  3.  II.  Historiaa   Symbolinen  esitystapa   Algoritmit    Kuinka  3etojenkäsi*elyä  voidaan  toteu*aa   4.  5.  6.  Ohjelmoin/   LaiEeisto   Kommunikaa/o  
  • 3. Maailma   LaiEeisto   01001001   Symbolinen     esitysmuoto   Algoritmi  
  • 4. Kuinka  esittää  ja  käsitellä  maailmaa   symbolisesti   ì  
  • 5. 1.  Historiaa   ì  
  • 6. Virstanpylväitä   ì  n.  2400  eaa.  helmitaulu   ì  n.  100  eaa.  An/kythera-­‐mekanismi   ì  n.  1000  jaa.  equatorium,  astrolabi,  torquetum   ì  1642  Pascaline   ì  1801  reikäkorQ   ì  1834  analyyQnen  kone   ì  elektroniset  /etokoneet     ì  ì  ì  ì  1.  sukupolvi:  tyhjiöputket  (1935–1958)   2.  sukupolvi:  transistorit  (1958–1964)   3.  sukupolvi:  integroidut  piirit  (1964–1971)   4.  sukupolvi:  mikroprosessorit  (1971–  )  
  • 7. Helmitaulu  
  • 8. Antikythera-­‐mekanismi  
  • 9. Equatorium,  astrolabi  ja  torquetum  
  • 10. Pascaline   Blaise  Pascal  (1623–62)  
  • 11. Reikäkortti   Herman  Hollerith  (1860–1929)  
  • 12. Analyyttinen  kone   Charles  Babbage  (1791–1871)  
  • 13. Ihmislaskenta  
  • 14. 1.  sukupolvi:  tyhjiöputket  (1940–1958)  
  • 15. 2.  sukupolvi:  transistorit  (1958–1964)  
  • 16. 3.  sukupolvi:  integroidut  piirit  (1964–1971)  
  • 17. 4.  sukupolvi:  mikroprosessorit  (1971–)  
  • 18. 2.  Symbolinen  esitystapa   ì  
  • 19. Symboleita  kaikkialla   ABCDEF…   αβγδ…   01234…   ♪♫♭♮… +×÷≠∞≈…   §©™ý✚…   12)=… NTY¶¿… DAFGBI…
  • 20. Aakkosto   ì  äärellinen,  ei-­‐tyhjä  joukko  merkkejä  joita  käytetään   kielen  muodostamiseen   ì  esim.  kirjainaakkosto:  {  A,  B,  …,  Z  }   ì  merkkijonoja  (ε,  A,  B,  C,…,  AA,  AB,…,  AAKKOSTO,  …)   ì  esim.  binääriaakkosto:  {  0,  1  }   ì  merkkijonoja  (ε,  0,  1,  00,  01,  10,  11,  100,  …)  
  • 21. Boolen  algebra   ì  totuusarvot  0  ja  1   ì  operaa/ot   konjunk/o∧  (AND)   ì  disjunk/o  ∨  (OR)   ì  negaa/o  ¬  (NOT)   ì  ì  operaa/ot  voidaan  toteuEaa   mekaanises/  tai  sähköises/   releet   ì  puolijohteet   ì  pneuma/ikka   ì  George  Boole  (1815–64)  
  • 22. Totuustaulut  ja  Vennin  diagrammit   x   y   x  ∧  y   x   y   x  ∨  y   x   ¬x   0   0   0   0   0   0   0   1   0   1   0   0   1   1   1   0   1   0   0   1   0   1   1   1   1   1   1   1  
  • 23. Numerot  binäärimuodossa   numero   binääriesitys   numero   binääriesitys   0   0   12   1100   1   1   13   1101   2   10   14   1110   3   11   15   1111   4   100   16   10000   5   101   17   10001   6   110   18   10010   7   111   19   10011   8   1000   20   10100   9   1001   21   10101   10   1010   22   10110   11   1011   23   10111  
  • 24. ASCII   koodi   sym-­‐ boli   koodi   sym-­‐ boli   koodi   sym-­‐ boli   koodi   sym-­‐ boli   koodi   sym-­‐ boli   koodi   sym-­‐ boli   koodi   sym-­‐ boli   koodi   sym-­‐ boli   0   NUL   16   DLE   32       48   0   64   @   80   P   96   `   112   p   1   SOH   17   DC1   33   !   49   1   65   A   81   Q   97   a   113   q   2   STX   18   DC1   34   “   50   2   66   B   82   R   98   b   114   r   3   ETX   19   DC3   35   #   51   3   67   C   83   S   99   c   115   s   4   EOT   20   DC4   36   $   52   4   68   D   84   T   100   d   116   t   5   ENQ   21   NAK   37   %   53   5   69   E   85   U   101   e   117   u   6   ACK   22   SYN   38   &   54   6   70   F   86   V   102   f   118   v   7   BEL   23   ETB   39   ‘   55   7   71   G   87   W   103   g   119   w   8   BS   24   CAN   40   (   56   8   72   H   88   X   104   h   120   x   9   HT   25   EM   41   )   57   9   73   I   89   Y   105   i   121   y   10   LF   26   SUB   42   *   58   :   74   J   90   Z   106   j   122   z   11   VT   27   ESC   43   +   59   ;   75   K   91   [   107   k   123   {   12   FF   28   FS   44   ,   60   <   76   L   92     108   l   124   |   13   CR   29   GS   45   -­‐   61   =   77   M   93   ]   109   m   125   }   14   SO   30   RS   46   .   62   >   78   N   94   ^   110   n   126   ~   15   SI   31   US   47   /   63   ?   79   O   95   _   111   o   127   DEL  
  • 25. Digitalisointi   ì  reaalisen  /edon   muuEaminen  numeeriseen   muotoon   ì  muunnokset   ì  näyEeistys  (eli  samplaus)   ì  kvan/soin/  
  • 26. Näytteistys  
  • 27. Kvantisointi   ì  näytearvon  pyöristys  kokonaislukuun   ì  8  biQä:  [-­‐128,  +127]     ì  16  biQä:  [-­‐32768,  +32767]  
  • 28. Informaatioteoria   ì  entropia:  kuinka  monta   biQä  tarvitaan  väliEämään   /eto  yhdestä  symbolista   ì  suuri  entropia:   epävarmuus  symbolista   ì  pieni  entropia:  varmuus   symbolista   ì  käyEökohteita   ì  /edon  /ivistäminen   ì  salakirjoitus   ì  signaalin  prosessoin/   Claude  E.  Shannon  (1916–2001)  
  • 29. Shannonin  peli   ì  aakkosto:  {  A,  B,  C,  …,  Å,  Ä,  Ö,  _  }   ì  tuntematon  vies/   ì  arvaa  vies/n  seuraava  merkki   ì  kuinka  monta  yritystä  tarvitaan  kunkin  merkin   kohdalla?   ì  merkin  entropia  ko.  vies/ssä  
  • 30. Google-­‐runoutta   hEp://suomi.googlepoe/cs.com  
  • 31. Tiedon  tiivistäminen   Häviötön  /ivistys   ì  osa  informaa/osta  saaEaa   hävitä   ì  ei  informaa/on  häviötä   ì  10.0000001  ⇒  10.0000001     ì  10.000000001  ⇒  10     virhe   ì  vaihdetaan  koodaus   Häviöllinen  /ivistys   biQen  lkm  
  • 32. Sisäinen  ja  ulkoinen  tiivistys   Sisäinen  /ivistys   ì  muokkaa  pelkästään  vies/n   omaa  sisältöä   ì  ei  viiEaa  edellisiin  viesteihin     Ulkoinen  /ivistys   ì  muokkaa  vies/n  sisältöä   huomioiden  aikaisemmin   lähetetyt  vies/t   ì  delta-­‐informaa/o   ì  parempi  /ivistys   ì  riippuvuus  vies/en  välillä  
  • 33. 3.  Algoritmit   ì  
  • 34. Mikä  on  algoritmi?   ì  äärellinen,  askeleista   koostuva  vaihesarja,  joka   ratkaisee  /etyn   laskennallisen  ongelman   ì  käyEökohteita   ì  laskenta   ì  /edon  käsiEely   ì  automaaQnen  pääEely   Muḥammad  ibn  Mūsā  al-­‐Khwārizmī  (750–850)  
  • 35. Laskettavuuden  malli   ì  Turingin  kone  (1936)   ì  laskentalaiEeen   hypoteeQnen  malli     ì  Churchin-­‐Turingin  teesi     ì  Turingin  koneella   laskeEavissa  olevien   ongelmien  joukko  on   täsmälleen  sama  kuin   algoritmeilla  laskeEavien   ongelmien  joukko   Alan  Turing  (1912–54)  
  • 36. Turingin  kone   1.  nauha   ì  ì  2.  ääretön   koostuu  symboleista  (myös  tyhjä)   …   B   A   C   A   B   C   _   B   …   pää   ì  ì  symbolin  luku  ja  kirjoitus   siirtyy  vasemmalle  tai  oikealle   3.  /larekisteri   4.  transi/otaulu   ì  ì  ì  ì  syöte:  /la  ja  nykyinen  symboli   tulos:  poista  tai  kirjoita  symboli   tulos:  siirrä  päätä  (R,  L,  N)   tulos:  valitse  uusi  /la   q2   q1,  A  →  C,  R,  q3     q1,  B  →  A,  N,  q2     q2,  A  →  _,  R,  q4     q2,  B  →  B,  L,  q1     …  
  • 37. Ensimmäinen  ongelma:  laskettavuus   ì  millaisia  ongelmia  /etokoneilla  voidaan  ratkaista?   ì  esimerkki:  pysähtymisongelma   ì  ratkaise  pysähtyykö  syöEeeksi  annetun  ohjelman   suoritus  vai  ei?   ì  ei  ole  algoritmia,  joka  ratkaisisi  pysähtymisongelman   kaikilla  syöEeillä  
  • 38. Toinen  ongelma:  kompleksisuus   ì  algoritmien  analyysi  (paras,   pahin,  keskimääräinen)   ì  suoritusaika   ì  muis//la   ì  syöEeen  koko  n     ì  logaritminen:  O(log  n)   ì  lineaarinen:  O(n)   ì  neliöllinen:  O(n2)   ì  eksponen/aalinen:  O(cn)  
  • 39. Esimerkki:  lajittelu   menetelmä   paras   suoritusaika   keskimääräinen   huonoin   suoritusaika   suoritusaika   pikalajiEelu   n  log  n   n  log  n   n2   lisäyslajiEelu   n   n2   n2   kuplalajiEelu   n   n2   n2   bogolajiEelu   n   n  ·∙  n!   n  ·∙  n!  →  ∞        
  • 40. Esimerkki:  korttipakan  lajittelu   menetelmä   paras   suoritusaika   keskimääräinen   huonoin   suoritusaika   suoritusaika   pikalajiEelu   364   364   2704   lisäyslajiEelu   52   2704   2704   kuplalajiEelu   52   2704   2704   bogolajiEelu   52   8  ·∙  1067   →  ∞        
  • 41. Turingin  testi   ì  Alan  Turing  (1950):  voivatko   /etokoneet  ajatella?   ì  matkimispeli   ì  ihmistuomari  (C)   keskustelee  pääEeen   kauEa  sekä  /etokoneen   (A)  eEä  ihmisen  (B)  kanssa   ì  kaikki  osapuolet  ovat   erossa  toisistaan   ì  tuomarin  on  pääteEävä   kumpi  on  kumpi  
  • 42. Kuinka  toteuttaa  tietojenkäsittelyä   ì  
  • 43. 4.  Ohjelmointi   ì  
  • 44. Mitä  on  ohjelmointi?   ì  luo  toimintaohjeet  (eli  lähdekoodi)  joilla  /etokone   voi  suoriEaa  /etyn  tehtävän  tai  käyEäytyä  /etyllä   tavalla   ì  ohjelmoinnin  osa-­‐alueita   ì  suunniEelu   ì  toteutus   ì  testaus   ì  debuggaus   ì  ylläpito  
  • 45. Ensimmäinen  ohjelmoija   Ada  Lovelace  (1815–52)      
  • 46. Ohjelmointikielten  sukupolvet   1.  konekielet   2.  assembly-­‐kielet   3.  rakenteelliset  ohjelmoin/kielet   4.  korkean  tason  kielet  ja  kehitysympäristöt     5.  rajoite-­‐  ja  logiikkaohjelmoin/kielet  
  • 47. 1.  sukupolvi:  konekielet   ì  /etokoneen  keskusyksikön   suoriEamia  käskyjä   ì  sekvenssi  nollia  ja  ykkösiä   ì  ohjelmoin/  tapahtui   syöEämällä  konekäskyjä   binäärimuodossa  suoraan   paneelin  kauEa  
  • 48. 2.  sukupolvi:  assembly-­‐kielet   ì  ohjelmoijan  kirjoiteEavissa   ja  lueEavissa   ì  tekstuaalinen  esitystapa   konekielelle   ì  makrot   ì  ohjelma  käännetään   konekielelle   ì  riippuu  alustasta   ì  eri  prosessoreilla  eri   konekielet  
  • 49. 3.  sukupolvi:  rakenteelliset   ohjelmointikielet   ì  1950-­‐luvun  lopulla:  Fortran,   ALGOL,  COBOL   ì  ihmiskielen  kaltaisia   ì  syntaksi   ì  yhä  edelleen  suosiEuja:  C,   C#,  Java,  BASIC…   ì  käännetään  konekielelle  tai   ajetaan  tulkin  kauEa   ì  eivät  riipu  alustasta  
  • 50. 4.  sukupolvi:  korkean  tason  kielet  ja   kehitysympäristöt     ì  kooditon  ohjelmoin/   ì  ei  proseduraalinen   ì  raporQgeneraaEorikielet   ì  CASE-­‐työkalut   ì  /edonhallintatyökalut  
  • 51. 5.  sukupolvi:  rajoite-­‐  ja   logiikkaohjelmointikielet   ì  ongelma  kuvataan   rajoiEeilla   ì  deklara/ivinen  ohjelmoin/   ì  /etokone  ratkaisee   ongelman  ilman  ohjelmoijaa  
  • 52. Ohjelmistotuotanto   ì  ohjelmiston  tuotantovaiheita   ì  suunniEelu   ì  toteutus   ì  testaus   ì  julkaisu   ì  ylläpito   ì  vaihejakomalleja   ì  vesiputousmalli   ì  spiraalimalli   ì  keEerät  kehitysmenetelmät  
  • 53. Vesiputousmalli  
  • 54. Spiraalimalli  
  • 55. Ketterät  kehitysmenetelmät:  Scrum  
  • 56. 5.  Laitteisto   ì  
  • 57. von  Neumann  -­‐malli   John  von  Neumann  (1903–57)  
  • 58. Suoritin   ì  suoriEaa  konekielisiä  käskyjä   ì  operaa/ot     ì  aritmeeQset   ì  loogiset   ì  syöte/tulos     ì  osat   ì  laskentayksikkö   ì  valvontayksikkö   ì  rekisterit  
  • 59. Mooren  laki   ì  transistoreiden  määrä   integroidussa  piirissä   kaksinkertaistuu  n.  kahdessa   vuodessa   Gordon  Moore  (1929–  )  
  • 60. Muisti   ì  keskusmuis/   ì  RAM-­‐muis/     ì  hajasaan/muis/   ì  lukumuis/   ì  ROM-­‐muis/   ì  pysyväismuis/   ì  massamuis/   ì  magneeQset  nauhat  ja   levyt   ì  op/set  levyt  
  • 61. Mikä  ihmeen  “core”?  
  • 62. Apollo-­‐tietokoneohjelmien  arkeologiaa  
  • 63. 6.  Kommunikaatio   ì  
  • 64. Fyysinen  alusta   ì  resurssirajoitukset   ì  kaistanleveys   ì  latenssi   ì  verkkoliikenteen  prosessoin/tarve   ì  /edonsiirtotekniikat  ja  -­‐protokollat   ì  täsmälähetys,  ryhmälähetys,  yleislähetys   ì  internet-­‐protokolla  
  • 65. Verkkokommunikaatio   Latenssi            Kaistanleveys   Protokolla   LuoteEavuus  
  • 66. Looginen  alusta   ì  kommunikaa/oarkkitehtuuri   ì  vertaisverkko   ì  asiakas-­‐palvelin  -­‐verkko   ì  palvelinverkko   ì  /eto-­‐  ja  kontrolliarkkitehtuuri   ì  keskiteEy   ì  monisteEu   ì  hajauteEu  
  • 67. Kommunikaatioarkkitehtuuri   Vertaisverkko   Asiakas-­‐palvelin  -­‐verkko   Palvelinverkko  
  • 68. Tieto-­‐  ja  kontrolliarkkitehtuuri   ì  keskiteEy   ì  yksi  solmu  pitää  yllä  kaikkea  /etoa   ì  monisteEu   ì  kaikilla  solmuilla  on  oma  kopio  kaikesta  /edosta   ì  hajauteEu   ì  yhdellä  solmulla  on  osa  kaikesta  /edosta   ì  kaikki  solmut  yhdessä  sisältävät  kaiken  /edon  
  • 69. Verkon  erittäin  lyhyt  historia   ì  1969:  ARPANET   ì  1971:  sähköpos/,  FTP   ì  1982:  Internet   ì  1991:  Word  Wide  Web   ì  1994:  VoIP,  verkkokamera,  suoratoisto   ì  1998:  Google   ì  2001:  Wikipedia   ì  2004:  Facebook   ì  2006:  TwiEer  
  • 70. Jaetun  tilan  tekniikat   syntee:nen   lisäEy   todellisuus   virtuaali-­‐   todellisuus   fyysinen   todellisuus   etäläsnäolo   paikallinen   etäinen   keinotekoisuus   fyysinen   transportaa‚o  
  • 71. 7.  Yhteenveto   ì  
  • 72. Maailma   LaiEeisto   01001001   Symbolinen     esitysmuoto   Algoritmi