Сьогодні я хочу розповісти, як кожен,
я маю на увазі, дійсно кожен
може використати комп'ютерну науку для вирішення повсякденних проблем,
і як я сам застосував це для розв'язання медичної проблеми.
Ця історія почалася з мого покійного дідуся.
Всі, хто його знав, пам'ятають його дуже щасливим і веселим чоловіком,
завжди готовим кудись рушати і щось пробувати.
Однак, незважаючи на його захоплення багатьма людьми і багатьма речами,
він панічно боявся голок.
І хоча він старанно слідкував за своїм здоров'ям,
його енетофобія або страх перед голками
змусив його відмовитись від регулярних вакцинацій.
Зрозуміло, що мій дідусь зовсім не є винятком.
Багато людей, молодих і старих,
(Сміх)
панічно бояться голок.
Ви розумієте, що я маю на увазі.
(Сміх)
Зрозуміло, що це проблема, яку потрібно вирішити,
і саме такі думки носилися в моїй голові,
коли переді мною постала задача розробити щось для літніх людей Канади
під час літнього стажування, яке я проходив у віці 17 років.
Світ потребував чогось ліпшого, ніж існуюче в той час
підшкірний укол.
Проблема була в тому, що я зовсім не розбирався в медицині.
Моя освіта та інтереси були в сфері комп'ютерів.
А що коли спробувати
застосувати комп'ютерні науки до розв'язання цієї задачі?
Нині використання комп'ютерних наук для вирішення медичних проблем
може виглядати, принаймні, дивним,
але, власне, комп'ютерні науки це найкращий шлях
для вирішення, здавалося, тяжких задач.
Отож, що ж це таке — комп'ютерні науки?
Комп'ютерні науки —
це вивчення автоматичних алгоритмічних процесів, які виконують обчислення.
Звучить, ніби фраза із науково-фантастичного оповідання,
проте в дійсності все доволі просто.
Комп'ютерні науки вивчають, за допомогою алгоритмів, ефективно і продуктивно
маніпулювати великими обсягами даних
або, простіше, використовуючи інструкції до цих даних.
Як ми можемо використати це все
для вирішення проблем не пов'язаних із обчисленнями?
Однією з найбільш корисних рис комп'ютерних наук
є те, що в них закладено парадигму вирішення проблем.
Комп'ютерні науки вивчають,
як можна складну задачу розглянути простішим способом.
Одна зі стратегій
використаних для вирішення проблеми вакцинації людей, котрі бояться голок,
полягала в тому, щоб звести проблему до її базових змінних та ігнорувати несуттєві.
В комп'ютерних науках це зветься визначенням рамок проблеми.
Коли щось знаходиться за рамками,
то часто лише додає плутанини і непотрібних даних,
тим самим ускладнюючи процес реального вирішення.
Отож, які саме фактори
не дозволяють нам застосувати щось замість голок?
Я помітив, що багато людей, які займалися цією проблемою,
реально загрузнули в тому,
що намагалися вирішити всі-всі питання, дотичні до вакцинації,
замість того, щоб задати питання: "Як краще вводити ці ліки?"
І все це виглядало так, ніби, готуючись до екзамену,
ви перечитуєте весь підручник,
замість того, щоб виділити і систематизувати нотатки.
Отож, розглянувши визначальні для даної проблеми фактори,
я зміг зрозуміти проблему простішим чином.
Ще одною стратегією, яку я використовував, була концепція "варіанти використання".
В комп'ютерних науках варіанти використання застосовують для розгляду
задачі з точки зору тих людей, які отримають користь від її вирішення.
Наприклад, у моєму випадку я розглядав проблему мого дідуся,
який боявся голок і потребував якогось іншого способу іммунізації.
Також я розглянув випадки людей із країн, що розвиваються,
а вони, можливо, потребують не стільки комфортного рішення,
як варіанту, який би був практичним, задовільним у ціні
і легким у транспортуванні та постачанні.
Крім того, я розглянув людей з діабетом,
які мають вдаватись до голок щодня, при кожному прийомі їжі,
яким, можливо, потрібний зручніший метод.
Отож, визначивши найважливіші фактори для людей,
що зіткнулися з проблемою,
можна виробити найбільш придатне вирішення
і, можливо, навіть зрозуміти проблеми,
які спочатку навіть не розглядали.
Ще одна стратегія, яку я використав — розділення проблеми на дві частини:
фізичний аспект і логічний аспект.
Деякі частини задачі не накладають обмежень при їх вирішенні,
а інші можуть мати якісь фізичні обмеження.
Наприклад, у моєму випадку, щоб застосувати оральну техніку вакцинації,
потрібно створити щось таке, що людина зможе ковтнути,
а це якраз і є фізичним обмеженням.
Ну а вже те, як ця система буде доставляти ліки у кров,
більше належить до області фантазії і креативності.
Отож, визначивши, які частини проблеми вносять обмеження, а які ні,
я зміг зрозуміти,
які аспекти проблеми є більш гнучкими і, відповідно, допускають зміни.
А в комп'ютерних науках
існує схожа концепція з назвою функціональна абстракція,
і вона дозволяє зрозуміти, які обмеження є дійсними,
а які, можливо, ми собі самі придумали.
Таким чином, визначивши рамки своєї задачі,
або, іншими словами, зрозумівши вирішальні фактори,
я зміг осягнути, що ж за проблему я маю насправді вирішити.
Розглядаючи різні випадки використання,
я зрозумів, що моє вирішення має бути не лише зручним,
а повинно бути доступним за ціною
і легким у транспортуванні та постачанні.
Переформулювавши задачу в термінах логіки та фізики,
я зміг зосередити свою креативність на тих аспектах проблеми,
які могли вирішуватись нестандартними методами.
Отже, застосовуючи принципи комп'ютерних наук
до цієї зовсім не технологічної проблеми,
я зміг придумати пігулки для вакцини та інших ліків,
які є безпечніші, дешевші, легше транспортуються й доставляються,
і ще — менш жахаючі, ніж підшкірні голки.
Я впевнений, що цей підхід може застосовуватись до будь-яких задач.
Уявіть, хіба не класно, щоб за допомогою комп'ютерних наук
ми могли вирішувати проблеми в медицині,
в мистецтві, бізнесі чи, навіть, просто вдома?
Якщо ми не боятимемось застосовувати принципи комп'ютерних наук
до вирішення повсякденних задач,
то зможемо розв'язувати їх швидше і рухатись до кращого майбутнього.
Дякую вам.
(Оплески)