Laskennan teoriasta. Antti-Juhani Kaijanaho. 11. helmikuuta 2016

Samankaltaiset tiedostot
TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 26. kesäkuuta 2013

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. lokakuuta 2016

Täydentäviä muistiinpanoja laskennan rajoista

formalismeja TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho 15. joulukuuta 2015 TIETOTEKNIIKAN LAITOS

Aloitus. TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 14. maaliskuuta 2011 TIETOTEKNIIKAN LAITOS. Aloitus.

Lisää pysähtymisaiheisia ongelmia

Turingin koneet. Sisällys. Aluksi. Turingin koneet. Turingin teesi. Aluksi. Turingin koneet. Turingin teesi

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 10. joulukuuta 2015 TIETOTEKNIIKAN LAITOS.

Todistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia, niin A on rekursiivinen.

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 8. syyskuuta 2016

Säännölliset kielet. Sisällys. Säännölliset kielet. Säännölliset operaattorit. Säännölliset kielet

Reaaliarvoisen yhden muuttujan funktion raja arvo LaMa 1U syksyllä 2011

Matemaattisten työvälineiden täydentäviä muistiinpanoja

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 8. maaliskuuta 2012

Chomskyn hierarkia. tyyppi 0 on juuri esitelty (ja esitellään kohta lisää) tyypit 2 ja 3 kurssilla Ohjelmoinnin ja laskennan perusmallit

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 6. maaliskuuta 2012 TIETOTEKNIIKAN LAITOS.

Tietojenkäsittelyteorian alkeet, osa 2

Johdatus matematiikkaan

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 20. kesäkuuta 2013 TIETOTEKNIIKAN LAITOS.

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011

Onko kuvaukset injektioita? Ovatko ne surjektioita? Bijektioita?

Rekursiiviset palautukset [HMU 9.3.1]

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 29. toukokuuta 2013

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2015

5.3 Ratkeavia ongelmia

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 16. toukokuuta 2011

Aloitus. TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 20. toukokuuta 2013 TIETOTEKNIIKAN LAITOS. Aloitus. Meta.

DFA:n käyttäytyminen ja säännölliset kielet

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä

Matematiikan tukikurssi

Johdatus diskreettiin matematiikkaan (syksy 2009) Harjoitus 3, ratkaisuja Janne Korhonen

(0 1) 010(0 1) Koska kieli on yksinkertainen, muodostetaan sen tunnistava epädeterministinen q 0 q 1 q 2 q3

Todistusmenetelmiä Miksi pitää todistaa?

Matematiikan johdantokurssi, syksy 2016 Harjoitus 11, ratkaisuista

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Vaihtoehtoinen tapa määritellä funktioita f : N R on

4 Matemaattinen induktio

Rekursiiviset tyypit

Matematiikan tukikurssi

Matematiikan tukikurssi, kurssikerta 1

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 16. maaliskuuta 2011

Laskennan rajoja. Sisällys. Meta. Palataan torstaihin. Ratkeavuus. Meta. Universaalikoneet. Palataan torstaihin. Ratkeavuus.

Rekursio. Funktio f : N R määritellään yleensä antamalla lauseke funktion arvolle f (n). Vaihtoehtoinen tapa määritellä funktioita f : N R on

Entscheidungsproblem

2.1. Tehtävänä on osoittaa induktiolla, että kaikille n N pätee n = 1 n(n + 1). (1)

Säännöllisen kielen tunnistavat Turingin koneet

Chomskyn hierarkia ja yhteysherkät kieliopit

Johdatus matematiikkaan

Logiikka 1/5 Sisältö ESITIEDOT:

Joukot. Georg Cantor ( )

Matematiikan tukikurssi, kurssikerta 2

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 19. syyskuuta 2016

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 19. tammikuuta 2012

Johdatus matemaattiseen päättelyyn

Suhteellisuusteorian vajavuudesta

Matematiikan tukikurssi

TIEA341 Funktio-ohjelmointi 1, kevät 2008

Turingin koneet. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 7. joulukuuta 2015 TIETOTEKNIIKAN LAITOS.

Johdatus matematiikkaan

Injektio (1/3) Funktio f on injektio, joss. f (x 1 ) = f (x 2 ) x 1 = x 2 x 1, x 2 D(f )

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 20. lokakuuta 2016

Kielenä ilmaisten Hilbertin kymmenes ongelma on D = { p p on polynomi, jolla on kokonaislukujuuri }

Ratkaisu: (b) A = x 0 (R(x 0 ) x 1 ( Q(x 1 ) (S(x 0, x 1 ) S(x 1, x 1 )))).

