Комп’ютерні науки та математичне моделювання – поєднання майбутнього?

Цей матеріал є записом розмови з завідуючим кафедрою динаміки та міцності машин, що проходила 18 червня 2022 року на презентації освітньої програми “Моделювання, проектування та комп’ютерна графіка” з освітньою траєкторією “Моделювання процесів, обробка та аналіз даних”.

Водка Олексій Олександрович
Водка Олексій Олександрович

Водка Олексій Олександрович – завідувач кафедри динаміки та міцності машин, кандидат технічних наук, доцент, лауреат премії президента України для молодих вчених.

Динаміка та міцність машин
Динаміка та міцність машин

Кафедра динаміки та міцності машин – випускаюча кафедра за спеціальностями 122 “Комп’ютерні науки” та 113 “Прикладна математика”, готує спеціалістів у галузі математичного моделювання з 1930 року, з 1999 року готує фахівців з комп’ютерних наук, кафедра входить до складу Навчально-наукового Інституту комп’ютерного моделювання, прикладної фізики та математики (ІКМ).

Всіх вітаю,

Сьогодні я хочу поговорити про комп’ютерні науки та чому комп’ютерні науки це, як виявляться, не зовсім про комп’ютери.

Комп’ютерні науки, що це?

Звернемося до Вікіпедії для того щоб з’ясувати що ж таке комп’ютерні науки (computer science) – це науки про обчислення, автоматизацію та інформацію. Вони включають в себе теоретичні дисципліни, такі як: алгоритми, теорія обчислень та теорію інформації. Також практичне застосування вище згаданих наук в проектуванні та розробці програмного та апаратного забезпечування. З даного визначення видно, що комп’ютерні науки не вивчають самі комп’ютери, а вивчають теоретичні основи роботи комп’ютерів та розробки програмного забезпечення.

Computer science is the study of computation, automation, and information. Computer science spans theoretical disciplines (such as algorithms, theory of computation, and information theory) to practical disciplines (including the design and implementation of hardware and software). Computer science is generally considered an area of academic research and distinct from computer programming.

Комп’ютерні науки вивчають обчислення, автоматизацію та інформацію. Комп’ютерні науки охоплюють як теоретичні дисципліни (алгоритми, теорія обчислень та теорія інформації), так і практичні (розробка та впровадження апаратного та програмного забезпечення). Комп’ютерні науки, як правило, вважаються сферою академічних досліджень і відрізняються від комп’ютерного програмування.
Вікіпедія

Якщо знову повернутися до Вікіпедії то алгоритми та структури даних є серцем комп’ютерних наук. Вони фокусуються на абстрактних моделях обчислень, класах та узагальнених проблемах які вони вирішують і т.д. В комп’ютерних науках є місце для наукових досліджень. В той час, коли комп’ютерне програмування спрямоване на кваліфіковане використовування комп’ютерів для програмування та вирішення конкретних задач.

Algorithms and data structures are central to computer science. The theory of computation concerns abstract models of computation and general classes of problems that can be solved using them…

Алгоритми та структури даних є центральними для комп’ютерних наук. Теорія обчислень стосується абстрактних моделей обчислень і загальних класів задач, які можна розв’язувати за допомогою них…
Вікіпедія

Тому, ще раз хочу звернути вашу увагу на те, що комп’ютерні науки саме про фундаментальні науки, а не про конкретні технології, хоча певна частина конкретних прикладних технологій також вивчається.

Рисунок 1. Комп’ютерні науки: з чого вони складаються

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

Спеціальність чи освітня програма?

Згідно Постанови кабінету міністрів України від 29 квітня 2015 р. № 266 про затвердження переліку галузей знань і спеціальностей, за якими здійснюється підготовка здобувачів вищої освіти, у нас є спеціальності. Їх, відносно, невелика кількість, але вони є досить широки і охоплюють усі галузі знань. Для того, щоб кожен заклад вищої освіти міг зробити щось більш конкретне та привнести щось своє, особливе, в рамках спеціальності існують освітні програми (їх може бути декілька в одному ЗВО за однією спеціальністю). То ж як зрозуміти чим відрізняються освітні програми між собою? Зараз ми говоримо про конкретну спеціальність — це 122 “Комп’ютерні науки”. В Україні є з пів сотні освітніх програм за спеціальністю комп’ютерні науки. То ж що відрізняє спеціальність від освітньої програми?

