Напомена: Основни универзитетски уџбеник "Компоновање рачунарских програма" можете купити у библиотеци Факултета инжењерских наука. Цена уџбеника је 500,00 динара.
Наслов: Компоновање рачунарских програма
Тип: Основни универзитетски уџбеник
Аутор: Владимир М. Миловановић
Издавач: Факултет инжењерских наука Универзитета у Kрагујевцу, Kрагујевац, 2021.
ISBN: 978-86-6335-081-6
Из предговора
Овај уџбеник је првенствено намењен студентима Факултета инжењерских наука у Крагујевцу који се школују за дипломиране инжењере електротехнике и рачунарства и слушају основе програмирања у првом семестру студија. Он такође може бити користан и студентима сродних факултета на којима се уводни програмерски концепти предају заснивајући се на програмском језику Пајтон. Уџбеник такође могу користити и самоуки ентузијасти, али и професионалци као референцу, односно неку врсту подсетника надасве добрих програмерских пракси.
Књига је писана у Sphinx генератору документације и поред штампаног издања, објављене су слободно доступне и електронске верзије уџбеника које се могу видети и преузети са интернет адресе https://milovanovic.github.io/krp и које су бесплатне.
Садржај
1.АПСТРАКЦИЈА ФУНКЦИЈАМА
-
- Почетак
- Елементи програмирања
- Дефинисање нових функција
- Пројектовање функција
- Управљање
- Функције вишег реда
- Рекурзивне функције
- АПСТРАКЦИЈА ПОДАЦИМА
- Увод
- Апстракција података
- Секвенце
- Променљиви подаци
- Објектно-оријентисано програмирање
- Имплементација класа и објеката
- Објектна апстракција
- Ефикасност
- Рекурзивни објекти
- ТУМАЧЕЊЕ РАЧУНАРСКИХ ПРОГРАМА
- Увод
- Функционално програмирање
- Изузеци
- ОБРАДА ПОДАТАКА
- Увод
- Имплицитне секвенце
- Расподељено израчунавање
- Расподељена обрада података
- Паралелна обрада
- ЗАКЉУЧАК
Из закључка
У основи приступа материји која је предмет овог уџбеника лежи уверење да рачунарство, односно у буквалном преводу „рачунарске науке“ (енг. computer science), није наука, те да сам значај рачунарства чак и нема првенствено везе са рачунарима. Рачунарска револуција заправо је револуција у начину размишљања и у начину изражавања идеја и онога што мислимо. Суштина ове промене је појава парадигме која би се најбоље могла назвати процедурална епистемологија - проучавање структуре знања са императивног становишта, за разлику од декларативног, то јест исказног гледишта класичних математичких предмета. Математика пружа алат и оквир за прецизно баратање појмовима у смислу шта је нешто. Израчунавање пружа оквир и алат за прецизно баратање појмовима како нешто урадити.
За преношење знања и излагање материје изабран је Пајтон, програмски језик високог нивоа који подржава безмало све основне програмерске парадигме: императивно (процедурално), објектно-оријентисано и функционално програмирање. У овом уџбенику Пајтон се не уводи, нити изучава формално, јер га читаоци и без тога савладају за релативно кратко време што је његова велика предност. На крају крајева, циљ и није био изучавати један програмски језик, већ програмирање као такво. Предмет и циљ градива јесу како нешто израчунати, па на том истом курсу и како разложити веће проблеме на мање целине које ће бити обрађиване појединачно. Још једна предност Пајтона је да подржава више стратегија модуларне декомпозиције и растављања програма. Као што је приказано у прва два поглавља, могу се вршити функционалне апстракције и апстракције података, могу се користити функције вишег реда за описивање уобичајених образаца употребе, могу се моделирати локална стања помоћу додељивања и мутације података. Затим, како је приказано у последњем поглављу, могу се повезати делови програма са токовима и одложеним вредновањем, програми се могу паралелизовати путем расподељеног израчунавања и обраде података, а такође се и лако могу имплементирати уграђени, тачније обласно-специфични језици. Све ово је уграђено у доступна интегрисана интерактивна развојна окружења са одличном подршком за инкрементално пројектовање, писање и тестирање програма, као и за отклањање грешака.
Најзад, кроз претходно изложену материју провејава један дух креационизма. Самим тим, за једну од најмоћнијих стратегија пројектовања програма проглашено је пуштање машти на вољу, односно одлагање одлуке о представи података и једноставно замишљање и сањарење које би функције биле најбоље да се одређени проблем реши на најједноставнији могући начин. И то изгледа да је тачно и у програмирању, једном када се у потпуности савладају основе и формализам, нијансе међу добрим инжењерима и програмерима су баш у тим детаљима који долазе из креативности саме индивидуе. И мада на први поглед делује да је дијаметрално супротно, компоновање неког музичког дела, јако личи на писање рачунарских програма. Отуда је и овај глагол употребљен као алегорија, тачније метафора у наслову уџбеника.
И коначно, иако многи, па и сам аутор, често каже да је програмирање занат, ипак је оно далеко више налик магији или уметности. И ако постоји једна једина ствар коју би читаоци требали да заувек запамте и понесу као закључак ове књиге - јесте управо та!