Принципи програмирања

Циљ и исход предмета

Усвајање знања из напредних техника и вештина у анализи, синтези, дизајну и имплементацији напредних алгоритама и структура података коишћењем различитих парадигми програмирања. Студент уме да осмисли и употреби сложеније алгоритме и структуре података. Студент разуме разлику између основних парадигми програмирања и уме да изабере и употреби одговарајућу у решавању конкретног сложенијег проблема програмирања.

Теоријска настава

Парадигме програмирања: императивно – процедурално и објектно-оријентисано, декларативно – функционално и логичко програмирање. Рефлексија. Преглед програмских језика за сваку парадигму програмирања. Програмски језици који подржавају више парадигми програмирања. Сложене структуре података и алгоритми у императивном програмирању. Сложене структуре података и алгоритми у декларативном програмирању. Математички модели израчунљивости и веза са парадигмама програмирања – Тјурингова машина и Ламбда рачун. Модуларизација програмског кода.

Практична настава

Преглед елемената функционалног програмирања у нефункционалним програмским језицима. Рефлексија у различитим програмским језицима. Имплементација сложених структура података коришћењем објектно- оријентисане парадигме програмирања – балансирана бинарна стабла, октална стабла, квадратна стабла, хеш табеле, хеш стабла, трие. Имплементација сложених структура података у функционалном програмирању – различите врста стабала, структуре засноване на хешу, графови. Имплементација алгоритама у императивном и функционалном програмирању и њихово поређење. Модули у различитим програмским језицима.

5733-principi-programiranja

sbobet88 slot agb99 situs slot slot777 toto AMANAHTOTO slot SLOT GACOR AMANAHTOTO toto slot88 ASIA200 ASIA200 ASIA200 bayijudy.com situs resmi bayitoto slot gacor popotogel login situs slot eropa99 hoki99 roma77 babe138 roma77 roma77 hoki99 abadicash