Спеціальність — це така річ, на яку є стандарт (наприклад, стандарт 122 Комп’ютерні науки). Цей стандарт регламентує, що вивчає студент за чотири роки. Однак стандарт містить в собі лише 50% всіх освітніх компонентів, які мають вивчати студенти. Окрім цього є ще й інші 50%, які можна розділити ще навпіл. Отже, маємо, що ще 25% належить до унікальності освітньої програми. Саме освітня програма визначає ще чверть унікальних компонентів (предметів), які залежать від університету, від профілю кафедри і т.д. Останні 25% відведені на вибіркові дисципліни, яких за стандартом, як раз, і повинно бути неменше 25%. В якості цих дисциплін може бути обраним будь що, що стосується IT, чи є до нього дотичним, чи може взагалі не стосуватися цього.

Спеціальність та освітня програма
Рисунок 2. Спеціальність та освітня програма

Давайте розглянемо це на прикладі нашої спеціальності — 122 “Комп’ютерні науки”. Освітня програма, яка визначає 25% компонент, — це “Комп’ютерні науки. Моделювання, проектування та комп’ютерна графіка”. Також, обираючи нашу освітню програму, вам будуть представлені наступні вибіркові блоки, такі як:

Як представник кафедри динаміки та міцності машин, що готує фахівців за блоком “Моделювання процесів, обробки та аналізу даних”, зосереджусь саме на цій траєкторії. Звичайно, я скажу кілька слів про інші блоки, щоб було зрозуміло, про що йде мова та чим вони відрізняються.

122 — “Комп’ютерні науки. Моделювання, проектування та комп’ютерна графіка”. Вибіркові блоки
Рисунок 3. 122 — “Комп’ютерні науки. Моделювання, проектування та комп’ютерна графіка”. Вибіркові блоки

Моделювання та комп’ютерні науки

Перш за все, коли говорять про моделювання, потрібно зрозуміти, що це? Коли я питаю в своїх студентів, що такие моделювання? Вони всі разом відповідають, що моделювання — це процесс створення моделей. Якщо знову звернутись до улюбленої нами Вікіпедії, то там можна побачити наступне визначення:

Моделювання – це метод відтворення і дослідження певного фрагмента дійсності (предмета, явища, процесу, ситуації) або управління ним, заснований на поданні об’єкта за допомогою його копії або подібності – моделі.
Вікіпедія

А коли запитуєш, що таке модель? То тут думки розходяться. Зрозуміло, що ми говоримо про створення моделей за допомогою комп’ютерів, але, все одно, способи побудови моделей на комп’ютері сильно відрізняються. Але ми всі підсвідомо усвідомлюємо, що модель — це спрощене представлення реальності: явища або ситуації, якими можна керувати чи аналізувати їх поведінку і т.д… Тож, повертаючись до моделювання, яке воно буває? Знову ж Вікіпедія виділяє дуже багато різновидів моделювання:

  • Економічне моделювання;
  • Математичне моделювання;
  • Фізичне моделювання;
  • Комп’ютерне моделювання;
  • Молекулярне моделювання;
  • Цифрове моделювання;
  • Логічне моделювання;
  • Педагогічне моделювання;
  • Імітаційне моделювання;
  • Еволюційне моделювання;
  • Історичне моделювання;
  • 3D моделювання;
Вікіпедія

Серед усього різноманіття видів моделювання нам необхідно обрати такі, що, з одного боку, відповідають профілю кафедри, тому “Історичне” або “Педагогічне” моделювання відпадає, а, з іншого боку, використовуються методи комп’ютерних наук (розробка програмного забезпечення, теорія алгоритмів, структури даних, методи обчислень) для створення моделей за допомогою комп’ютера. Так, з величезного списку залишиться чотири напрямки:

  • Математичне моделювання;
  • Комп’ютерне моделювання;
  • 3D моделювання;
  • Моделювання на основі даних.
Математичне моделювання
Наше уявлення про математичне моделювання

