Време е да помислите за проектите си!

Предадени решения

Краен срок:
20.12.2022 18:00
Точки:
10

Срокът за предаване на решения е отминал

Ако все още не сте го направили, време е да помислите малко за курсовите си проекти. Приготвили сме ви темплейт, по който да работите.
Описанията на проектите си предавайте както нормално домашно - в полето за код. Знаете - колкото по-рано предадете, толкова по-рано ще можем да ви върнем обратна връзка. :)

Инструкции за [The Final Project/Заветното Начинание]

[Title/Звание]

Кратко заглавие на проекта, с което майка ви би се гордяла.

Термостатът на Щирлиц

[Description/Обрисовка]

Общо описание на проекта, с което да хванете вниманието на всички популярни рекрутъри в LinkedIn.

Гласов интерфейс към IoT термостат вързан към обектива на видео камера, с цел превенция на запотяване или замръзване, контролиран чрез вицове за Щирлиц, при който температурата се определя от смехотворността на вица. Вицът автоматично се препраща към група неарийци на щат, които гласуват и с тяхна помощ се определя съответната температура.

[Functionalities/Надарености]

По какъв начин потребителят може да взаимодейства с програмата и какви операции извършва програмата в отговор на това. Това включва и задкулисните действия на приложението ви (не подробно алгоритмично описание, а накратко - с по едно изречение).

Потребителят дава инструкции на програмата под формата на вицове.
Пограмата използва гласово разпознаване, за да потвърди, че Щирлиц взима участие във вица.
Програмата препраща получения виц на група работници, които оценяват качествтото на вица по скала и връщат резултат.
Програмата използва осреднената оценка от гласувалите, за да определи температурата, на която да настрои термостата на камерата.

[Milestones/Възлови точки]

Разбивка, показваща по-големите логически обособени парчета от проекта. С други думи - описание на отделните модули* на проекта.
В някои случаи това могат да са отделните парчета функционалност (модул за комуникация с потребителя, модул за конфигуриране на приложението, модул за persistence, който ви позволява да save-вате играта), в други няма едно към едно взаимоотношение с конкретно взаимодействие на потребителя с програмата (модул за scheduling на задачи, модул за web scraping, модул за AI на ботовете в играта).
Кръстили сме ги "Milestones/Възлови точки", защото на практика това ще са стъпките, през които ще трябва да минете, за да имате финалния вид на работещото ви приложение (може би не в същата последователност, както първоначално ще предположите).

*Писали сме "модули", но не е задължително да са модули в Python смисълa на думата.

Тригър за активиране на гласовия инпут.
Запис на гласов инпут.
Анализ на записа посредством гласово разпознаване (speech recognition).
Криптиране на съобщението.
Изпращане на криптираното съобщение през HTTPS.
Асинхронна обработка на отговорите (различните групи ще оценяват различни вицове с различна скорост).
Транслиране на температурата от оценка на вица до градуси.
Комуникация с термостата на камерата.

[Estimate in man-hours/Времеоценка в човекочасове]

Груба оценка на това колко време ще ви отнеме проектът, във формата, в която очакваме да го видим и оценим ние. С други думи, ако желаете да си разкрасите web проекта със CSS, да си нарисувате красиви sprite-ове за играта и прочие - това няма да оценяваме, съответно не ни е важно колко време ще ви отнеме, ако решите да надградите проекта си извън контекста на "Въведение в програмирането на Python".
Ако искате, можете да си направите и разбивка по milestones, но няма да държим на това.

87 часа

[Usage of technologies/Потребление на технологии]

Разпишете какви frameworks/модули/библиотеки ще използвате за проектите си - Django, Flask, Numpy и Pandas, PyQt или Pygame, etc.

Библиотека за комуникация с IoT-интегриран микрофон (все още не е ясно коя)
Google Cloud Speech (pip install google-cloud-speech)
Cryptography module (pip install cryptography)
HTTP/requests module
asyncio module?
i2c интерфейс към термостата на камерата

Бел. ред.

  • Очакваме проектите ви да са качени в github.
  • Напомняне - проектите носят до 60 точки и са задължителни. С други думи - няма да пишем оценки на хора, които нямат дори минимален проект. Сори.
  • Не забравяйте, оценяването на проектите е следното - 33% функционалност, 33% стил, 33% тестове, 1% вариация в настроението на проверяващите!
  • Проектите се предполага да демонстрират знания и разбиране на Python. Не се впускайте в прекалено много CSS, JavaScript, красив UI за desktop приложенията или игрите и прочие. Не че няма да го оценим, но би следвало да ви е с доста по-нисък приоритет и да инвестирате в това само ако ви остане време.
  • За тази задача ще получите точки, съобразени с това, колко добре сте разписали проектите си (малко по-субективно от юнит тестове, но ще ви върнем обратна връзка).

P.S. Ето ви и версия за copy-paste:

[Title/Звание]

[Description/Обрисовка]

[Functionalities/Надарености]

[Milestones/Възлови точки]

[Estimate in man-hours/Времеоценка в човекочасове]

[Usage of technologies/Потребление на технологии]