Основи програмирања

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

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

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

Програмирање, програмска подршка (системска и апликативна). Програмски језици и њихове основне карактеристике (машински, асемблерски, програмски језици високог нивоа). Програмски преводиоци: компајлери и интерпретери. Основе развоја програмске подршке (анализа и спецификација проблема, развој алгоритма, писање и уношење програмских инструкција у рачунар, тестирање програма и отклањање грешака, одржавање, израда документације). Приступи програмирању: монолитно, структуирано, објектно орјентисано. Алгоритамске структуре: линијске, разгранате, цикличне. Начини кориштења развојних окружења. Основни типови података и њихов запис у меморији рачунара. Подалгоритамске структуре: функције и процедуре. Преношење параметара у програмирању и рад са стеком. Итерација и рекурзија. Структурни типови података. Динамичко алоцирање меморије. Рад са улазно-излазним уређајима. Рад са текстуалним и бинарним датотекама. Тестирање програма. Израда документације.

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

Упознавање са развојним окружењем за писање програма и његова примена. Начин компајлирања програма и њиховог извршавања приказан на једноставним примерима. Писање једноставног програма у структуираном програмском језику. Кориштење једноставних алгоритамских структура. Гранања и скокови у програмирању. Наредбе за писање цикличних програмских структура. Рад са подалгоритамским структурама - функцијама. Рад са структурним типовима подака. Дефинисање корисничких типова података. Кориштење динамичког алоцирања меморије. Наредбе и функције за улаз и излаз, рад са датотекама (текстуалним и бинарним).