На другому курсі програмної інженерії є предмет з назвою, що інтригує. Що за практикум, і що на ньому потрібно робити? У цій статті «зсередини» подивимося на один із найцікавіших предметів у ХНУРЕ.
Якщо з такими предметами, як фізика, вища математика та об'єктноорієнтоване програмування питань не виникає, то словосполучення проєктний практикум звучить не зовсім зрозуміло і досить цікаво.
Проєктний практикум — це предмет, де студенти можуть реалізувати свої знання, отримані протягом першого та другого курсів, причому як ті, що стосуються програмування, так і ті, що відповідають за аналітику та проєктування.
Мета цього предмету — дати студентам якнайглибше розуміння розробки цього проєкту.
Відбувається все так: спочатку група довільно ділиться на кілька підгруп по 5–6 осіб у кожній. Методом мозкового штурму обирається три теми майбутнього проєкту. Їх потрібно лаконічно та цілісно викласти викладачам, щоб одна з них могла продовжити своє існування та розвинутися у повноцінний навчальний продукт.
Далі починається дуже довгий етап — проєктування. Саме тут як ніколи згадуються діаграми use-case, відносини в uml, er-діаграми, проєктування інтерфейсу користувача.
Зараз може здатися, що проєктний практикум лише підсумовує отримані знання на таких предметах, як основи програмної інженерії, гіпертекст та гіпермедіа, людино-машинна взаємодія, але це зовсім не так. На лекціях, а також при підготовці до лабораторних та практичних занять відбувається повне занурення в новий матеріал, пов'язаний з розробкою бізнес-вимог до проєкту, функціональних та нефункціональних вимог, діаграм, що ілюструють роботу системи (її розгортання, відношення об'єктів, класів тощо).
Оскільки курс практичний, то важливою частиною є готовий фінальний продукт. Найцікавіше, щоб створити його, швидше за все, не вистачить всього того багажу програмістських знань, набутих за півтора року в університеті. Техносвіт постійно розвивається, а значить і для свого проєкту треба використовувати щось цікаве та свіже. Тут, звичайно, на допомогу приходить команда, адже разом розбиратися з чимось новим набагато продуктивніше.
Основними вимогами до фінального продукту є його практичність, відповідність спочатку описаним вимогам, використання актуальних технологій. Він, бажано, повинен мати кілька варіантів реалізації (наприклад, web та mobile), а також зобов'язаний використовувати API, наприклад, для реєстрації, картки, календаря, оплати. У певному сенсі проєктний практикум схожий на курсову роботу, яку можна виконувати у команді.
Попри те, що командний проєкт, тут не відбувається розбивання ролей на «проєктувальник», «кодер», «дизайнер». Кожен член маленької команди одночасно є «робітником будь-якої спеціальності», тому що завдання курсу — це кожному студенту дати цілісне розуміння всіх етапів розробки програмного забезпечення. Саме тому оцінюватиметься не команда, а кожен учасник індивідуально, виходячи з кількості роботи, яку він зробив.
Під час захисту необхідно, по-перше, підготувати презентацію, яка складатиметься з результатів роботи на практичних та лабораторних (тих самих діаграм та документів), по-друге, матиме готовий розроблений продукт.
Найбільший плюс цього предмета, як на мене, це командна робота. Окремих завдань вистачає і так, а ось моментів, коли можна насолодитися атмосферою спільного вирішення складних завдань, не так і багато, особливо з огляду на річну дистанційну форму навчання.
Проєктний практикум — це зменшена модель реальної практики, надана в рамках навчального процесу, де на поверхню будуть пробуджені як отримані нещодавно знання, так і ті, що акуратно складені в голові з першого семестру першого курсу. Через столики кафе або університетські стіни коворкінгу, на "дистанційці" проєктний практикум безболісно переїхав на сервери дискорду та чати телеграма. Так що, незважаючи на дистанційне навчання, ми так само маємо можливість спробувати зробити щось цікаве, використовуючи привабливі технології й навіть відчути атмосферу командної студентської роботи.
Cтефні Огу