Циљ предмета
Оспособити студенте за примену препоручене праксе, стандарда, метода, техника и алата у програмирању.
Исход предмета
Студенти поседују знања и вештине заснованих на стандардима и доброј пракси у програмирању информационих система.
Теоријска настава
Технике за прављење раумљивог изворног кода, употреба имена и изглед изворног кода, употреба класа, енумерациони типови, променљиве, именоване константе и други слични ентитети, коришћење контролних структура, обрада грешака или изузетака, спречавање пробијања зашите на нивоу кода (препуњење бафера, прекорачење индекса низа, итд.). Организација изворног кода (улазне наредбе, рутине, класе, пакети и друге структуре), декомпозиција. Тестирање у различитим фазама програмирања. Модуларизација програмског кода. Императивно програмирање. Структуирано програмирање. Напредно процедурално и објектно-оријентисано програмирање. Имплементација појединих алгоритама и структура података у присуству ограничених ресурса. Динамичко додељивање меморије. Рекурзија. Рад са перзистентном меморијом: читање, писање, правила приступања дељеним ресурсима. Појам тока података. Претраживање података.
Практична настава
Структурирање кода, дебаговање, статичка анализа. Рецензија и ревизија кода (IEEE 1028). Интеграција. Стандарди у програмирању (програмски језици, стандарди за формат и садржаје документа, платформе, API стандарди, алати). Примена стандарда у програмским језицима C, C++ и Java. Употреба стеченог знања у решавању конкретних актуелних проблема у различитим областима и апликационим доменима.