Määräpäivät
Tehtävät
Yleistä
Esitiedot
Työmäärä
Essee
Lopussa on tai ei ole tentti
Laillisesti ilmaisia kirjoja
Vanhat tiedotteet
Luentokalvot 2018
Harjoitustehtävät 2018
Tenttiin 6.11.2019 perustuva
itseopiskelusivu
Esimerkkivastauksia 23.11.2018
Tentti 18.1.2019
Tentti 12.4.2019
Toteutus syksy 2019
Sivu perustettu 31.1.2022
V1 | V2 | V3 | V4 | V5 | V6 | V7 | V8 | |
nopea | 27.1. | 3.2. | 10.2. | 17.2. | 24.2. | 3.3. | 10.3. | 17.3. |
hidas | 27.1. | 10.2. | 24.2. | 10.3. | 24.3. | 7.4. | 28.4. | 12.5. |
Tehtäviin pääset klikkaamalla V1, V2 jne. Tehtäviä julkaistaan sitä mukaa kuin kevät etenee.
Tehtävien vastauksia pitää palauttaa joko kerran viikossa (jolloin homma tulee valmiiksi maaliskuulla) tai joka toinen viikko (venyy toukokuulle). Jokainen saa itse valita, kumpaa aikataulua noudattaa. Pääsiäisenä on ylimääräinen taukoviikko. Saatte vaihtaa aikataulua. Ainoa, mikä on kielletty, on aikataulun toistuva venyminen.
Osa tehtävistä on MathCheck-tehtäviä ja osa perinteisiä. Palauttakaa perinteisten vastaukset pdf-tiedostona ja kertokaa joko siinä tai meilissä MathCheck-tehtävistä, mitä kohtia ette saaneet tehdyksi esimerkiksi tyyliin ”T1 kaikki tehty, T2 puuttuu K7, 11”. Annan kotitehtävien palautuksista palautetta sen mukaan kuin aikatauluni sallii. Jos jokin MathCheck-tehtäväsivuista ei toimi, niin ottakaa pian yhteyttä.
lue | pakolliset | ainakin yksi | |
---|---|---|---|
1 | 1‒16 |
1. Propositiologiikan perusoperaattorit 2. Merkkijonot |
3. Tästä numero 1 4. samasta nro 6 paitsi (j) 5. samasta nro 20 |
2 | 17‒26 |
6. DFA-perusasioita 7. Loogisia tasokuvioita |
8. Tästä numero 4 9. samasta nro 9 10. samasta nro 8 |
3 | 27‒40 41‒47 |
11. Matemaattisesta päättelemisestä 12. Tästä numero 20 13. samasta nro 13 14. samasta nro 14 |
15. mikä tahansa aiemmin turhaan tehty tehtävä 16. Tästä numero 7 17. samasta nro 12 |
4 | 48‒64 |
18. NFA:n muuntaminen DFA:ksi 19. Tästä numero 15 (b) 20. samasta nro 16 (c) 21. samasta nro 17 |
22. Tästä numero 18 23. samasta nro 21 24. samasta nro 22 |
5 | 65‒86 |
25. Tästä numero 23 26. samasta nro 24 27. samasta nro 26 |
28. Tästä numero 25 29. samasta nro 28 |
6 | 87‒95 106‒116 |
30. Pysähtymistesterin mahdottomuus 31. Tästä numero 32 |
32. Backus–Naur Form 33. Lisää BNF-harjoituksia |
7 | 117, 123‒140 |
34. Lisää pysähtymisen testaamisesta 35. Rationaalilukujen joukko on nollamitallinen |
36. Tästä numero 34 |
8 | 141‒144 Tästä 144‒156 |
37. Tästä numero 36 38. Datan pakkaaminen ja Kolmogorov-kompleksisuus |
Opettaja on Antti Valmari.
Tätä kurssia vastaava kurssi on ollut maailmalla yleinen esimerkiksi nimellä Introduction to Theoretical Computer Science tai Automata, Computability, and Complexity. Tyypillisesti sellaisella käydään läpi keskeisimmät asiat äärellisistä automaateista ja säännöllisistä kielistä, yhteysriippumattomista kieliopeista, laskettavuuden rajoista ja ehkä laskennallisesta vaativuudesta (ainakin NP-täydellisyys).
Nämä asiat on perinteisesti opetettu siten kuin matemaatikot asioita opettavat, sillä seurauksella että ne menevät ei-niin-matemaattisilta ohjelmointi-ihmisiltä yli hilseen (1980-luvulla käytössä ollut ilmaus, joka tarkoittaa, että ei opittu). Olen omilla kursseillani koettanut löytää ohjelmoijaläheisempää tapaa selittää asiat.
Kurssin virallisina esitietovaatimuksina on ohjelmointia ainakin kahden ensimmäisen kurssin verran ja matematiikkaa ainakin yhden yliopistokurssin verran. Valitettavasti kurssin toteutukset syksyllä 2018 ja 2019 osoittivat, että se ei riitä.
Tehkäämme niin, että jokainen saa aloittaa ja katsomme pari ensimmäistä palautuskertaa, miten sujuu, riittääkö tausta ja se ohjaus jota pystyn antamaan.
Varatkaa kurssin suorittamiseen riittävästi aikaa. Nopeammalla tahdilla varatkaa 13 opiskelutuntia / viikko ja hitaammalla tahdilla 6,5. Opiskelutunti koostuu 45 minuutista opiskelua ja 15 minuutista taukoa. Toki saatte rytmittää tauot opiskelun lomaan kuten itse haluatte, mutta kaikkiaan varatkaa opiskeluaikaa ym. mukaisesti.
Essee on vähintään yhden ja enintään kolmen A4-sivun pituinen kirjoitus opettajan kanssa sovittavasta aiheesta (esim. gradupohjan sivuja, noin 90 merkkiä / rivi ja 30 riviä / sivu). Sen tavoitteena on osoittaa, että olet ymmärtänyt kurssin aihepiiriin kuuluvan tai aihepiiriä lähellä olevan jonkin asian hyvin, ja että osaat ilmaista asioita täsmällisesti.
Jos esseestä uhkaa tulla liian pitkä, muuta otsikkoa niin että aihe muuttuu kapeammaksi. Jos esseestä uhkaa tulla liian lyhyt, tarkista, oletko huomannut ja kertonut kaiken olennaisen mikä aiheeseen liittyy. Koska essee ei saa olla kovin pitkä, keskity pääasiaan. Tarkoituksena ei siis ole kirjoittaa valitusta aiheesta mahdollisimman paljon, vaan jokin yksittäinen asia mahdollisimman hyvin. Voit olettaa, että lukija tietää kaiken tarvittavan taustatiedon, mutta voit myös kirjoittaa taustatietoja, jos essee jäisi muutoin liian lyhyeksi.
Englanninkieliset Wikipedia-sivut ovat yleensä hyviä tietolähteitä. Usein ne riittävät lähteeksi eikä muita lähteitä tarvitse käyttää, paitsi jos Wikipedia-sivu on selvästi poikkeuksellisen huono. Tietysti myös kurssin luentoaineistoa ja siihen linkitettyjä ilmaiskirjoja saa käyttää, ja muutakin jos haluaa.
Pisteitä antaessani kiinnitän huomiota ennen kaikkea siihen, kuinka hyvin essee osoittaa asian ymmärtämistä, sekä ilmaisun täsmällisyyteen. Täydet pisteet vaativat edes hieman järkevästi käytettyä matematiikkaa, mutta osan pisteistä voi saada ilmankin. Asiavirheet alentavat pisteitä. Valitse itsellesi sopiva strategia: jos yrität liian kunnianhimoista esseetä, on vaarana, että yksityiskohdat menevät ratkaisevasti pieleen ja pisteet jäävät vähäisiksi. Voit pienentää tätä riskiä selostamalla vaikeiden kaavojen sisällöt myös sanallisesti.
Esseen aihe-ehdotuksia julkaistaan myöhemmin.
Tämä toteutus kurssista on ylimääräinen. Kurssi on poistettu opetusohjelmasta vuonna 2020. Tämä toteutus improvisoitiin lyhyellä varoitusajalla ja siksi osa asioista ratkeaa vasta kurssin aikana. Toteutuksen tarkoitus on lievittää niitä ongelmia, joita opiskelijoille aiheutui, kun kevätlukukauden 2022 alkaessa ei voitukaan palata lähiopetukseen. Haluttiin laajentaa opiskeltavien kurssien valikoimaa.
Arvosanojen asettamiseksi on jotenkin mitattava opiskelijoiden osaaminen ja hankittava riittävä luottamus siihen, että opiskelijoiden osaamisestaan antamat näytöt ovat heidän itsensä tekemät. Tavoitteena on, että näyttö muodostuu palautetuista kotitehtävistä ja esseestä. Tarvittaessa lopussa pidetään suullinen Zoom-tentti tai perinteinen läsnätentti. Läsnätentin järjestäminen on epätodennäköistä.
Boaz Barak: Introduction to Theoretical Computer Science Harvardin yliopistossa käytetty kirja. Nopean vilkaisun perusteella selittää asiat tosi hyvin! Vähän eri painotukset kuin TIEA241:llä, mutta ei haittaa.
Maheshwari, Smid: Introduction to Theory of Computation Varsin tarkasti TIEA241:sta vastaava kirja.
Savage: Models Of Computation: Exploring the Power of Computing Asiantunteva. Mukana kaikki tarvittava ja hyvin paljon muuta. Alun perin kaupallisesti kustannettu.
Fleck: Building Blocks for Theoretical Computer Science Tämä voi auttaa pääsemään sisälle tarvittavaan matematiikkaan.
Evans, Dylla: Dori-Mic and the Universal Machine Melko helppolukuinen, mutta ei riitä tenttikirjaksi.
Ei vielä ole.