Subject name | Mathematical logic in computer science |
Details | Code VSITE206 Abbrev. MLOG ECTS 6 Year 2 Semester Summer semester Type elective NQF Level 7 Master's study E-Learning 0% |
Activities | DIT zg - Win 24/25 ECTS Units Hours Total T 1.5 15 3 45
N 1 15 2 30
L 0 0 0 0
S 0 0 0 0
PN 0 0 0 0
PT 0 2 2 0
PR 0 0 0 0
EN 0 0 0 0
ET 0 1 2 0
AL 3.5 1 105 105
|
Teachers | Leaders: dr. sc. Aleksandar Hatzivelkos, v. pred. |
Prerequisits | None |
Content | 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.
|
Learning objectives | 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
|
Learning outcomes | 1. Know the diagonal method 2. Differentiate computable and incomputable functions and problems on intuitive level 3. Know how to construct Turing machines,programs for unlimited register machines and programs in flow diagram language for algorithmic solution of simpler problem 4. Know how to construct Post Systems and Markov algorithms for algorithmic solving of a simpler problem. 5. Know how to construct formal grammar for simpler languages. 6. Know how to build finite automata for recognizing simpler languages. 7. Know how to calculate, by the rules of formal semantics, the value of arithmetic and boolean expressions in the given state and the state in which the initial state will be changed when executing the program command. 8. Know how to write a program in the lambda calculus, Scheme and Haskell for algorithmic solving of a simpler problem 9. Know how to write a program in Prologue for algorithmic solving of a simpler problem
|
Competencies | 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.
|
Recommended Literature | |
Additional Literature | |
lectures (T) | - 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
|
numeric exercises (N) | - 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
|
preliminary exam - theory (PT) | - Not defined
- Not defined
|
exam - theory (ET) | - Not defined
|
autonomus learning (AL) | - testovi i kolokviji, konzultacije, samostalni rad u laboratoriju i samostalno učenje
|