Що ж таке математичне моделювання? Це класичне моделювання, коли використовуються знання з математики, вищої математики або якихось розділів математики таких як диференційні рівняння, інтегральне обчислення і т.д., для розв’язання конкретних задач.

Комп'ютерне моделювання
Наше уявлення про комп’ютерне моделювання

Комп’ютерне моделювання — це коли якийсь процес описується в комп’ютері за допомогою рівнянь. Але тут є особливість, комп’ютер сам під керуванням користувача сам складає рівняння, та сам їх вирішує. Зазвичай, це дуже бути складна обчислювальна процедура, яка потребує великої кількості оперативної пам’яті та обчислювальних ядер. Інколи для вирішення таких задач необхідні суперкомп’ютери.

3D модель механізму
3D модель механізму

Наступне це 3D моделювання – це коли комп’ютер використовується для того, щоб створювати 3D моделі якого об’єкту. Саме 3D моделювання є складовою частиною використання 3D принтерів. Тобто спочатку потрібно створити 3D модель, а потім вже її на принтері надрукувати. До речі в нас на кафедрі є 3D принтер і студенти за бажанням можуть долучитися до проектів з використанням 3D принтера.

Моделювання на основі даних
Моделювання на основі даних

І останнє, моделювання на основі даних. Розберемо такий тип моделювання на прикладі магазину. Мабуть, у всіх вас є картка з магазину, де ви купуєте продукти? Як ви думаєте навіщо магазину вам давати її? Заради дискоyту? Насправді, магазин намагається побудувати модель покупця, на основі даних про вас, що ви він збирає. Коли ви оформлюєте картку, то магазин підписує з вами договір про те, що магазин дає вам картку, а ви залишаєте йому свої персональні данні (вік, стать, сімейне положення) та дані про ваши покупки. Далі за допомогою цієї картки магазин персоналізовано збирає ваші потреби: товари які ви купуєте, як часто ви їх купуєте, які найчастіше купуєте і т.д. Потім магазин аналізує цю інформації для кращого розуміння про поведінку покупця, скільки і яких товарів необхідно мати на складі, щоб задовільнити попит.

Яке ж відношення мають всі ці види моделювання до комп’ютерних наук? Відповідь дуже проста, для того, щоб реалізувати модель за описаними вище методами потрібно бути фахівцем в галузі комп’ютерних наук: розробляти програмне забезпечення, проектувати бази даних, знати алгоритми та структури даних, володіти принципами аналізу даних, статистики та штучно інтелекту. Саме у цьому поєднанні є сила нашої освітньої траєкторії. Ви будете одночасно фахівцем з комп’ютерних наук та математичного моделювання.

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

Моделювання на основі даних та класичні моделі
Рисунок 4. Моделювання на основі даних та класичні моделі

Цей підхід має ще й інші переваги, які пов’язані с тим, що дані збирати легко, година роботи комп’ютера дешевша за годину роботи кваліфікованого інженера, також у комп’ютера менша ймовірність помилки у порівнянні з людиною, а також бувають випадки, коли просто немає такої можливості, щоб створити класичну модель за допомогою рівнянь. Тому саме моделювання на основі даних і є сьогодні проривним напрямком у сфері комп’ютерних наук та обчислень, які дозволяють зазирнути за обрій сьогоднішньої науки про комп’ютерне моделювання і побачити, що нас очікує найближчі 10–15 років.

3D сканування як приклад моделювання на основі даних
Рисунок 5. 3D сканування як приклад моделювання на основі даних

Ще одним прикладом, коли моделювання на основі даних — основний спосіб моделювання, є 3D сканування (рисунок 5). Наприклад, нам потрібно побудувати модель якогось об’єкту, але ми не маємо рівнянь як його побудувати. Ми можемо його встановити в 3D сканер та відсканувати його як набір точок. Після цього обробити ці точки, і ми отримаємо тривимірну модель реального об’єкту. Тобто, це один із підходів коли можна створити модель на основі даних не використовуючи класичне рівняння або якісь складні технології.

Ось саме на цих принципах фокусується наша освітня програма, і ми навчаємо студентів не тільки класичним підходам до програмування, але й вивчаються підходи, які направлені на некласичні сучасні методи моделювання, їхню програмну реалізацію.

