Naziv predmeta | Matematička logika u računarstvu |
Detalji | Kod VSITE206 Skr. MLOG ECTS 6 Godina 2 Semester Ljetni semestar Vrsta izborni Razina HKO 7 Diplomski studiji E-Learning 0% |
Aktivnosti | DIT zg - Zim 24/25 ECTS Jedinice Sati Svega P 1.5 15 3 45
A 1 15 2 30
L 0 0 0 0
S 0 0 0 0
KA 0 0 0 0
KP 0 2 2 0
PR 0 0 0 0
IP 0 0 0 0
IU 0 1 2 0
SU 3.5 1 105 105
|
Nastavnici | Nositelji: dr. sc. Aleksandar Hatzivelkos, v. pred. |
Preduvjeti | Nema |
Sadržaj | Pojam izračunljivosti i modeli izračunljivosti. Imperativni modeli: Turingov stroj, strojevi s neograničenim registrima, programski jezik dijagrama toka, strukturirani programski jezici. Formalna sintaksa: Postovi sustavi, Markovljevi algoritmi, formalne gramatike, konačni automati. Formalna semantika: semantika aritmetičkih izraza, semantika booleovskih izraza, operacijska semantika naredbi. Funkcijski modeli: lambda račun, Scheme, Haskell. Logički model: deduktivni račun, Prolog.
|
Ciljevi učenja | Razumjeti klasične modele izračunljivosti i na njima zasnovane programske paradigme.
Znati modelirati računske probleme u odgovarajućem računskom modelu i programskom jeziku
|
Ishodi učenja | 1. Znati dijagonalnu metodu 2. Razlikovati na intuitivnom nivou izračunljive i neizračunljive funkcije i probleme. 3. Znati konstruirati Turingove strojeve, programe za stroj s neograničenim registrima i programe u jeziku dijagrama toka za algoritamsko rješavanje jednostavnijeg problema. 4. Znati konstruirati Postove sisteme i Markovljeve algoritme za algoritamsko rješavanje jednostavnijeg problema. 5. Znati konstruirati formalne gramatike za jednostavnije jezike. 6. Znati konstruirati konačne automate za prepoznavanje jednostavnijih jezika. 7. Znati izračunati po pravilima formalne semantike vrijednost aritmetičkih i boleovskih izraza u danom stanju i stanje u koje će prijeći početno stanje pri izvršenju programske naredbe. 8. Znati napisati program u lambda računu, Sheme i Haskellu za algoritamsko rješavanje jednostavnijeg problema. 9. Znati napisati program u Prologu za algoritamsko rješavanje jednostavnijeg problema
|
Sposobnosti | 1. vladati osnovnim teorijskim principima računarstva, pojmom izračunljivosti, klasičnim modelima izračunljivosti, formalnom sintaksom i semantikom programskih jezika.
2. znati primijeniti imperativni, funkcijski i logički pristup u algoritamskom rješavanju problema
3. znati pisati jednostavnije programe u jezicima Scheme, Haskell i Prolog.
|
Preporučena literatura | |
Dodatna literatura | |
predavanja (P) | - Klasični modeli izračunljivosti
Matematičko logički korijeni računarstva
Intuitivni pojam izračunljivosti
- Imperativni model: Turingovi strojevi
- Imperativni model: URM strojevi
- Imperativni model: programski jezici višeg nivoa
- Rekurzivni model: Postovi sustavi
- Jednostavniji modeli od Postova: string rewriting systems, Markovljevi algoritmi i formalne gramatike
- Ponavljanje i priprema za prvi kolokvij
- Funkcijski model: lambda račun 1
- Funkcijski model: lambda račun 2
- Funkcijski model: programski jezik SCHEME 1
- Funkcijski model: programski jezik SCHEME 2
- Logički model: programski jezik PROLOG 1
- Logički model: programski jezik PROLOG 2
- Logički model: rezolucija i unifikacija
- Ponavljanje i priprema za drugi kolokvij
|
auditorne vježbe (A) | - argumentiranje dijagonalnim metodom
prepoznavanje izračunljivosti i poluizračunljivosti
- Programiranje Turingovih Strojeva
- Programiranje URM strojeva
- Programiranje u jeziku dijagrama toka
- Programiranje u Postovim sustavima
- Programiranje u Markovljevim algoritmima
Konstrukcija formalnih gramatika
- prvi kolokvij
- Izvršavanje lambda računa
- Programiranje u lambda računu
- Programiranje u jeziku Scheme - osnove
- Programiranje u jeziku Scheme - funkcije višeg reda i liste
- Programiranje u Prologu
- Izvršenje Prolog programa i rezolucija
- Izvršenje Prolog programa i unifikacija
- Drugi kolokvij
|
kolokvij - teorija (KP) | - Nije definirano
- Nije definirano
|
ispit - teorija (IU) | - Nije definirano
|
samostalno učenje (SU) | - testovi i kolokviji, konzultacije, samostalni rad u laboratoriju i samostalno učenje
|