Computational thinking

Computational thinking - це підхід до розв'язання задач, що використовує інформатичні методи. Вперше цей термін використав Сеймур Пеперт (математик, інформатик, педагог) у 1996 році.

Жанет Вінг (President's Professor of Computer Science and Department Head, Computer Science Department, Carnegie Mellon University, USA) пояснює, що computational thinking включає в себе розв'язання задач, проектування систем та розуміння людської поведінки, виходячи з базових понять інформатики.

Перекласти цей термін українською досить складно. Буквальний переклад "обчислювальне мислення" є некоретним, бо не відображає комп'ютерно-орієнтованої складової процесу, а "комп'ютерне мислення", хоч і вказує на дотичність до інформатики, не розкриває суті поняття. (схожі висновки у статті Сейдаметова З.С. Освітні стандарти і освітні технології в області комп’ютингу, 2010).

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

Таке мислення розглядається як четвертий критерій грамотності (fourth R: reading, writing, arithmetics, CT): після вміння читати, писати, рахувати, і включає такі характеристики:
  • аналіз та логічна організація даних;
  • моделювання даних, інформаційні абстракції та симуляції;
  • формулювання задач таким чином, щоб до їх розв'язання залучити комп'ютер;
  • виявлення, тестування та реалізація можливих рішень;
  • автоматичний пошук рішень через алгоритмічне мислення;
  • узагальнення та застосування цих навиків для розв'язання різноманітних задач.

Computational thinking можна охарактеризувати так: (http://www.cs.cmu.edu/~CompThink/papers/Wing06.pdf)
  • концептуалізація, не програмування, а мислення на різних рівнях абстракції;
    набуття фундаментальних, а не рутинних навичок;
  • спосіб мислення людини, а не мислення комп'ютера, метод розв'язання задач;
  • доповнення та поєднання математичного та інженерного мислення, створення математичних моделей, які взаємодіють з реальним світом, розуміння обмежень обчислювальних пристроїв, свобода створення віртуальних світів та інженерних систем за межами фізичного світу;
  • ідеї, а не артефакти - обчислювальні концепції як підхід до розв'язання проблем, практична застосовність у повсякденному житті, зв'язок та взаємодія з іншими людьми;
  • пов'язаність з усім та всюди.


Дехто зводить цей тип мислення до алгоритмічного, що є помилкою. Алгоритмічне мислення полягає у вмінні укласти певну послідовність дій для отримання результату. Computational thinking полягає в опрацюванні даних за допомогою комп'ютера з метою їх кращого аналізу та узагальнення. Алгоритмічне мислення працює на дещо "нижчому" рівні конкретних деталей та методів.

Конкретні методи computational thinking включають:
декомпозицію: вміння розбивати задачу на конкретні деталі так, що можна чітко пояснити процес іншій особі або машині, або й просто записати для подальшого власного використання. Декомпозиція проблеми часто приводить до виявлення шаблонів та узагальнень, таким чином допомагаючи розробити алгоритм. Наприклад, куштуючи нову страву, ми намагаємось впізнати знайомі складові; розповідаючи маршрут до свого дому, ми використовуємо окремі відрізки, які легко ідентифікуються; число 256,37 розкладається на 2*102+5*101+6*100+3*10-1+7*10-2 тощо. 
виявлення шаблонів: вміння виявляти схожі елементи або спільні відмінності, які дозволяють робити прогнози чи знаходити короткі шляхи. Виявлення шаблонів часто є основою розв'язання задач та побудови алгоритмів. Наприклад, ми виявляємо шаблони, або правила, поведінки в класі чи групі, коли вперше у неї потрапляємо; досліджуючи площу прямокутників однакового периметру, ми виявляємо, що чим більша різниця між довжинами сторін, тим меншою є площа фігури тощо.
узагальнення шаблонів та абстрагування: вміння відкидати інформацію, котра не є вагомою для розв'язання певного роду задач та узагальнювати інформацію, котра є необхідною. Узагальнення шаблонів та абстрагування дозволяє подати ідею чи процес у загальних рисах (через змінні) так, що можна використати їх для розв'язання групи схожих задач. Наприклад, сторінка щоденника містить узагальнену та систематизовану інформацію по навчальних тижнях; карта світу є абстракцією планети, через поняття довготи та широти можна з'ясувати місце розташування конкретної точки; в математиці ми використовуємо формули накшталт (a+b)(a-b) = a2 - b2 для розв'язання конкретних прикладів.
розробку алгоритмів: вміння створювати покрокову стратегію для розв'язання задачі. Розробка алгоритмів часто базується на розкладанні задач на частини, та виявленні шаблонів для їх розв'язування. В інформатиці, так само, як і в математиці, алгоритми записуються абстрактно, використовуючи змінні замість конкретних значень. Наприклад, алгоритм, чи рецепт приготування страви; тренер розробляє план гри, в якому гравцям відведені певні функції; для знаходження відсоткової частки однієї величини А в іншій В виконуємо певні арифметичні операції: 100*А/В.

Деякі ресурси про  Computational thinking:
https://csta.acm.org/Curriculum/sub/CompThinking.html
https://csta.acm.org/Communications/sub/CSTAVoice_Files/csta_voice_05_2011.pdf
https://csta.acm.org/Communications/sub/CSTAVoice_Files/csta_voice_07_2011.pdf
http://etec.ctlt.ubc.ca/510wiki/Computational_Thinking
http://www.cs.cmu.edu/~CompThink/resources/TheLinkWing.pdf
https://csta.acm.org/Curriculum/sub/CurrFiles/472.11CTTeacherResources_2ed-SP-vF.pdf
http://www.google.com/edu/computational-thinking/what-is-ct.html
http://gasstationwithoutpumps.wordpress.com/2010/08/12/algorithmic-vs-computational-thinking/

Computational thinking — це підхід до розв’язання задач, що використовує інформатичні методи. Вперше цей термін використав Сеймур Пеперт (математик, інформатик, педагог) у 1996 році.

Жанет Вінг (President’s Professor of Computer Science and Department Head, Computer Science Department, Carnegie Mellon University, USA) пояснює, що computational thinking включає в себе розв’язання задач, проектування систем та розуміння людської поведінки, виходячи з базових понять інформатики.

Перекласти цей термін українською досить складно. Буквальний переклад «обчислювальне мислення» є некоретним, бо не відображає комп’ютерно-орієнтованої складової процесу, а «комп’ютерне мислення», хоч і вказує на дотичність до інформатики, не розкриває суті поняття. (схожі висновки у статті Сейдаметова З.С. Освітні стандарти і освітні технології в області комп’ютингу, 2010).

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

Таке мислення розглядається як четвертий критерій грамотності (fourth R: reading, writing, arithmetics, CT): після вміння читати, писати, рахувати, і включає такі характеристики:

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

Computational thinking можна охарактеризувати так: (http://www.cs.cmu.edu/~CompThink/papers/Wing06.pdf)

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

Дехто зводить цей тип мислення до алгоритмічного, що є помилкою. Алгоритмічне мислення полягає у вмінні укласти певну послідовність дій для отримання результату. Computational thinking полягає в опрацюванні даних за допомогою комп’ютера з метою їх кращого аналізу та узагальнення. Алгоритмічне мислення працює на дещо «нижчому» рівні конкретних деталей та методів.

Конкретні методи computational thinking включають:
декомпозицію: вміння розбивати задачу на конкретні деталі так, що можна чітко пояснити процес іншій особі або машині, або й просто записати для подальшого власного використання. Декомпозиція проблеми часто приводить до виявлення шаблонів та узагальнень, таким чином допомагаючи розробити алгоритм. Наприклад, куштуючи нову страву, ми намагаємось впізнати знайомі складові; розповідаючи маршрут до свого дому, ми використовуємо окремі відрізки, які легко ідентифікуються; число 256,37 розкладається на 2*102+5*101+6*100+3*10-1+7*10-2 тощо. 
виявлення шаблонів: вміння виявляти схожі елементи або спільні відмінності, які дозволяють робити прогнози чи знаходити короткі шляхи. Виявлення шаблонів часто є основою розв’язання задач та побудови алгоритмів. Наприклад, ми виявляємо шаблони, або правила, поведінки в класі чи групі, коли вперше у неї потрапляємо; досліджуючи площу прямокутників однакового периметру, ми виявляємо, що чим більша різниця між довжинами сторін, тим меншою є площа фігури тощо.
узагальнення шаблонів та абстрагування: вміння відкидати інформацію, котра не є вагомою для розв’язання певного роду задач та узагальнювати інформацію, котра є необхідною. Узагальнення шаблонів та абстрагування дозволяє подати ідею чи процес у загальних рисах (через змінні) так, що можна використати їх для розв’язання групи схожих задач. Наприклад, сторінка щоденника містить узагальнену та систематизовану інформацію по навчальних тижнях; карта світу є абстракцією планети, через поняття довготи та широти можна з’ясувати місце розташування конкретної точки; в математиці ми використовуємо формули накшталт (a+b)(a-b) = a2 — b2 для розв’язання конкретних прикладів.
розробку алгоритмів: вміння створювати покрокову стратегію для розв’язання задачі. Розробка алгоритмів часто базується на розкладанні задач на частини, та виявленні шаблонів для їх розв’язування. В інформатиці, так само, як і в математиці, алгоритми записуються абстрактно, використовуючи змінні замість конкретних значень. Наприклад, алгоритм, чи рецепт приготування страви; тренер розробляє план гри, в якому гравцям відведені певні функції; для знаходження відсоткової частки однієї величини А в іншій В виконуємо певні арифметичні операції: 100*А/В.

Деякі ресурси про  Computational thinking:
https://csta.acm.org/Curriculum/sub/CompThinking.html
https://csta.acm.org/Communications/sub/CSTAVoice_Files/csta_voice_05_2011.pdf
https://csta.acm.org/Communications/sub/CSTAVoice_Files/csta_voice_07_2011.pdf
http://etec.ctlt.ubc.ca/510wiki/Computational_Thinking
http://www.cs.cmu.edu/~CompThink/resources/TheLinkWing.pdf
https://csta.acm.org/Curriculum/sub/CurrFiles/472.11CTTeacherResources_2ed-SP-vF.pdf
http://www.google.com/edu/computational-thinking/what-is-ct.html
http://gasstationwithoutpumps.wordpress.com/2010/08/12/algorithmic-vs-computational-thinking/