Структура информација 1
Ранији назив предмета: Програмирање
Обавештења
[9. X 2022, 20:27] Од школске 2022/2023. године се претпоставља да сви студенти који поново слушају неки од информатичких предмета задржавају раније остварене предиспитне обавезе (ПО) и не треба да се јављају предметном наставнику да би то потврдили. Само студенти који не желе да задрже неке или све ПО, већ им је намера да понове одређени тест или семинарски рад, морају да се јаве на адресу misko at fil_bg_ac_rs до 17. X 2022. године и прецизно назначе шта од ПО понављају.
Стара обавештења
Основне информације
Наставни план и програм
- Наставни програм у школској 2022/2023. години
- Наставни програм у школској 2021/2022. години и раније
Литература:
- Krstev, Cvetana. Materijali za predmet Struktura informacija 1
- Miloš A. Kovačević. Osnove programiranja u Pajtonu. Akademska misao. Beograd, 2017.
На сајту аутора на Грађевинском факултету Универзитета у Београду доступно је 2. dopunjeno PDF izdanje sa NumPy-em, а папирно издање књиге може се позајмити у УБСМ-у.
У обзир долазе одломци из првих 10 поглавља књиге, посебно поглавља 1–5 и поглавље 7. - Миодраг Живковић и Весна Маринковић. Алгоритми и структуре података : материјал са предавања. Математички факултет. Београд (прве три главе: Увод, Структуре података, Сортирање, стр. 5–79).
- Eric Freeman. Um caruje: Naučite Programiranje. Mikro knjiga, 2018. Може се позајмити у УБСМ-у.
- Корисни сајтови:
- Python Package Index (индекс пакета и модула за Python)
- Python Module Index (документација модула за Python). Посебно:
- Built-in Types (уграђени типови: int, float, str, list, tuple, range, set, dict)
- Built-in Functions (уграђене функције: abs(), divmod(), filter(), format(), input(), len(), map(), max(), min(), open(), print(), range(), round(), sorted(), sum(), zip())
- re (регуларни изрази)
- locale (локализација)
- math (математика)
- os (оперативни систем) и os.path (адресирање)
- random (псеудослучајни бројеви)
- statistics (статистика)
- sys (систем)
- https://pythontutor.com/, визуелизација извршавања програма.
Предиспитне обавезе
- Распоред тестова и резултати тестова
- Тест 1 (20 поена)
- Термин: субота 19. XI 2022. године, Сала 11 у 11.30.
- Градиво за студенте који предмет слушају у школској 2022/2023. години и касније:
- Градиво за студенте који су предмет слушали у школској 2021/2022. години и раније:
- Кодирање бројева за потребе рачунања: природни бинарни код декадних цифара (8421), 2421, вишак 3. Особине ових кодова. Кодирање целих бројева: цели бројеви у бинарном систему.
- Непотпуни комплемент, потпуни комплемент – рачунање.
- Представљање реалних бројева у покретном и у непокретном зарезу. IEEE binary32 формат.
- BCD. Рачунање са бројевима у BCD запису (8421 код и код вишак 3).
- Тест 2 (20 поена)
- Термин: субота 17. XII 2022. године, Сала 11 у 13.00.
- Градиво:
- Анализа рада програма на језику Python који користи:
- основне уграђене типове int, float и str. Посебно обратити пажњу на методе класе str и форматиране (f-)ниске;
- уграђене функције за улаз и излаз (input() и print()); посебно обратити пажњу на конверзију типова (ниска у број и обрнуто помоћу функција
int()
,float()
,str()
), као и на подешавање режима исписивања (параметриsep
иend
); - контролне структуре (наредбе
if
,for
,while
иbreak
); - листе и опсеге, тј. објекте типа list, range; посебно обратити пажњу на креирање и допуњавање листе (
list.append()
иrange()
), приступ појединачним елементима (индексирање), издвајање подлиста са истим или обрнутим редоследом елемената (сецкање или slicing) и конверзију ниске у листу (str.split()) и обратно (str.join());
- Анализа рада програма на језику Python који користи:
Испит
- Писмени испит (мин. 20 поена, макс. 50 поена)
- Градиво:
- Рекурзивни алгоритми и њихове итеративне верзије (Еуклидов алгоритам за одређивање највећег заједничког делиоца два броја, израчунавање елемената Фибоначијевог низа, израчунавање степена користећи само множење, израчунавање факторијела)
- Алгоритми претраживања уређених колекција (низови, листе): секвенцијална и бинарна претрага. Није потребно научити имплементацију у Python-у, већ поступак алгоритма; такође, записани поступак треба применити на конкретни, задати пример низа.
- Алгоритми сортирања уређених колекција (низови, листе):
- сортирање уметањем (insertion sort),
- мехурасто сортирање (bubble sort),
- сортирање избором најмањег или највећег елемента (selection sort),
- сортирање учешљавањем (merge sort).
- У зависности од године слушања предмета:
- (стари програм, пре школске 2022/2023): Представљање целих бројева у нотацији непотпуног и потпуног комплемента; сабирање целих бројева у нотацији потпуног комплемента; бинарно кодирани цео број (BCD); представљање реалног броја у нотацији покретног зареза са нормализованом мантисом.
- (нови програм, школска 2022/2023 и касније): Имплементација задатог алгоритма у програмском језику Python користећи основне типове (
int
,bool
,float
,str
,range
,list
), контролно-управљачке структуре (if
,for
,while
) и потпрограми, односно функције (def
).
- Градиво: