Cilj nastavnog predmeta Programske paradigme je razvoj različitih pristupa rešavanju problema kod učenika korišćenjem različitih koncepata programiranja.
IV razred
(3 časa vežbe nedeljno, 99 časova vežbi godišnje)
- Uvod.
Upoznati učenike sa osnovnim osobinama deklarativnog programiranja, razlikom između relacionih i funkcionalnih programskih jezika, načinom opisivanja problema u deklarativnim programskim jezicima.
- Iskazna logika.
Obnoviti gradivo iz iskazne logike, obrađivano u okviru matematičke grupe predmeta, posebno u Diskretnoj matematici (Iskazi, Iskazne formule, Istinitosna vrednost iskaznih formula, konjunktivne normalne forme (KNF) i disjunktivne normalne forme (DNF)).
Upoznati učenike sa metodama provere da li je tvrđenje logička posledica drugih tvrđenja ili ne.
– DPLL algoritam – Davis-Putnam-Logemann-Loveland algoritam, sa proverom obe moguće instinitosne vrednosti koje se pojavljuju u formuli.
– Metod rezolucije.
- Predikatska logika.
Definisati predikatske formule i njihovu interpretaciju
Prikazati učenicima predstavljanje proizvoljne predikatske formule u obliku logičkog programa kroz faze:
– Preneks normalna forma.
– Skolemizacija.
– Supstitucija.
– Unifikacija.
Objasniti metod rezolucije.
- Logičko programiranje.
– upoznati učenike sa sintaksom izabranog programskog jezika;
– upoznati učenike sa različitim vrstama programskih klauzula (činjenice, pravila i ciljevi);
– upoznati učenike sa procesom izračunavanje odgovora, objasniti stablo izračunavanja odgovora;
– definisati složene strukture podataka, liste, kao strukture raznovrsnih podataka sa utvrđenim redosledom, čijim elementima se pristupa od prvog elementa. Obavezno naglasiti rekurzivnu strukturu liste.
Definisati osnovna pravila za rad sa listama
– Pripadnost listi.
– Spajanje dve liste.
– Brisanje elementa iz liste.
Definisati pravila za rešavanje kombinatornih problema
– Permutacije.
– Varijacije.
– Kombinacije.
Definisati pravila za rešavanje logičkih problema
– Ajnštajnov problem kuća.
– Misionari i ljudožderi.
Definisati pojam ekspertskog sistema i kreirati jednostavan ekspertski sistem za prepoznavanje različitih oblika, životinja, predmeta…
- Funkcionalno programiranje.
– upoznati učenike sa tipovima i klasama tipova;
– upoznati učenike sa sintaksom izraza i funkcijama (lambda izrazi, Karijev zapis, let … in, where, if-then-else, case);
– upoznati učenike sa rekurzivnim funkcijama i funkcijama višeg reda (map, filter, fold) i realizovati sa učenicima neke rekurzivne funkcije;
– definisati tipove i klase tipova (algebarski tipovi podataka, parametarski polimorfizam);
– definisati funktore, monade;
– upoznati učenike sa ulazom/izlazom programa i standardnim bibliotekama