👨‍🏫Розминка№1 - програмування без програмування🧑‍🎓

in Ukraine on Steemlast month (edited)

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

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

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

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

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

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

Часто на перших заняттях я даю задачі на логіку, які не вимагають спеціальних знань — тільки здатності мислити.
У мене є ще 50х років стара книга "Математична кмітливість", або "Твій вільний час" а його(часу) в доінтернетну епоху було просто море.

image.png

Наприклад, є відома задача, яка зустрічається ще в текстах VIII століття, про вовка, козу і капусту. Її суть така: потрібно перевезти через річку вовка, козу і капусту на човні, але в човен поміщається лише одна з цих трьох речей разом з перевізником. При цьому, якщо залишити вовка і козу разом без нагляду, вовк з’їсть козу, а якщо залишити козу і капусту – коза з’їсть капусту. Як перевезти всіх так, щоб ніхто нікого не з’їв?

Це класична задача, і її багато хто знає, інша не така популярна....

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

Солдати задумалися, як їм потрапити на інший берег, якщо човен такий маленький. Хлопці погодилися допомогти і стали міркувати разом із солдатами. Завдання було непростим, але моміркувавши вони допомогли солдатам переправитися на інший берег.

Ще одна))

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

Якщо розв'яжете ці три задачі - можете спробувати сили в цій.

image.png
Здається там такі обмеження:
Злочинець без поліцейського б'є всих
Папа у відсутності мами б'є дочок
Мама у відсутності папи б'є синів
Діти самі не плавають

Sort:  

You've got a free upvote from witness fuli.
Peace & Love!

 28 days ago 

Цікаві завдання. Дійсно, математика "цариця усіх наук. Першу задачу розрішив, а от з рештою поблеми...

Якщо не застосовувати додаткові матеріали типу мотузку то другу задачу не вдається вирішити

З третьою також питання, є рішення та одному доведеться плисти у воді тримаючись за човен

 27 days ago 

Ні мотузок, ні тримання за човен непотрібно

 27 days ago 

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

 27 days ago 

бритва Оккама - все набагато простіше))

 26 days ago 

Треба розбиратись, забув те що не знав 😅
Хочаб буду знати що та де шукати