Які предмети вивчаються на освітній траєкторії “Моделювання процесів, обробка та аналіз даних”?

Є стандартні предмети, які регламентовані стандартом вищої освіти. До них відноситься програмування, теорія алгоритмів, операційні системи, комп’ютерні мережі, дискретна математика. Про всіх них можна почитати на нашій сторінці про спеціальність. Однак саме в середині траєкторій є найбільше відмінностей.

Я хотів би зупинитися на ключових для нас це:

  • Об’єктно орієнтоване програмування (програмування GUI), яке вивчає принципи ООП, фреймворк QT. Це базовий курс який дозволяє вивчити всю теорію про програмування та навчитися створювати графічні додатки на мові C++.
  • Моделювання та реверсінжиніринг вивчає принцип 3D моделювання та побудову складних систем.
  • технологічні курси, які спираються на вивчення конкретних технологій C# та .NET
  • Чисельні методи. Студенти вивчають як теорію, так і практичну реалізація за допомогою сучасних комплексів Matlab, Maple, а ще на Python.
  • Штучний інтелект, який є розвитком ідей чисельних методів. Він дозволяє проектувати штучні нейронні мережі, проводити задачі аналізу та класифікації за допомогою штучного інтелекту і все це реалізується на сучасній мові програмування Python.
  • Обробка сигналів за зображень яка є не менш важливою. Вона включає опрацювання даних з чисельних датчиків (камер). Основна мета це виділення якихось об’єктів, та, на основі них створювати їх моделі. Такі зображення можуть бути як вхідними даними, так і будь яким іншим складним елементом при створені моделей.

Зрозуміло, що немає універсальних програмних засобів для вирішення будь яких проблем, тому потрібно вміти програмувати системи штучного інтелекту, аналізувати власні результати обчислень, модифікувати стандартні алгоритми з обробки сигналів та зображень. Саме тут вам будуть потрібні навички с програмування, знання мов програмування Python, C#, Java та інші. Тому наша кафедра позиціонує нашу траєкторію як поєднання технологічних курсів з прикладними аспектами, що спрямовані на моделювання в різних галузях застосування знань. Саме це поєднання і є нашою унікальною особливістю, яка вирізняє нас с понад інших комп’ютерних наук та освітніх програм які існують в Україні.

Переваги навчання на нашій траєкторії

Однією з наших конкурентних переваг є команда викладачів, які будуть з вами працювати. В команді є як і досвідчені професори, так і молоді викладачі-практики, які можуть спілкуватися з вами однією мовою, розуміють сучасний сленг і дуже легко зможуть налагодити з вами контакт. Ближче познайомитись з кожним можна на відповідній сторінці нашого сайту.

Викладачі кафедри динаміки та міцності машин
Викладачі кафедри динаміки та міцності машин

Роботи наших випускників мають прикладну направленість, використовують сучасні інструменти розробки програмного забезпечення.

Роботи наших студентів
Роботи наших студентів

Які ще особливості нашої освітньої програми?

Ми використовуємо проектну форму навчання. Що ж це таке? Це навчання дає змогу студентам починаючи з кінця другого, а також на третьому, четвертому курсі в командах виконувати невеликі навчальні проекти. Ці проекти можуть бути як реальними, так і навчальними. В цьому проекті студенти мають пройти весь цикл створення програми, від ідеї та розподілу ролей в команді, до фінальної презентації результатів. Все це відбувається за участі представників IT компаній, які в рамках цієї проектної роботи придивляються до вас, як до майбутніх спеціалістів, якщо ваша робота їм сподобається вони мають змогу запросити вас на роботу.

Одним із варіантів такої роботи є дуальна форма навчання з компанією SoftServ. Ми вже уклали угоду, що студенти починаючи з кінця другого року навчання, можуть перейти на так звану дуальну форму навчання. Це означає, що половину робочого дня вони працюють в компанії за реальну заробітну плату за умови, що вони склали співбесіду та мають потрібні знання. Іншу половину дня знаходяться в університеті та займаються навчанням, яке не можливо перенести до IT фірми. Отже, дуальна форма навчання — це поєднання навчання як в університеті, так і на базі компанії SoftServ за реальну заробітну плату.

