Näytetään tekstit, joissa on tunniste Tietokone. Näytä kaikki tekstit
Näytetään tekstit, joissa on tunniste Tietokone. Näytä kaikki tekstit

perjantai 9. joulukuuta 2016

Tietokone, osa 9: Suuri todellisuus

Tietokonesarjamme päättyy tähän osaan. Matkamme alkoi pienimmistä osista, joten se on hyvä päättää kaikkein suurimpiin rakennelmiin. Mikä ihmeellisintä, pienikin on yllättävän suurta. Tietojenkäsittelyssä usein hyödyllisimmät ideat ovat periaatteeltaan yksinkertaisimpia, kuten viime kerralla nähtiin erityyppisen tiedon muodossa.

keskiviikko 7. joulukuuta 2016

Tietokone, osa 8: Tekstiä ja kuvia

Viime kerralla rakenneltiin ohjelmia palikoista. Nyt on hyvä hetki lisätä lelulaatikkoon ääntä, kuvaa ja reaalilukuja ennen kuin sarja pääsee loppumaan. Siispä kohti kissavideoita!

maanantai 5. joulukuuta 2016

Tietokone, osa 7: Funktiot

Perjantain ohjelmointitekstissä esitettiin itseisarvofunktion toteutus useammalla ohjelmointikielellä. Funktion määritelmä puolestaan jäi vielä vajaaksi, muuten kuin että se muistuttaa matemaattista vastinettaan. Matemaattinen määritelmä on seuraava:

Funktio on sääntö, joka liittää jokaiseen määrittelyjoukon $A$ alkioon täsmälleen yhden maalijoukon $B$ alkion.

Toisin sanoen funktio ottaa vastaan joitakin parametreja ja antaa niiden pohjalta tuloksen. Muunnetaan tämä osaksi ohjelmaa.

perjantai 2. joulukuuta 2016

Tietokone, osa 6: Ohjelmointi

Viimekertaisen konekieliharjoituksen jälkeen on hyvä siirtyä oikeisiin ohjelmointikieliin. Pieni määrittely lienee paikallaan: ohjelmointikieli on keinotekoinen kieli, jossa on (yleensä) yksinkertainen ja kiinteä kielioppi sekä pieni sanasto. Kielestä riippuen koodi on lähempänä matematiikkaa tai englantia. Kääntäjäksi kutsuttu ohjelma muuntaa koodin konekieliseksi esitykseksi. Ohjelmointikielellä on kaksoistarkoitus olla selkeä sekä koneelle että ihmiselle, ja kiitos ihmisten luovuuden, niitä on ehditty luoda useampia tuhansia, hieman eri tarkoituksiin ja eri ajatusmalleja kannustaviksi.

Tässä osassa esittelen muutaman pääsuuntauksen historian varrelta, siinä missä niitä itse osaan. Loppuun olen lisännyt linkin Code.org -sivuston tunnin mittaiseen ohjelmointitehtävään, joka on aika loistavan oloinen ja visuaalinen tapa tutustua periaatteisiin itse. Aloitetaan!

keskiviikko 30. marraskuuta 2016

Tietokone, osa 5: Konekieli

Nyt on aika pistää edellisellä kerralla esitelty prosessori tekemään hyödyllistä työtä. Prosessori suorittaa yksinkertaisia käskyjä, jotka on esitetty "konekielellä" — ne on niin ikään esitetty lukuina, joille on annettu tietty merkitys.

Konekieliohjelmointia tehdään nykyään erittäin vähän, koska se on monimutkaista ja vaatii syvällistä ymmärrystä koneen toiminnasta. On paljon järkevämpää käyttää työkaluja, jotka ovat luettavampia ihmiselle ja jotka tuottavat parempaa konekieltä kuin tavalliset kuolevaiset. Konekieli on varattu käyttöjärjestelmien ja ohjelmointikielten kehittäjille — sekä meille, jotka syvennymme prosessorin toimintaan.

maanantai 28. marraskuuta 2016

Tietokone, osa 4: Mitä tietokoneeseen kuuluu?

(NASA:n insinöörejä IBM 7094 -tietokoneen ääressä vuonna 1966.)

Viime viikolla kävimme läpi matemaattisia perusteita, joiden päälle tietokone rakentuu. Tällä viikolla on aika pistää ne hyötykäyttöön. Tässä osassa käymme (pintapuolisesti) läpi tietokoneen historian ja perusosat, jonka jälkeen siirrymme ohjelmoimaan koneen omalla kielellä. Viikon lopuksi siirrymme ihmisen luettavaksi kelpaaviin kieliin. Jatketaan!

perjantai 25. marraskuuta 2016

Tietokone, osa 3: Negatiiviset luvut

Viime osan lopuksi vihjasin, että ympäripyörähtävät luvut käyttäytyvät hyvin kummallisesti. Auton matkamittari pyörähtää miljoonan kilometrin sijaan nollaksi, mutta sen ei odoteta pystyvän esittämään negatiivisia kilometrejä. Tietokoneessa miinusmerkit ovat kuitenkin välttämättömiä, ja siksi $127+1$ voikin olla $-128$!

keskiviikko 23. marraskuuta 2016

Tietokone, osa 2: Yhteenlasku

Edellisellä kerralla aloitimme pohjalta tutustumalla loogisiin piireihin ja binäärilukuihin. Tänään siirrymme seuraavalle tasolle: tietokoneemme alkaa käsitellä luonnollisia lukuja ja laskea niitä yhteen.

maanantai 21. marraskuuta 2016

Rakennetaan tietokone!

Olen silloin tällöin ollut tilanteessa, jossa päädyn selittämään tietokoneen toimintaperiaatetta (normaali ruokatunti Clasussa!). Tietokoneita on kaikkialla, mutta ne ovat eräänlaisia mustia laatikoita, joiden toimintaperiaate on mystinen salatiede. Näin ei ole. Tietokone on pohjimmiltaan äärimmäisen yksinkertainen laite, ja tämä sarja tulee esittelemään sen alkeista ylöspäin.

Matkamme jakautuu yhdeksään osaan kolmen viikon varrella. Tällä viikolla käydään läpi perusteita, joista matematiikka ja logiikka tietokoneen sisällä saavat alkunsa. Ensi viikolla näistä kootaan yksinkertainen tietokone, ja viimeisellä viikolla palasista muodostetaan jokaisen tuntema kokonaisuus. Yritän myös sisällyttää jokaiseen osaan pari tehtävää niille, joilla on aikaa ja kiinnostusta. Viikot ovat jokseenkin erillisiä, joten jokaiselle pitäisi löytyä jotain, toivottavasti.

Jotta sarja pysyisi mielekkäänä, käsittelemme erittäin yksinkertaistettua versiota tietokoneesta. Käsittelemme ohjelmointiakin varsin pintapuolisesti — algoritmien perusteista saisi kasattua toisen samanlaisen sarjan. (Josta voin olla kiinnostunut, jos sille on lukijoita!) Tämä ei opeta rakentamaan tietokonetta tai ymmärtämään Exceliä, mutta ehkä se raottaa hieman verhoa. Aloitetaan!