Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Ohjelmoinnin ABC

51eb230f66c064daafb36264398c0252?s=47 lindaliukas
April 16, 2015
51

Ohjelmoinnin ABC

51eb230f66c064daafb36264398c0252?s=128

lindaliukas

April 16, 2015
Tweet

Transcript

  1. Ohjelmoinnin ensiapuoppi (1.5 tunnissa!) 26.3.2015 Forssa

  2. Edith.

  3. (Kirjailija) (Kuvittaja) (Keskinkertainen koodari) Kertakaikkisen kauppis droppout!

  4. 5

  5. 6 Rails Girls First experience in software craftmanship.

  6. None
  7. None
  8. None
  9. None
  10. Lastenkirjailija, en pedagogi.

  11. 2016 opettamassa ohjelmointia? Voi apua

  12. None
  13. None
  14. Tänään käydän läpi pikavauhtia peruskoulun oppimäärä. Innostus & polku eteenpäin.

  15. 1-2 luokilla ohjelmointia opetetaan leikin avulla 3-6 luokilla tutustutaan visuaalisiin

    ohjelmointiympäristlihin ja opitaan käskemään tietokonetta ilman pelkoa vriheiden tekemisestä. 7-9 luokilla perehdytään johonkin oikeaan ohjelmointikieleen.
  16. Kuka vain voi selostaa taustalla olevaa teoriaa ja sitä, mistä

    noin periaatteessa on kyse laveerauksessa, yhtälön ratkaisemisessa, keskustelemisessa britin kanssa, lankun höyläämisessä tai keskityksen antamisessa. Silti todellinen osaaminen tulee vain oman yrityksen ja erehdyksen kautta.
  17. Kuinka moni ohjelmoinut aikaisemmin? Kuinka monta alakoulun opettajaa? Entä yläkoulun

    opettajia? Kuinka moni identifioi itsensä luonnontieteellis/ matemaattiseksi? Kuinka moni humanistis/ yhteiskuntatieteelliseksi?
  18. “En osaa.” “En ymmärrä.” “Ei kiinnosta.” “En voi oppia enää.”

    “Ei ole resursseja.”
  19. TVT, ATK, IT, e-taidot, digitaidot, digitaalinen lukutaito vs. ohjelmointi, koodaaminen

  20. Osa 1: Mitä ovat tietokoneet? (10 min.) Osa 2: Mitä

    on ohjelmointi? (10 min.) Osa 3: Miksi tämä on tärkeää? (10 min.) Osa 4: Ala-asteen 1-2. tunti (20 min.) Osa 5: Ala-asteen 3-6. tunti (20 min.) Osa 6: Yläasteen tunti (15 min.) Osa 7: Millainen on hyvä ohjelmoija (/opettaja?) (5 min.) 1-2 3-6 7-9
  21. Lyhyt luento Harjoitus Miten eteenpäin Kysymyksiä

  22. Osa 1 Mikä on tietokone? 1-2 3-6 7-9

  23. Lyhyt luento Harjoitus Miten eteenpäin Kysymyksiä

  24. None
  25. Datan prosessointi ja suorittamine n Muisti (Kaksi tehtävää!) Data Muokattu

    data Charles Babbage, Alan Turing, John von Neumann 1-2 3-6 7-9
  26. 1-2 3-6 7-9 • Tietokone vastaanottaa tietoa syöttölaitteen avulla (esim.

    näppäimistö, sensori, kosketusnäyttö.) • Tieto tallennetaan käsittelyä varten. • Käsitellään tieto ohjelman mukaisesti ja tallennetaan se. • Näytetään uusi tieto tulostuslaitteen kautta (esim. näyttö) 1-2 3-6 7-9 1945 John von Neumann suunnitteli tietokonearkkitehtuurin, jonka pohjalta tämän päivän tietokoneet rakennettiin. Kaikki perustuu samoihin prosesseihin:
  27. Control Unit Immediate access store Input Output Arithmetic Logic Unit

    CPU Program, Data and modified data 1-2 3-6 7-9 Siirräntä I/O eli tutummin
  28. Tietokone voi olla mitä vaan. Ja onkin. 1-2 3-6 7-9

    Hardware vs. software
  29. Kodeissa satoja tietokoneita. 1-2 3-6 7-9

  30. 1-2 3-6 7-9

  31. Lyhyt luento Harjoitus Miten eteenpäin Kysymyksiä 1-2 3-6 7-9

  32. Mikä näistä on tietokone? Miksi? 1-2 3-6 7-9

  33. Missä tietokoneet ovat hyviä? Missä ihmiset ovat hyviä? 1-2 3-6

    7-9
  34. Lyhyt luento Harjoitus Miten eteenpäin Kysymyksiä 1-2 3-6 7-9

  35. http://cse4k12.org/ http://www.nand2tetris.org/ 1-2 3-6 7-9 Lisää:

  36. Lyhyt luento Harjoitus Miten eteenpäin Kysymyksiä 1-2 3-6 7-9

  37. 38 Osa 2 Mitä on ohjelmointi? 1-2 3-6 7-9

  38. Lyhyt luento Harjoitus Miten eteenpäin Kysymyksiä 1-2 3-6 7-9

  39. Ohjelmointi on on käskyjen antamista tietokoneelle. Miten tietokoneelle sitten pitää

    puhua? 1-2 3-6 7-9
  40. A = 0100 0001 1-2 3-6 7-9

  41. 42 1100101010010000111 Ohjelmoija ei kuitenkaan kirjoita ykkösiä ja nollia. Hän

    naputtelee hitusen normaaliin puhekieleen verrattavissa olevia komentoja, jotka kone ymmärtää, koska ne on merkitty tarkalleen yhteisesti sovitulla tavalla. 1-2 3-6 7-9
  42. 43 Millaisia ohjeita? Täsmällisiä, oikeassa järjestyksessä, ilman kirjoitusvirheitä. Tarpeen tullen

    muutettavissa olevia, katettava kaikki mahdolliset tilanteet.
  43. 44 1-2 3-6 7-9

  44. 45 1-2 3-6 7-9

  45. 41 Millaista ohjelmointi on nykyään? Jättiläisten harteilla. Kielet ovat kehittyneet

    kuin talonrakennustarvikkeet: jos joskus on pitänyt aloittaa valamalla omat tiilensä, nyt taloja rakennetaan valmiista elementeistä.
  46. 47 1-2 3-6 7-9 Ohjelmoinnillinen ajattelu? Alan Turing & The

    Child Machine 1950s Twenty things to do with a Computer (Seumour Papert & Cynthia Solomon) 1970s Personal computer for children of all ages (Alan Kay) 1970s
  47. 1. Ongelman purkaminen osiin. 2. Kaavojen tunnistaminen 3. Algoritmien luominen

    4. Ratkaisujen yleistäminen ja automatisointi. Ohjelmoinnillinen ajattelu 1-2 3-6 7-9
  48. Ongelman purkaminen osiin Ajo-ohjeet Helsinkiin. Luvun 273 purkaminen osiin. Reseptin

    purkaminen. Verkkopankin käyttöliittymä.
  49. Lähde: BBC Computing

  50. Lähde: BBC Computing 1-2 3-6 7-9

  51. Algoritmien luominen Algoritmilla tarkoitetaan kuvausta jonkin tehtävän suorittamiseksi tarvittavista toimenpiteistä.

    
 Respetin kirjoittaminen. 1-2 3-6 7-9
  52. 1-2 3-6 7-9 Lähde: BBC Computing

  53. 1-2 3-6 7-9 Lähde: BBC Computing

  54. 1-2 3-6 7-9 Lähde: BBC Computing

  55. 1-2 3-6 7-9 Lähde: BBC Computing

  56. Kaavojen tunnistaminen Itkevä vauva saa tutin. Märkä puu syttyy huonommin.

    Kone ratkaisee ongelman kaavalla: se toimii aina tarkalleen ja täydellisesti samalla tavalla suorituskerrasta toiseen. Siksi kerran oivallettua kaavaa voidaan soveltaa koneella yhä uudestaan oikein. 1-2 3-6 7-9
  57. Lähde: BBC Computing 1-2 3-6 7-9

  58. Ratkaisun yleistäminen ja automatisointi Ohjelmoinnissa ongelmille haetaan hyvin usein yleistettyjä

    ratkaisuja. Kun ohjelman halutaan piirtävän näytölle suorakaiteen, on järkevää kirjoittaa siten, että se osaa piirtää minkä tahansa kokoisen suorakaiteen riippuen siitä, mitkä mitat käyttäjä ohjelmaan syöttää. Matematiikan toisen asteen yhtälön ratkaisukaava. 1-2 3-6 7-9
  59. Lähde: BBC Computing

  60. Lyhyt luento Harjoitus Miten eteenpäin Kysymyksiä 1-2 3-6 7-9

  61. None
  62. Anna vieressä istuvalle ohjeet siitä, miten hampaat pestään.

  63. Lyhyt luento Harjoitus Miten eteenpäin Kysymyksiä 1-2 3-6 7-9

  64. http://barefootcas.org.uk/ BBC Bytesize http://www.bbc.co.uk/education/subjects/zyhbwmn

  65. Lyhyt luento Harjoitus Miten eteenpäin Kysymyksiä 1-2 3-6 7-9

  66. 1-2 3-6 7-9 67 Osa 3 Miksi kaikki tämä on

    tärkeää?
  67. Lyhyt luento Harjoitus Miten eteenpäin Kysymyksiä 1-2 3-6 7-9

  68. Yhä suuremman osan maailmasta rakentavat he, jotka osaavat luoda taidetta,

    tiedettä tai vaikkapa älypuhelinsovellluksia tietokoneen avulla. Siksi lapsilla ja nuorilla on oikeus oppia tietokoneista. 1-2 3-6 7-9
  69. • Mitä ohjelmoija luo? 66 1-2 3-6 7-9

  70. 67 1-2 3-6 7-9

  71. Yhä suuremman osan maailmasta rakentavat he, jotka osaavat luoda taidetta,

    tiedettä tai vaikkapa älypuhelinsovellluksia tietokoneen avulla. Siksi lapsilla ja nuorilla on oikeus oppia tietokoneista. Kaikki yritykset ovat softayrityksiä. Softan skaalaetu. 2020 80% aikuisista on älypuhelin 1-2 3-6 7-9
  72. ..eikä yhden ihmisen tuottavuudella ei ole rajoja. Whatsapp 19 miljardia,

    30 insinööriä Minecraft 2,5 miljardia, 40 työntekijää Supercell 1,5 miljardia (50%), 90 työntekijää (Nokia, 7,5 miljardia, ?? työntekijää) 1-2 3-6 7-9
  73. Peruskoulussa opetetaan biologiaa, vaikka kaikista ei haluta biologeja. Samalla tavalla

    kaikista oppilaista ei pidä tulla koodareita - mutta kaikilla pitää olla mahdollisuus innostua siitä, mitä ohjelmoimalla voi rakentaa. 2000-luvulla ohjelmointikielen perusteiden ymmärtäminen on englannin osaamisen tapaista yleissivistystä. 1-2 3-6 7-9
  74. Lyhyt luento Harjoitus Miten eteenpäin Kysymyksiä 1-2 3-6 7-9

  75. Miten ohjelmointi voi muuttaa sinun oppiainettasi (tiede/taide/työelämä)? (Biologia, maantieto, kuvis,

    käsityö, äidinkieli..) Minkälaisia uusia ammatteja syntyy? Miten ohjelmointia voisi tuoda osaksi nykyistä opiskelua? 1-2 3-6 7-9
  76. Lyhyt luento Harjoitus Miten eteenpäin Kysymyksiä 1-2 3-6 7-9

  77. None
  78. Lyhyt luento Harjoitus Miten eteenpäin Kysymyksiä 1-2 3-6 7-9

  79. 3-6 7-9 1-2 80 Osa 4 Ala-asteen 1-2. luokan tunti

  80. Lyhyt luento Harjoitus Miten eteenpäin Kysymyksiä 3-6 7-9 1-2

  81. 1. Ongelman purkaminen osiin. 2. Kaavojen tunnistaminen 3. Algoritmien luominen

    4. Ratkaisujen yleistäminen ja automatisointi. Ohjelmoinnillinen ajattelu 3-6 7-9 1-2
  82. Tietokone, tee mulle leipä. 3-6 7-9 1-2

  83. Kun tietokone lopulta osaa tehdä yhden leivän, se tekee sen

    täydellisesti. Joka kerta. Toisin kuin kuusivuotias tai edes aikuinen, yhden voileivän tehtyään tietokone voi tehdä tuhansia ja taas tuhansia leipiä. Se ei koskaan kyllästy. Tietokone on kärsivällinen ja tarkka, varma ja nopea. Siksi se on loistava työkumppani tekemään asioita ihmisen ohjeiden perusteella. 3-6 7-9 1-2
  84. Valmiin toiminnallisuuden sisältävä kieli, esimerkiksi JavaScript tai Ruby Tee voileipä.

    Keskitason ohjeita vaativa kieli, esimerkiksi C Kävele kaapille. Ota kaapista leipäpussi. Aseta leivät pussista pöydälle. Voitele leipä. Hyvin yksityiskohtaiset ohjeet vaativa kieli, esimerkiksi konekieli Assembly Ota askelia kohtisuoraan, kunnes saavut keittiön kaapille. Kun saavut kädenmitan päähän kaapista, pysähdy. Nosta vasen kätesi. Avaa kaapiston vasen ovi tasan 90 asteen kulmaan kaapin alareunaan nähden. Käyttäen oikeaa kättäsi tartu ylimmällä hyllyllä olevaan leipäpussiin. Siirrä pussi pöydälle. Jos pussissa on suljin, poista se. Tartu pussissa olevaan ensimmäiseen leipään. Ota leipä pussista ulos. Laske leipä pöydälle. ... 3-6 7-9 1-2
  85. Lähde: code.org 3-6 7-9 1-2

  86. Lähde: code.org 3-6 7-9 1-2

  87. Lyhyt luento Harjoitus Miten eteenpäin Kysymyksiä 1-2 3-6 7-9 3-6

    7-9 1-2
  88. Lähde: code.org 3-6 7-9 1-2

  89. Lähde: code.org 3-6 7-9 1-2

  90. Lyhyt luento Harjoitus Miten eteenpäin Kysymyksiä 3-6 7-9 1-2

  91. • csunplugged.org

  92. None
  93. Lyhyt luento Harjoitus Miten eteenpäin Kysymyksiä 1-2 3-6 7-9

  94. 1-2 7-9 3-6 95 Osa 5 Ala-asteen 3-6. luokan tunti

  95. Lyhyt luento Harjoitus Miten eteenpäin Kysymyksiä 1-2 7-9 3-6

  96. None
  97. None
  98. Lyhyt luento Harjoitus Miten eteenpäin Kysymyksiä 1-2 7-9 3-6

  99. None
  100. http://studio.code.org/hoc/1 1-2 7-9 3-6

  101. Lyhyt luento Harjoitus Miten eteenpäin Kysymyksiä 1-2 7-9 3-6

  102. http://linkki.cs.helsinki.fi/materiaali

  103. Lyhyt luento Harjoitus Miten eteenpäin Kysymyksiä 1-2 7-9 3-6

  104. 1-2 3-6 7-9 105 Osa 6 Yläasteen 7-9. luokan tunti

  105. Lyhyt luento Harjoitus Miten eteenpäin Kysymyksiä 1-2 3-6 7-9

  106. 107 Tavoite? Key Stage 2 • design, write and debug

    programs that accomplish specific goals, including controlling or simulating physical systems; solve problems by decomposing them into smaller parts • design programs that accomplish specific goals • write programs that accomplish specific goals • debug programs to ensure they accomplish specific goals • control physical systems • simulate physical systems • solve problems by decomposing them into smaller parts • use sequence, selection, and repetition in programs; work with variables and various forms of input and output • use sequence in programs • use selection in programs • use repetition in programs • work with variables • work with various forms of input • work with various forms of output • use logical reasoning to explain how some simple algorithms work and to detect and correct errors in algorithms and programs • use logical reasoning to explain how some simple algorithms work • use logical reasoning to detect and correct errors in algorithms • use logical reasoning to detect and correct errors in programs • understand computer networks including the internet; how they can provide multiple services, such as the world wide web • understand computer networks including the internet • multiple services provided by networks and the internet, such as the world wide web • appreciate how results are selected and ranked • appreciate how results are selected • appreciate how results are ranked 1-2 3-6 7-9
  107. Curriculum of Code Decomposition Patterns Abstraction Algorithms Repetition Sequence Selection

    Variables Data Debugging Collaboration Functions
  108. Oppilaan innostuksen ja kiinnostuksen herättäminen ja altistaminen. Ohjaaminen, ei opettaminen.

    1-2 3-6 7-9
  109. Internet on mun Alma Mater. 1-2 3-6 7-9

  110. 1-2 3-6 7-9

  111. 1-2 3-6 7-9

  112. Lyhyt luento Harjoitus Miten eteenpäin Kysymyksiä 1-2 3-6 7-9

  113. None
  114. http://www.codecademy.com/en/tracks/javascript 1-2 3-6 7-9

  115. Lyhyt luento Harjoitus Miten eteenpäin Kysymyksiä 1-2 3-6 7-9

  116. 1-2 3-6 7-9 Osa 7 Millaisia tietoja, taitoja ja asenteita

    on hyvällä ohjelmoijalla
  117. Millainen on hyvä ohjelmoija? Halu ja kyky oppia uutta. Ohjelmointi

    on toisaalta käsityötä, toisaalta taidetta ja toisaalta ongelmanratkaisua. Harvoin valmis. Kunnianhimo. Koodi kirjoitetaan muokattavaksi. Tarkkuus.Tarkkuus kehittyy kuitenkin tekemisen kautta. Luovuus. Ohjelmoinnissa samaan lopputulokseen voi yleensä päätyä kymmenillä eri tavoilla, ja näistä tavoista useakin erilainen voi olla vieläpä täysin järkevä. Yhteistyökyky. Ohjelmoija tekee töitä tiimissä. 1-2 3-6 7-9
  118. Oppilaat pareiksi. Toinen ohjaa ja toinen ajaa. 1-2 3-6 7-9

  119. Internet on inhimillisyyttä. Computer (km-pytr) n. person who makes calculations

    or computations; a calculator, a reckoner; spec. a person employed to make calculations in an observatory, in surveying. Technology (from Greek τέχνη) Techne, "art, skill, cunning of hand"; and -λογία, -logia[1]. Techniques, skills and competencies alongside the tools needed to do the job. Agriculture is a technology; democracy is a technology.
  120. 1. Roolit ja status 2. Yhteinen tieto - sisältö muuttuu

    vuorovaikutuksessa 3. Osallistumisen muodot 4. Palaute ja yleisö 1-2 3-6 7-9
  121. Me emme ole yksin. 1-2 3-6 7-9

  122. • www.naace.co.uk/naacecurriculum • computingatschool.org.uk/index.php?id=cacfs • csta.acm.org/Curriculum/sub/K12Standards.html 1-2 3-6 7-9

  123. 1-2 3-6 7-9 Osa 8 Lopuksi

  124. Jos JavaScript on uusi lingua franca, tarvitsemme kielioppituntien sijaan runonlausuntaa.

    1-2 3-6 7-9
  125. En ole kirjailija, kuvittaja, enkä oikein ohjelmoijakaan. 1-2 3-6 7-9

  126. 1-2 3-6 7-9

  127. None
  128. 1-2 3-6 7-9

  129. 1-2 3-6 7-9

  130. 1-2 3-6 7-9

  131. 1-2 3-6 7-9

  132. 1-2 3-6 7-9

  133. “We do only one thing, but we do it really

    well. The sum of the parts is bigger that way.” 1-2 3-6 7-9
  134. 1-2 3-6 7-9

  135. 1-2 3-6 7-9

  136. 1-2 3-6 7-9

  137. ..20% Suomen vuosittaisesta kirjallisuusviennistä. 1-2 3-6 7-9

  138. None
  139. None
  140. None
  141. None
  142. None
  143. None
  144. Curriculum of Code Decomposition Patterns Abstraction Algorithms Repetition Sequence Selection

    Variables Data Debugging Collaboration Functions
  145. Curriculum of Code Decomposition Patterns Abstraction Algorithms Repetition Sequence Selection

    Variables Data Debugging Collaboration Functions
  146. None
  147. Curriculum of Code Decomposition Patterns Abstraction Algorithms Repetition Sequence Selection

    Variables Data Debugging Collaboration Functions 1-2 3-6 7-9
  148. 1-2 3-6 7-9

  149. Curriculum of Code Decomposition Patterns Abstraction Algorithms Repetition Sequence Selection

    Variables Data Debugging Collaboration Functions 1-2 3-6 7-9
  150. 1-2 3-6 7-9

  151. Uuden aloittamisen hinta on lähes nolla. 1-2 3-6 7-9

  152. 1-2 3-6 7-9

  153. None
  154. None
  155. None
  156. None
  157. None
  158. Learning to program teaches you think. Computer science is a

    liberal art. - Steve Jobs
  159. Paras tapa kapinoida on tehdä jotain.

  160. None