-
Курсовите проекти са индивидуални.
-
Може да изберете един от предложените проекти или да измислите и предложите собствена идея. Проекти по собствена тема се приемат след предварително одобрение – изпратете предложението си на екипа на курса.
-
Всички курсови проекти трябва да покриват следните общи изисквания:
- Демонстрират знания и умения за:
- работа с вход-изход и файлове
- многонишково програмиране
- мрежова комуникация.
- В сървърната част, обработката на клиентските команди и бизнес логиката се извършва отделно от мрежовата комуникация, като решението е многонишково и работи коректно в concurrent среда.
- Включват unit тестове с поне 50% line code coverage.
- Осигуряват коректна валидация на входните данни.
- Имат ясен и добър обектно-ориентиран дизайн.
- Използват подходящи изключения за коректно докладване и обработка на грешки.
- Прилагат подходящи структури от данни и ефективни алгоритми.
- Съдържат четлив и добре структуриран код.
- Използват единствено Java SE и външни библиотеки и API-та, разглеждани в курса или изрично указани в условието. При необходимост или желание за използване на допълнителни технологии, това следва предварително да се обсъди с екипа на курса.
- Съдържат кратка техническа документация (README), описваща архитектурата на решението, основните компоненти и начина, по който е организирано concurrent изпълнението и гарантирана коректността му.
- Демонстрират знания и умения за:
Използването на генеративни AI инструменти (напр. GitHub Copilot, ChatGPT и др.) е допустимо като помощно средство в процеса на учене, но не и като заместител на самостоятелното мислене, проектиране и разработка. Всеки студент носи отговорност за разбирането, тестването и аргументирането на кода, който предава.
При използване на AI инструменти това задължително следва да бъде ясно и коректно декларирано в документацията на проекта – с описание кои части са генерирани или подпомогнати от AI, с каква цел, и как е проверена тяхната коректност. Изискването важи както за продуктивния код, така и за тестовете.
Положителната оценка на проекта предполага, че съществената част от кода и тестовете е разработена самостоятелно, без AI асистенция. Степента и характерът на използване на AI се вземат предвид при формирането на крайната оценка.
Представянето на заимстван или автоматично генериран код, който не е коректно деклариран, както и невъзможността той да бъде обяснен, защитен или самостоятелно рефакториран по време на защитата, ще се третира като нерегламентирано подпомагане или плагиатство и ще води до санкции съгласно правилата на курса и университета.
Целта на тези изисквания не е да ограничи използването на съвременни инструменти, а да насърчи отговорната им употреба, реалното усвояване на материала и поддържането на високи стандарти на академична почтеност.
| # | Тема |
|---|---|
| 1 | Authentication Server |
| 2 | Bookmarks Manager |
| 3 | Dungeons Online |
| 4 | Uno |
| 5 | Food Analyzer |
| 6 | Split(NotSo)Wise |
| 7 | Spotify |
| 8 | Torrent Server |
| 9 | Password Vault |
| 10 | Todoist |
| 11 | Cryptocurrency Wallet Manager |
| 12 | По ваш избор |