Стратегії, що дозволяють досягти успіху в розумінні ТКС


19

Я аспірант, який проходить курс теорії обчислень, і у мене виникають серйозні проблеми із створенням контенту, коли мене просять. Я вмію слідкувати за підручником (Вступ до теорії обчислень Майкла Сіпсера) та лекціями; однак коли мене попросять довести щось або придумати офіційний опис конкретної ТМ, я просто задихаюся.

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


5
б’є мене. це здається розумним питанням для цього сайту.
Суреш

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

1
Я думаю, що це питання має заслугу та тип запитання, з яким я наполегливо борюся. Я думаю, що отримати керівництво щодо таких питань із довіреної спільноти - це те, з чим стикаються студенти CS. Я все ж розумію заперечення проти питання. Мені здається, що питання цілком відповідає мета-розділу цього сайту.
BrotherJack

6
@CarlMummert: Кожне питання щодо інформатики - це питання про те, як вивчити інформатику.
JeffE

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

Відповіді:


15

Абстракція - це дуже багато хліба та масла в галузі інформатики, але, на жаль, це важко навчити прямо.

На мою думку, розуміння понять важливіше, ніж вміння механічно обчислювати або доводити речі. Звичайно, вам потрібно знати свій шлях навколо деяких елементарних методів, але м'ясо лежить в іншому місці.

Перш за все, ви повинні певною мірою зрозуміти зміст. З цією метою мені здається корисним задати таке питання, коли щось для вас незрозуміле:

  • Чому ми це робимо?
  • Для чого ми це будемо використовувати?
  • З якими подібними речами це стосується?
  • Як пояснюють це інші джерела ?
  • Що саме я не розумію?

Після того, як ви відповіли на ці запитання (або виявили подальші запитання та обробили їх однаково) і все-таки виникли проблеми, зверніться до своїх викладачів (або сюди). На сьогодні ви вже зможете сформулювати цілеспрямоване, точно сформульоване питання; відповідати на такі запитання - робота ваших викладачів (і філософія StackExchange).

Крім цього, це вправи та досвід. Спробуйте відтворити докази, прочитавши їх; подбайте про те, щоб не вивчити їх напам’ять, а переганяти важливі ідеї з них. Через деякий час ви зможете відтворити всі основні докази, заповнивши прогалини між основними етапами. Навіть пізніше ви почнете бачити закономірності у твердженнях та доведеннях. Ось як люди дивляться на твердження і кажуть: «Так, звичайно, використовуй метод X з теоремою Y, а потім просто використовуй Z, щоб отримати те, що ти хочеш». Це розпізнавання моделей, що підживлюється роками тренувань. Будьте терплячі.

Що стосується основних вправ, зайдіть і знайдіть підручники з деякими. Я маю на увазі конкретні математики Грема, Кнута та Паташника. Ця книга є не лише дорогоцінним інструментарієм для вчених-комп'ютерів, вона також містить безліч вправ з розчинами (!). Не забудьте спробувати вирішити їх, перш ніж шукати відповіді та відтворювати відповіді, які вам довелося шукати.

Ще одна корисна книга - « Вступ до алгоритмів » Кормена, Лейзерсона, Рівеста та Штейна. Входить значна частина глави з математичних основ. Він також містить багато вправ; рішення доступні через пов'язану сторінку (додатковий вміст). Також є відео-лекція одного з авторів, яка може чудово піти з книгою.

Для ознайомлення з лекціями щодо доказів ознайомтесь з лінійними доказами алгебри в Академії Хана . Я не спостерігав за ними, але сподіваюся, вони є і основними, і корисними. Є ще багато доказів в Академії Хана; Я просто вважаю, що лінійні докази алгебри можуть найкраще відповідати інформатиці. Не соромтесь також спостерігати за іншими.


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

Дякую за розуміння. Я дорого прийму вашу пораду і спробую вдосконалити виходячи з цього.
тригоман

Для більш основних потреб Книга доказів може бути цінним посиланням.
Рафаель

8

Іноді я виявляю, що люди, які теоретично не справляються, просто помиляються з основами (на перших 1-3 лекціях вони вважали, що матеріал дуже простий, тому вони не приділяли надто великої уваги, але потім, на лекції 5-7 речей прискорюються, і складати резюме вже пізно).

Як сказав @fbernardo, це може бути хорошою ідеєю почати спочатку. НЕ що стосується FLA (в цьому немає жодної користі при вивченні TC, IMHO), але, безумовно, відкрийте Sipser і починайте вирішувати питання по черзі, за їх наказом. З досвідом ви отримаєте інтуїцію та основні інструменти, необхідні для більш досконалих концепцій.

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

Успіхів, все одно!


3

Моя єдина порада, щоб ви почали з початку. У моєму курсі ми також використовуємо книгу Сіпсера, на мою думку, це хороша книга. Але у нас є курс перед TC, названий FLA (Formal Languages ​​a Automaton), який дав кращу інтуїцію та передумови на TC. Отже, знову ж таки, всі вчаться з різними темпами, а у вас дуже хороша книга. З будь-яким іншим конкретним питанням ви завжди можете знайти тут допомогу. :)


2

Ви ставите загальне запитання у своєму заголовку, а потім принаймні два основні / конкретні пункти у питанні, і я думаю, що на кожен є хороші (окремі) відповіді:

  • як довести речі
  • створити офіційний опис поведінки ТМ

Тут йдеться лише про перший пункт (який за своєю суттю широкий і заслуговує цього) - його різновид слона в приміщенні STEM (наука, техніка, інженерія, математика), що отримує короткі скорочення, і часто переливається на приголомшливий ступінь . Може здатися, ніби ніхто насправді не знає, як навчити будувати докази. Цей підрозділ починається з класів геометрії, тригонометрії та обчислення, але рідко є його суворим елементом. більшість викладачів трактують це як необов'язкове. Здається, цілий клас, присвячений "як довести речі", буде відмінним або навіть критичним доповненням або зміною до STEM-освіти.

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

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

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


1
Додайте класику Полі "Як її вирішити". Також корисно (спеціально для випускників) оглянути математичне письмо, наприклад, Кнут та ін "Математичне письмо". Це надто часто сприймається як належне.
vonbrand
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.