Як відтрекати працівника на складі або кота в квартирі?

Олімпіада з програмування від ІТ кластеру – це завжди цікаво. Зазвичай всю славу отримують учасники та переможці олімпіади (що, в принципі справедливо), але є і інша частина цього проекту – підготовка. Хочемо трохи розповісти про надзвичайних людей, які цим займаються та трохи зазирнути за лаштунки процесу підготовки.

Почнемо з того, що кожна олімпіада (а кожного року їх проходить дві: восени та навесні) це окремий проект, зі своєю темою, командою, унікальними завданнями, критеріями оцінки, обладнанням і т.д.

Цією весною олімпіада мала назву “Доповнена реальність та навігація всередині приміщення”. Фактично, завданням було розробити програму, веб-додаток чи скрипт, який на основі певних вхідних даних, на виході генерує файл у якому вказано координати квадрата(фактично – кімнати) в якому знаходився відслідковуваний об’єкт, та точку “маячок” біля якого знаходився об’єкт. В ідеалі – треба було відмалювати траєкторію руху та відобразити це графічно (з чим, до речі, також більшість впоралась).

Здавалося б все дуже просто, але Ви можете спитати, а що ж це за “вхідні дані” за якими можна відслідкувати людину. І тут починається найцікавіше. Для того, щоб ці дані були реальними CEO компанії AgileVision, Володимир Рудий ( головний розробник завдання) взяв шість ось таких плат(в якості маячків):

та перетворив офіс компанії на полігон для випробувань. Ось так це виглядало в завдання для студентів:

А ось так фактично:

Ці платки – це комплекти розробника nRF52 DK – для фірмових додатків Bluetooth Low Energy, пасивні випромінювачі BLEmesh, ANT і 2,4 ГГц на SoCs nRF52810 і nRF52832.

Після встановлення маячків (beacons) треба було вирішити як збирати дані об’єкта що рухається та що це буде за об’єкт. Логічним пристроєм для цього було обрано – смартфон (завжди при собі, має Bluetooth, легко переносити). Оскільки набори даних, необхідні для аналізу потрібні були великі, необхідно було якось автоматизувати їх збір та зберігання у необхідному форматі. Для цього, до процесу підготовки долучився аспірант кафедри, Роман Андрущенко, який спеціально для олімпіади розробив мобільний додаток для запису стрімів.

Ну а далі почався експериментальний процес переміщення об’єкту в просторі для збору даних (пан Володимир ходив по офісу та збирав ці дані своїм смартфоном). Спроб було декілька, у зібраних датасетах можна побачити різний час фіксації переміщень, і після 19:00 у п’ятницю, і близько 08:00 у суботу (у суботу, Карл! Важко уявити оскільки треба було прокинутись, щоб о восьмій вже гуляти офісом)

І це ми лише зазирнули у технічну частину підготовки до олімпіади, а є ще й організаційна: розробка критеріїв оцінювання, опис завдання, підготовка та публікація анонсів, мотивація та постійні нагадування студентам приймати участь (велика подяка координаторці Чернігівського ІТ кластеру Ользі Рись) та багато іншого.

І лише після цього починається сама олімпіада, вже третій раз поспіль вона відбувається онлайн, але всі вже до цього звикли. Якість виконання завдань, як завжди, приємно вразили журі. В досить короткі терміни було реалізовано та представлено круті варіанти вирішення завдань. Дехто з учасників (ми чули) навіть спробував відтворити експериментальні умови в себе вдома.

За результатами переможні місця розподілились наступним чином:

1 місце – монокоманда Abyss (Дмитро Гузенко, ІІ курс, спеціальність “Комп’ютерна інженерія”),

2 місце – монокоманда Just Vlad (Владислав Байда, ІІ курс, спеціальність “Телекомунікації та радіотехніка”) та

3 місце – команда Digital Artists (Богдан Велігорський та Олексій Карась, 2 курс, спеціальність “Комп’ютерна інженерія).

Призовим фондом змагань традиційно стала стипендія на півроку від Chernihiv.IT, її отримали всі учасники команд, що зайняли призові місця.

Висловлюємо щиру вдячність всім організаторам та учасникам олімпіади. Ви – круті!