Opšta sekcija
Предметни наставници: Никола Ратинац и Драгутин Остојић
Циљ и задаци
Циљ наставног предмета Програмирање је развој алгоритамског приступа решавању проблема код ученика, овладавање техникама програмирања и стицања знања о савременим програмским језицима.
Задаци наставе предмета Програмирање су да ученици:
- стекну основна знања о унутрашњој организацији рачунара и начину извршавања програма;
- овладају свим основним, али и неким напреднијим концептима програмирања;
- упознају се са различитим приступима решавању проблема програмирањем;
- унапреде своје способности за брзо, ефикасно и рационално проналажење, складиштење и преношење информација коришћењем рачунара, као и да стекну свест о потреби за критичким приступом и потреби за пажљивим анализирањем информација;
- јачају способност за прецизно и концизно дефинисање проблема;
- овладају широким дијапазоном основних рачунарских алгоритама;
- разумеју и примењују принципе креирања модуларних и добро структуираних програма;
- савладају технику креирања апликација са графичким корисничким интерфејсом и основне принципе њиховог функционисања (програми вођени догађајима);
- упознају се са теоријом израчунљивости, појмом сложености алгоритама и напредним алгоритмима који решавају тешке проблеме;
- овладају правилним креирањем, анализом и трансформацијом променљивих декларисаних као сложени типови података (низови, структуре, листе, стабла).
Наставни план
1. Графови и алгоритми за рад са графовима (20 часова)
- Појам и репрезентација графова.
- Обилазак графа (у дубину и у ширину).
- Тополошко сортирање.
- Најкраћи путеви у графу (Дајкстрин и Флојд-Варшалов алгоритам).
- Минимално разапињуће дрво.
2. Алгоритми текста (10 часова)
- Проналажење подниске (грубом силом, Кнут-Морис-Пратовим или Бојер-Муровим алгоритмом).
- Регуларни изрази и примена.
- Контекстно-слободне граматике и примена. Рекурзивни спуст.
3. Геометријски алгоритми (10 часова)
- Површина конвексног и простог многоугла.
- Провера припадности тачке конвексном многоуглу.
- Конвексни омотач скупа тачака.
4. Алгоритми теорије бројева (10 часова)
- Проширен Еуклидов алгоритам и примене.
- Тестови прималности.
- Растављање броја на просте чиниоце и примене.
5. Алгоритми над битовима (4 часа)
6. Преглед одабраних структура података и алгоритама (16 часова).