Також у нас реалізовані концепція дисциплін вільного вибору. Починаючи з кінця другого, на третьому, четвертому курсі запрошуємо провідних фахівців з галузі викладати по одній дисципліні вільного вибору в семестр. Кожний семестр нам від IT фірм надходять заявки на курси, які б вони хотіли прочитати. Вони надсилають нам свого провідного фахівця, який є гарним практиком в галузі зі стажем 5-7 років і має навички викладання. Цей фахівець раз на тиждень викладає студентам найсучасніші знання на сьогоднішній день, і які він використовує під час своєї роботи.
За рахунок цього, наші студенти отримують найсучасніші знання з тих чи інших технологій, і вони мають змогу сфокусуватися на конкретній технології замість того щоб вивчати їх всі.

Ще хочу відзначити, що у нас є академічна мобільність. Тобто у нас є багато партнерів з якими можна поїхати на семестр чи два за кордон і там навчатися. Після цього перенести оцінки отримані за кордоном в наш університет, і вже тут продовжити навчання.

Компанії - партнери
Компанії – партнери

На рисунку зображені компанії, з якими ми співпрацюємо. Як ви бачите, тут представлений топ IT фірм України, які зараз працюють, і ми майже з усіма підписали договори про співпрацю, тому у нас є прямі взаємодія і ви можете на пряму влаштуватися до цих фірм.

Я хочу підкреслити той момент чому саме ми є тим закладом який дає якісну IT освіту. По-перше, це фундаментальна академічна підготовка. У нас є і складні математичні курси і теоретична підготовка. По-друге, це гнучкі траєкторії, як ви бачите, у нас є багато можливостей щоб обрати власну траєкторію:, через дисципліни вільного вибору, через вибір дисциплін від IT компаній, через дуальну форму навчання, через вибір блоків навчання. Якщо ви хочете чогось навчитися, ви цього навчитесь, а ми вам даємо для цього дуже багато можливостей. У нас є забезпечується актуальність практичної складової технологічних дисциплін через залучення практикуючих фахівців. У нас є академічна мобільність, яка дозволяє вам поїхати на семестр чи два на навчання за кордон. А також ми є тим факультетом який займається науковою діяльністю.

Наші переваги
Наші переваги

Тому ми можемо навчити вас бути не тільки фахівцем в програмуванні, а й навчити вас науковій діяльності, працювати не тільки над розробкою програмного забезпечення, а ще проводити наукові дослідження в галузі комп’ютерних наук та математичного моделювання. Але це ще не все. До цього додається міжнародна співпраця, проектне навчання, фахівці з практики та молодий і водночас досвідчений викладацький склад в якому є все необхідне що б зробити вашу освіту якісною.

До складу нашого університету входять 43 професора, 83 доцента та приблизно 20 старших викладачів. Серед них є 4 викладачі, які отримали премію Президента України, 8 мають стипендію Кабінету Міністрів України та 3 мають стипендію Верховної Ради України. Все це говорить високий рівень нашої підготовки.

Ну і в підсумку. Комп’ютерні науки – це фундаментальна освіта, велика історія, в цьому році кафедрі динаміки та міцності машин виконується 92 роки, тому ми знаємо, що таке комп’ютерні науки, що таке математичне моделювання, і яке воно має бути та як йому навчати.

Особливості вступу цього року

Особливостями вступу цього року є національний мультипредметний тест (НМТ). Він включає в себе новий варіант ЗНО, що поєднує в собі три предмети. Ще однією новацією цього року є мотиваційний лист, який є обов’язковим для вступу на 122 Комп’ютерні науки. Для того, щоб вступити на бюджет потрібно скласти НМТ або мати ЗНО за попередні роки, та написати мотиваційний лист. Якщо ж ви бажаєте вступити на контракт, то потрібно мати НМТ (ЗНО) та мотиваційний лист. Вартість навчання складає 27 тисяч гривень на рік, можлива оплата частинами.

Це все що я хотів вам розповісти про 122 Комп’ютерні науки і нашу освітню програму “Моделювання проектування та комп’ютерна графіка” на кафедрі динаміки та міцності машин.

Дякую за увагу!

standing on fundamentals, intended to innovations…
Інститут комп'ютерного моделювання

Інші корисні посилання: