OHJ-2300 Johdatus tietojenkäsittelyteoriaan, 6 op
- Prof. Tapio Elomaa
- Syksy 2008, periodit I ja II
- Luennot:
- P I 26.8.-2.10.: ti 14-16 TC103 ja to 14-16 TC133
- P II 14.10.-20.11.: ti 14-16 TB219 ja to 12-14 TB224
- Viikkoharjoitukset: DI
Jussi Kujala
(DI Timo Aho) ma 12-14 TC131
- Kurssikoe: ke 26.11.2008 klo 9-12
Ajankohtaista
- Tentti keskiviikkona 26.11. klo 9-12 salissa TB111
Yleistä
- Kurssin pääsivu.
- Esitietovaatimuksena ovat opintojaksot
MAT-20600 Diskreetti matematiikka ja
OHJ-2150
Algoritmien analyysi. (Myös vanhat esitietovaatimukset
8100310 Tietorakenteet
ja algoritmit sekä
8100500 Ohjelmistotekniikan matemaattiset menetelmät kelpaavat).
- Jatko-opintokelpoinen. Pakollinen ohjelmistotieteen
syventävissä opinnoissa.
- Kurssin tavoitteena on tutustua ohjelmoinnin ja laskennan
pohjimmaisiin mahdollisuuksiin - mitä ongelmia periaatteessa
voidaan ohjelmallisesti ratkaista ja mitkä ongelmat voidaan lisäksi
ratkoa tehokkaasti. Lisäksi pyritään vetämään näiden tulosten
yhteyksiä käytännön ohjelmistotyöhön.
Luennot
- Syksyn 2008 toteutuksen luennot perustuvat kirjaan
- Michael Sipser:
Introduction to the Theory of Computation, Second
(International) ed., Thomson, 2006.
Kurssin tentit perustuvat luentoihin (ei siis pelkästään
luentokalvoihin).
-
Viikkoharjoitukset
- Viikkoharjoituksissa on lisäpistejärjestelmä.
- Viikkoharjoituksiin osallistuminen ja tehtävien itsenäinen ratkominen
on lähes välttämätön edellytys kurssin
suorittamiselle.
Sisältö
- Johdanto
laskennalliset ongelmat, esitykset, päätösongelmat, laskennallisten
ongelmien ratkeavuus
- Kertausta
- Äärelliset automaatit
- Automaattien minimointi
- Epädeterministiset äärelliset automaatit
- Säännölliset lausekkeet
- Säännöllisten kielten rajoituksista
- Kontekstittomat kielet
moniselitteisyys, Chomskyn normaalimuoto, pinoautomaatit
- Laskennan universaaleja malleja
- Turingin koneet
Turingin koneiden laajennuksia: moninauhaiset koneet,
epädeterministiset koneet
- Kieliopeista
- Algoritmeista
- Laskettavuusteoriaa
- Rekursiivisten ja RE-kielten perusominaisuuksia
- Turingin koneiden koodaus
- Ratkeavia ongelmia
- Äärettömistä joukoista
- Universaalit Turingin koneet
- Pysähtymisongelma
- Chomskyn kieliluokat
- Palautuvuus
epätyhjyysongelma, säännöllisen kielen tunnistavat Turingin
koneet, Ricen lause, lineaarisesti rajoitetut automaatit,
rekursiiviset palautukset
- Aikavaativuus
- Vaativuusfunktioiden kertaluokat
- Luokka P
- Luokka NP
- NP-täydellisyys
- Tilavaativuus
- Savitchin lause
- PSPACE-täydellisyys
- Luokat L ja NL
- Approksimointi
- Satunnaisalgoritmit
Kirjallisuutta
Melkein mikä tahansa alan oppikirja sisältää useimmat kurssilla
käsitellyt asiat. Kirjoja ovat mm.
- Eitan M. Gurari: An
Introduction to the Theory of Computation, Computer Science
Press, 1989
- John E. Hopcroft, Rajeev Motwani & Jeffrey D. Ullman: Introduction
to Automata Theory, Languages, and Computation, Second ed.,
Addison-Wesley, 2001
- Efim Kinber & Carl Smith: Theory of Computing, A Gentle
Introduction, Prentice Hall, 2001
- Harry R. Lewis & Christos H. Papadimitriou: Elements of the
Theory of Computation, Second ed., Prentice-Hall, 1998
- J. Martin: Introduction to Languages and the Theory of
Computation, Third ed., McGraw-Hill, 2003
- B. Moret: The Theory of Computation, Addison-Wesley, 1998
- Michael Sipser: Introduction to the Theory of Computation,
Second (International) ed., Thomson, 2006
Linkkejä

Nov. 20, 2008
http://www.cs.tut.fi/~elomaa/