Напредне технике програмирања
О предмету
Kreirano 2023-02-22 Wed 11:25, pritisni ESC za mapu, m za meni, Ctrl+Shift+F za pretragu
1. Опште информације
- Фонд часова: 2+2
- Предметни наставник: проф. др Игор Дејановић (igord na uns ac rs)
- Предметни асистенти:
- MSc. Владимир Инђић (vladaindjic na uns ac rs)
- MSc. Душан Николић (nikolic.dusan na uns.ac.rs)
- Материјали за предавања су доступни на:
- Материјали за вежбе биће доступни преко GitHub-а и Гугл групе.
- Комуникација:
- Консултације се обављају по потреби уз најаву на email
2. Циљ предмета
- Упознавање са мање коришћеним напредним техникама, технологијама и језицима
намењених решавању специфичних класа проблема
- Излагање студената различитим парадигмама програмирања
- Размишљање “изван кутије” (out-of-the-box)
- Прави језик/алат за проблем који се решава
3. Тематске целине
- Напредне технике на програмском језику Python (метакласе, context managers,
дескриптори, функционално, async/await…) - 2 недење
- Основе програмског језика Smalltalk-a/Pharo (ООП, прослеђивање порука, “живи”
објекти) - 2 недеље
- Програмски језик Rust (системско програмирање, генеричко програмирање,
сигурно управљање меморијом, сигурност у конкурентном програмирању) - 7
недеља
4. Начин полагања
- Полагање путем писменог испита/теста. Два термина.
- Кратки задаци
- Теоријска питања са кратким одговорима
- Ради се на папиру
- Додатно за +2 оцену ко није задовољан оценом са теста (или ко не положи тест
за оцену 7) - пројекат.
- Самостални пројекти на предефинисане теме или тема осмишљена од стране
студента и одобрена од стране асистента и професора
- Важно: пројекат мора комбиновати бар 2 од обрађена 3 програмска језика
5. Референце
- Stéphane Ducasse, Dmitri Zagidulin, Nicolai Hess, Dimitris Chloupis, Pharo by
Example, Square Brackets Associates, 2017.
- Steve Klabnik and Carol Nichols, with contributions from the Rust Community,
The Rust Programming Language
- Rust by Example
- Rust Design Patterns
- Jim Blandy, Jason Orendorff, Leonora F.S. Tindall, Programming Rust: Fast,
Safe Systems Development, 2 ed., O’Reilly, 2021.
- Rustlings
- Google’s Comprehensive Rust
- Algorithms implemented in Rust