Johdatus matematiikkaan

Algoritmin määritelmä [Sipser luku 3.3]

MAT Laaja Matematiikka 1U. Hyviä tenttikysymyksiä T3 Matemaattinen induktio

Laskettavuusteoria: produktiivisuus

vaihtoehtoja TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 13. lokakuuta 2016 TIETOTEKNIIKAN LAITOS

Seurauksia. Seuraus. Seuraus. Jos asteen n polynomilla P on n erisuurta nollakohtaa x 1, x 2,..., x n, niin P on muotoa

MS-A010{3,4} (ELEC*) Differentiaali- ja integraalilaskenta 1 Luento 3: Jatkuvuus

Matematiikan peruskurssi 2

Miten osoitetaan joukot samoiksi?

Entscheidungsproblem

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 26. tammikuuta 2012

Approbatur 3, demo 1, ratkaisut A sanoo: Vähintään yksi meistä on retku. Tehtävänä on päätellä, mitä tyyppiä A ja B ovat.

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I

Matematiikan ja tilastotieteen laitos Reaalianalyysi I Harjoitus Malliratkaisut (Sauli Lindberg)

Kuvauksista ja relaatioista. Jonna Makkonen Ilari Vallivaara

jäsentäminen TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho 26. marraskuuta 2015 TIETOTEKNIIKAN LAITOS

Johdatus matemaattiseen päättelyyn

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 10. kesäkuuta 2013

Matematiikan peruskurssi 2

Johdatus diskreettiin matematiikkaan Harjoitus 5, Ratkaise rekursioyhtälö

Luonnollisten lukujen ja kokonaislukujen määritteleminen

Laskennan teoria

1. Primitiivirekursiiviset funktiot muodostetaan kolmesta perusfunktiosta käyttäen. succ(n) = n + 1

Talousmatematiikan perusteet ORMS.1030

1 Määrittelyjä ja aputuloksia

missä on myös käytetty monisteen kaavaa 12. Pistä perustelut kohdilleen!

Muita vaativuusluokkia

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

DIFFERENTIAALI- JA INTEGRAALILASKENTA I.1. Ritva Hurri-Syrjänen/Syksy 1999/Luennot 6. FUNKTION JATKUVUUS

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. marraskuuta 2015

Johdatus diskreettiin matematiikkaan Harjoitus 2, Osoita että A on hyvin määritelty. Tee tämä osoittamalla

1. Esitä rekursiivinen määritelmä lukujonolle

Transkriptio:

Laskennan teoriasta Antti-Juhani Kaijanaho 11. helmikuuta 2016 Tarina alkaa vuodesta 1687, jolloin Isaac Newton (1642 1727) julkaisi kirjan Philosophiae Naturalis Principa Mathematica (suomeksi Luonnonfilosofian matemaattiset perusteet). Kirja loi fysiikalle matemaattisen pohjan, jota nykyäänkin käytetään valtaosassa sovelluksista. ISS-avaruusasemalle tulevien ja sieltä lähtevien astronauttien matkan suunnittelu perustuu näiden lakien soveltamiseen; samoin moni tietokonepeli perustuu fysiikan lakien mallittamiseen. 1 Laskijat Edmond Halley (1656 1742), kuten moni muukin, teki vuonna 1682 joukon havaintomittauksia tuona vuonna näkyneestä komeetasta. Seuraavien vuosikymmenten aikana hän yritti soveltaa Newtonin teoriaa tekemiinsä havaintoiin. Lopulta hän laskelmiensa perusteella ennusti, että tämä nimenomainen komeetta palaisi taivaalle vuoden 1758 paikkeilla. Kun tuo Halleyn ennustama komeetan paluu lähestyi, Alexis-Claude Clairaut (1713 1765) yhdessä Joseph-Jérôme Le Français de Lalanden (1732 1807) ja Nicole-Reine Étable de la Brière Lepauten (1723 1788) kanssa pyrki laskemaan tarkemman ennusteen komeetan paluupäivälle. Ideana oli ottaa huomioon planeettojen vaikutus komeetan kiertorataan, mikä vaati tarkkoja ja työläitä laskutoimituksia. Laskenta kesti kolmen hengen yhteistyönä puolisen vuotta ja tuotti varsin lähelle osuneen arvauksen. Useiden ihmisten yhteistyönä tehty laskenta yleistyi ja laskentatehtävät laajenivat seuraavien kahdensadan vuoden aikana. Nämä laskijat, englanniksi computers, laativat mm. merenkävijöiden navigoinnissa käyttämiä almanakkoja sekä kasvi- ja eläintieteellisiä tilastoja. 1900-luvun alkuvuosikymmeninä laskijoiden tehtävät olivat sotilasväritteisiä, esimerkiksi lentokoneiden suun- Luento 10.2.2016 kurssilla TIEP115 Johdatus tietotekniikkaan 1

nitteluun vaadittujen laskelmien ja tykkien tähtäämisessä käytettyjen ballististen taulukoiden laatiminen. 2 Matematiikan haurastuminen Newtonin Principia perustui aivan uuteen matematiikan alaan, jota nykyään kutsutaan reaalianalyysiksi. Liikettä kuvattiin ajan funktiona, ja tämän funktion käyttäytymistä yksittäisen pisteen ympärillä tutkittiin infinitesimaaleilla. Näin funktiosta voitiin laskea esimerkiksi derivaattoja ja integraaleja. Menetelmällisesti tämä oli kuitenkin aika huteralla pohjalla, kunnes vasta 1800-luvulla moderni ɛδ-metodologia keksittiin. Menetelmällinen huteruus alkoi 1800-luvulla vaivata matematiikkaa yleisemminkin. Georg Cantor (1845 1918) kohahdutti matemaatikkoja todistamalla, että varsin luonnollisella joukon koon määritelmällä on olemassa erikokoisia äärettömyyksiä. Määritellään, että kaksi joukkoa A ja B ovat yhtä mahtavat, jos on olemassa injektiot f : A B ja g : B A. Se, että ne ovat injektioita, tarkoittaa että jos f(x) = f(y) tai jos g(x) = g(y), niin täytyy olla x = y. Tarkastellaan nyt merkeistä 0 ja 1 muodostettujen äärettömän pitkien jonojen joukkoa B = {0, 1} ja koetetaan laatia kuvaus f : N B. Esimerkiksi näin: 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 2 0 1 0 0 0 0 0 3 1 1 0 0 0 0 0 4 0 0 1 0 0 0 0 5 1 0 1 0 0 0 0 6 0 1 1 0 0 0 0........... Tässä jokainen luonnollinen luku yhdistetään sen omaan binääriesitykseen (vähiten merkitsevä bitti alussa). Huomaa, että näin diagonaalilla on jono 0000000. Jos olisin yhdistänyt luvut jotenkin muuten jonoihin, olisi diagonaalilla ehkä jotain muuta; merkitään yleisesti diagonaalia d 1 d 2 d 3 d 4, missä d i {0, 1} kaikilla i N. Muodostetaan nyt uusi jono vaihtamalla diagonaalilla oleva merkki päinvastaiseksi (merkitään tätä d i kullakin d i ); ylläolevassa tapauksessa uusi jono on siten 111111 ja yleisesti d 1 d2 d3 d4. Onko tämä jono luettelossa? Ei voi olla, sillä jos se olisi esimerkiksi luvun k kohdalla, tulisi diagonaalilla olla d k mutta siinä onkin d k. Niinpä {0, 1} on mahtavampi joukko kuin N! Tämä Cantorin diagonaaliargumentti oli hyvin hämmentävä. 2

Varsin pian joukko-opin kehittyessä törmätään paradokseihin. Luonnollista olisi ajatella, että jokaiselle joukkojen ominaisuudelle P ( ) olisi olemassa vastaava joukko { x P (x) }. Esimerkiksi voisi olla olemassa kaikkien punahiuksisia ihmisiä sisältävien joukkojen joukko. No, a S, eli se, että a kuuluu joukkoon S, on varmaankin joukon S ominaisuus. Niinpä myös S S, eli se, että S ei kuulu itseensä, on varmaankin joukon S ominaisuus. Siispä täytynee olla myös joukko A = { x x x } kaikkien niiden joukkojen joukko A, jotka eivät kuulu itseensä. Kuuluuko A itseensä? Jos kuuluu, niin tällöin määritelmän mukaan pätee A A. Siispä A ei voi kuulua itseensä. Mutta tällöin määritelmän mukaan A A ei päde, eli A kuuluukin itseensä! Tämä Russellin paradoksi on yksi helpoimmin selitettävissä olevista naivin joukko-opin paradokseista. Tämän ja muiden vastaavien ongelmien johdosta 1800-luvun lopulla ja 1900-luvun alkuvuosikymmeninä ryhdyttiin rakentamaan matematiikalle perusteoriaa, jonka virheettömyys voidaan osoittaa ja jonka päälle kaikki muu matematiikka voidaan rakentaa. Gottlob Fregen (1848 1925) yritys kaatui Russellin paradoksiin. Bertrand Russell (1872 1970) itse rakensi uuden yrityksen yhdessä Alfred North Whiteheadin (1861 1947) kanssa. Russellin ja Whiteheadin massiivinen teos Principia mathematica löytyy Mattilanniemen kirjastosta. 3 Gödel Voiko matematiikan perusteoria todistaa oman oikeellisuutensa? Kurt Gödel (1906 1978) vastasi vuonna 1931 tähän kysymykseen ei. Hän otti pohjateoriaksi Russellin ja Whiteheadin Principian, joskin mikä tahansa muu tarpeeksi vahva teoria kelpaa. Hän kehitti tekniikan, jolla tuon perusteorian kaavat voidaan tuoda teorian itsensä tutkittavaksi; tätä kutsutaan nykyään gödelnumeroinniksi. 1 Hän löysi tästä järjestelmästä kaavan, joka sanoo, että se itse ei ole todistettavissa. Tästä hän sitten johti, että joko teoria ei ole tarpeeksi vahva matematiikan pohjateoriaksi tai se on sisäisesti ristiriitainen. Tätä tulosta kutsutaan Gödelin epätäydellisyyslauseeksi. 1 Idea on yksinkertainen: annetaan kullekin kaavoissa käytetylle merkille c oma gödelnumeronsa c {0,..., b 1}. Tämän jälkeen jokaiselle äärellisen pitkälle merkkijonolle c 1 c n voidaan antaa gödelnumeroksi esimerkiksi c 1 c n = (Käytin luennolla väärää kaavaa, pahoittelut.) n c i b i. i=1 3

Tämän tuloksen todistamisessa tarvitaan jonkinlainen kuvaus sille, mitä tarkoittaa jonkin asian todistaminen. Sitä varten puolestaan tarvitaan jonkinlainen kuvaus sille, mitä ihminen laskiessaan kykenee tekemään. Gödel käytti alkuperäisessä todistuksessaan teoriaa, jota nykyään kutsutaan primitiivirekursion teoriaksi. Idea on yksinkertainen: Määritelmä 1. Perusfunktioita ovat kaikki vakiofunktiot c n k : Nn N, c n k (x 1..., x n ) = k seuraajafunktio s : N N, s(x) = x + 1 kaikki projektiofunktiot p n i : N n N, p n i (x 1..., x i,..., x n ) = x i Määritelmä 2. Olkoot g 1,..., g m : N n N ja h : N m N osittaisfunktioita. Niiden yhdiste h (g 1,..., g m ) : N n N, määritellään seuraavasti: 2 (h (g 1,..., g m ))(x 1,..., x n ) = h(g 1 (x 1,..., x n ),..., g m (x 1,..., x n )) Määritelmä 3. Olkoot g : N n+1 N ja h : N n 1 N osittaisfunktioita. N määritellään paloittain rekursii- Niiden primitiivirekursio ϱ(h, g) : N n visesti seuraavasti: ϱ(h, g)(0, y 2,..., y n ) = h(y 2,..., y n ) ϱ(h, g)(x + 1, y 2,..., y n ) = g(x, ϱ(h, g)(x, y 2,..., y n ), y 2,..., y n ) Määritelmä 4. Osittaisfunktio on primitiivirekursiivinen, jos se voidaan muodostaa perusfunktioista yhdistettä ja primitiivirekursiota tarpeellisen monta kertaa soveltaen. Lause 5. Yhteenlasku on primitiivirekursiivinen Todistus. On osoitettava, että funktio f : N 2 N, f(x, y) = x + y, on primitiivirekursiivinen. Todetaan ensiksi, että f:lle pätee seuraavat väitteet: f(0, y) = y f(x + 1, y) = f(x, y) + 1 Väitteet on helppo todeta tosiksi korvaamalla f määritelmällään. Tästä voidaan havaita, että f on funktioiden g(x, y, z) = y + 1 h(y) = y primitiivirekursio ϱ(h, g). Funktio h voidaan tulkita projektiofunktioksi h = p 1 1. Funktio g on puolestaan yhdiste projektiosta ja seuraajafunktiosta: g = s p 3 2. Niinpä f = ϱ(p 1 1, s p 3 2) ja f on primitiivirekursiivinen. 2 Tässä a = b on tosi silloin, kun sekä a että b ovat määriteltyjä ja samanarvoisia, sekä silloin, kun sekä a että b ovat määrittelemättömiä. 4

4 Church David Hilbert (1862 1943) ja Wilhelm Ackermann (1896 1962) esittivät 1920- luvun lopulla Entscheidungsproblem (ratkeavuusongelma) -nimellä tunnetun ongelman: esitä laskijoiden käyttöön soveltuva menetelmä, jolla mikä tahansa matemaattinen väite voidaan todistaa oikeaksi tai vääräksi. Herää kysymys, mitä kaikkea laskija voi oikeasti tehdä. Alonzo Church (1903 1995) puolusti aluksi ajatusta, että Gödelin käyttämä rekursioteoria, laajennettuna jonkinlaisella yleisellä rekursioskeemalla, olisi sopiva malli. Primitiivirekursio laajennetaan yleiseksi rekursioksi esimerkiksi näin: Määritelmä 6. Olkoon f : N n+1 µf : N n N määritellään seuraavasti: N osittaisfunktio. Sen minimisaatio (µf)(x 1,..., x n ) = min{ k N f(k, x 1,..., x n ) = 0 } Näin saatava kieli on µ-rekursion laskennon kieli. Osittaisfunktio f : N N on µ-rekursiivinen, jos se voidaan rakentaa perusfunktioista yhdistettä, primitiivirekursiota ja minimisaatiota tarpeellisen monta kertaa soveltaen. Sittemmin hän keksi mielestään paremman idean: lambdalaskento. Ideana tässä on kuvata (osittais)funktio lausekkeena λxt, missä x on jokin muuttuja ja t on jokin lauseke. Tällaisen abstraktion lisäksi kielen lausekkeissa sallitaan funktiokutsut eli applikaatiot sekä viittaukset muuttujiin. Church todisti, että µ-rekursiiviset osittaisfunktiot on kuvattavissa lambdalaskennolla ja päin vastoin. Church uskoi ratkaisseensa ongelman siitä, mitä laskija voi tehdä. Kukaan muu ei oikein siihen uskaltanut luottaa. Ohimennen hän todisti, että näin ymmärrettynä Entscheidungsproblem on mahdoton ratkaista: tällöin tarvittava menetelmä voitaisiin kuvata lambdakielellä ja tästä puolestaan voidaan johtaa ristiriita. 5 Turing Samoihin aikoihin myös Alan Turing (1912 1954) pohti kysymystä, miten voisi matemaattisesti tarkastella laskijan toimintaa. Hän päätyi muokkaamaan laskijaa yhä abstraktimpaan suuntaan kunnes sai aikaiseksi matemaattisen mallin, joka nykyään tunnetaan Turingin koneina. Hän myös, Churchista riippumatta, osoitti, ettei Entscheidungsproblem ole ratkaistavissa. Hän lisäksi osoitti, että lambdakieli (ja siten rekursioteoria) on yhtä vahva kuin Turingin koneet. 5

6 Lopuksi Nykyään kanoninen ratkeamattomuustulos on Turingin koneiden pysähtymisongelma (halting problem): onko olemassa Turingin konetta, joka saatuaan syötteenä jonkin toisen Turingin koneen kuvauksen sekä sille annettavan syötteen, selvittää, pysähtyykö tuo kuvattu kone annetulla syötteellä. Ratkeamattomuustuloksia on paljon. Niiden tärkeys tulee siitä, että voidaan osoittaa että kaikki tietokoneohjelmat, jotka lukevat syötteen merkkijonona ja tulostavat lopuksi KYLLÄ tai EI, voidaan tulkita Turingin koneiksi. Niinpä jokainen Turingin koneita koskeva ratkeamattomuustulos koskee myös ei-interaktiivisia tietokoneohjelmia. Esimerkiksi: ei ole mahdollista tehdä kääntäjää, joka tuottaa pienimmän mahdollisen (tai nopeimman mahdollisen) version sille annetusta tietokoneohjelmasta (ns. kääntäjänkehittäjien täystyöllisyys -lause) Lambdakielellä on lisäksi nykyään merkittävä rooli ohjelmointikielten teoriassa. Kirjallisuutta ja lisätietoa Ihmistyönä tehdystä laskennasta ks. David Alan Grier: When Computers Were Human. Princeton University Press, 2007. Lambdakieltä käsitellään kurssilla TIES542 Ohjelmointikielten periaatteet. Sen keskeisiä ideoita käytetään ohjelmointiin kursseilla TIEA341 Funktioohjelmointi 1 ja TIES341 Funktio-ohjelmointi 2. Turingin koneita ja ratkeamattomuustuloksia käsitellään kurssilla TIEA241 Automaatit ja kieliopit. Gödelin epätäydellisyyslause todistetaan matematiikan epäsäännöllisesti järjestettävällä kurssilla MATS150 Logiikan jatkokurssi. 6