Osvita.ua Середня освіта Сучасна освіта Розвивальна інформатика у школі
Розвивальна інформатика у школі

Прикладні програмні продукти шкільного курсу можуть стати засобом розвитку мислення та творчості учнів

Розвивальна інформатика у школі

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

Що має розвивати інформатика


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

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

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

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

Отже, спробуємо такі цілі та завдання окреслити. З нашого погляду, навчання інформатики має в учнів розвинути:

  • А. Алгоритмічне мислення.
  • Б. Структурне мислення.
  • В. Творчі здібності.

Під алгоритмічним мисленням найчастіше мають на увазі такі вміння:

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

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

Бази даних – основа структурного мислення


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

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

Образно кажучи, мова йде про вміння «розкладати дані по поличках», яке в сьогоднішньому переповненому інформацією світі є надзвичайно важливим. І в інформатиці є тема, яка, у разі застосування правильної методики, виховує саме це вміння. Йдеться про бази даних. Цю технологію категорично не можна перелічувати через кому в ряді «офісних» технологій. Вона незрівнянно фундаментальніша, ніж, скажімо, обробка текстів чи створення презентацій. СУБД по суті не є офісною програмою, MS Access включено в пакет Office лише з певних маркетингових міркувань. Фундаментальне значення цієї технології в курсі інформатики пояснюється не стільки тим, що база даних є складовою ледь не кожної більш-менш великої програмної системи, скільки тим, що в основі будь-якої бази даних лежить модель певної предметної області, а конструювання таких моделей розвиває три перших із перелічених вище чотирьох компонентів структурного мислення.

Перші 3–6 уроків із теми «Бази даних» має бути присвячено побудові моделей «сутність ‑ зв’язок» предметних областей. Це теоретичні уроки, які мають проходити або з вимкнутими комп’ютерами, або з використанням редактора моделей «сутність ‑ зв’язок», наприклад http://www.gliffy.com. Вивчення баз даних не можна починати з роботи в середовищі СКБД, оскільки тоді технологічні аспекти замулюють сутність справи, учневі важко відрізнити, які відомості важливіші – про склад меню «Файл» у MS Access чи про головний принцип семантичного моделювання. А головне в цій темі – навчитись виявляти у предметних областях сутності (це все одно, що класифікувати об’єкти) та коректно й ненадлишково встановлювати між ними зв’язки. Таке вміння стане міцним фундаментом для подальшого вивчення і СКБД, і об’єктно-орієнтованого програмування, і загалом сформує в учня певні мисленнєві схеми. Це один із найважливіших розвивальних аспектів курсу інформатики.

Електронна таблиця – полотно для інформатичної творчості


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

Усі задачі, що розв’язуються засобами ТП, можна поділити на три класи:

  • А. Робота з даними в окремих клітинках.
  • Б. Обробка рядів даних.
  • В. Обробка наборів однотипних об’єктів.

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

Украй важливо, що, уводячи лише кілька формул, у табличному процесорі можна реалізувати лінійний алгоритм або алгоритм із розгалуженням і виконати його для різних наборів вхідних даних. Аналогом умовного оператора в MS Excel є функція IF, клітинки – це аналоги змінних, їхні адреси – імена змінних (а ще краще надавати клітинкам змістовні імена), вміст – значення змінних, типи даних у електронній таблиці майже нічим не відрізняються від типів даних у програмуванні. У ТП є також логічні функції, що дають змогу будувати складені логічні вирази, таблиці істинності булевих функцій і опановувати основи алгебри логіки загалом. «ТП-програміст» не обмежений синтаксичними умовностями мов програмування, він пише тільки той «код», який безпосередньо стосується алгоритму, але головним є те, що ТП процесор надає дуже зручне та просте середовище для застосування алгоритмів до розв’язання практичних задач.

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

Багато задач класу Б тісно пов’язані з алгоритмічною конструкцією повторення, що моделюється копіюванням в електронній таблиці деякої формули в діапазон. Але найважливіший випадок – коли копіюється рекурентна формула, наприклад, формула для обчислення ряду чисел Фібоначчі або факторіалу. У цьому разі формула, яку вводить учень у клітинку електронної таблиці, є нічим іншим, як тілом циклу. Звичайно, розвивальний момент подібної обчислювальної задачі полягає саме у винайденні цієї формули, а не в написанні слів FOR, PROGRAM, оголошенні змінних тощо. Тобто в ТП учень відразу опрацьовує саму суть задачі, а в середовищі програмування виконує багато зайвих дій. Таким чином, навчання моделюванню простих ітеративних обчислень за допомогою ТП є більш ефективним.

Розвивальний аспект реалізується і в іншому типі задач класу Б – задачах на інтерпретацію, вибір типу й побудову діаграм. Як показало міжнародне порівняльне дослідження рівня природничо-математичної освіти TIMSS, характерною рисою українських школярів є абсолютна безпорадність у розв’язанні задач на графічну інтерпретацію даних. Дійсно, цього матеріалу немає в навчальній програмі жодної зі шкільних дисциплін, а в інформатиці він часто зводиться до навчання користуванню майстром діаграм, хоча насправді питання про те, які кнопки натискати в цьому засобі, абсолютно другорядне, а першочерговим завданням є набуття таких умінь: інтерпретувати діаграми; добирати тип діаграми залежно від природи вхідних даних.

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

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

Описані нами змістові зв’язки теми «Електронні таблиці» з двома іншими темами зображено на рис. 1.



Програмування – не лише кодування


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

Загалом слід зазначити, що парадигма програмування як написання коду поступово відходить у минуле. У 70-х роках ХХ століття програміст уподібнювався письменнику, що сідав за комп’ютер і писав програму приблизно так, як пишуть роман. Зараз створення програм більше нагадує будівництво, а «програміст» – це така сама збірна назва багатьох спеціальностей, як і «будівельник». Важливо не тільки, як кладуть цеглу (пишуть код), але й якою є архітектура споруди (програмної системи). Для проектування архітектури програмних систем призначено суто візуальну мову UML, яка, строго кажучи, є не мовою, а набором правил опису різнотипних діаграм. Немає жодних причин, щоб не вивчати окремі аспекти UML у середній школі. Це не менш корисно та цікаво, ніж писати програмний код.

Варто також згадати про численні непроцедурні мови, наприклад, HTML чи SQL. Їх синтаксис дає змогу описувати вимоги до інформаційних систем. Тобто людина за певними формальними правилами описує, що вона хоче отримати від інформаційної системи, не описуючи, як цього досягти, оскільки «як» генерується зі «що» автоматично. Не слід думати, що непроцедурні мови менш розвивальні за мови програмування. Можна сформулювати безліч запитів, запис яких мовою SQL потребує нетривіального застосування логіки та є не менш цікавою задачею, ніж задачі на олімпіадах всеукраїнського рівня із програмування. В умовах відбору записів у мові SQL використовуються не тільки логічні функції «НЕ», «І» та «АБО», але й оператор «належить», квантори існування, загальності та інші засоби. Інакше кажучи, у програмуванні застосовується апарат логіки висловлювань, а в SQL – числення предикатів. Тому мова SQL є значно потужнішим, ніж програмування, засобом розвитку логічного мислення (ще одного розвивального компоненту курсу інформатики, який можна віднести як до структурного мислення, так і до алгоритмічного).

Висновки

Ця стаття не претендує на вичерпність розкриття піднятої в ній теми. І найменш вичерпними є переліки розвивальних напрямів курсу інформатики, компонентів алгоритмічного та структурного мислення. Фактично ми лише навели кілька прикладів того, як можна орієнтувати курс інформатики в розвивальному напрямі завдяки двом темам: «Робота з електронними таблицями» та «Бази даних». Ми не вказали розвивальних можливостей інших тем, зовсім не розкрили зміст третього розвивального компонента – розвитку творчих і комунікативних здібностей, ми постійно повторювали слова «моделювання», «об’єкт», «оптимізація», не зробивши з цього ніяких висновків (а це не що інше, як наскрізні змістові лінії курсу, і його розвивальні аспекти має бути розглянуто в їхньому розрізі також). Усе це може стати предметом наступних досліджень і статей, в яких незмінним залишатиметься один постулат: інформатика може й повинна бути розвивальною. Кожен урок має спонукати чи навіть змушувати учня зробити якісь рухи головним мозком. А інакше для чого взагалі навчатись?

Автор: Завадський Ігор Олександрович, к. ф-м. н., доцент, факультет кібернетики КНУ ім. Тараса Шевченка, zava@ukr.net.

Освіта.ua
11.09.2012

Коментарі
Аватар
Залишилось 2000 символів. «Правила» коментування
Ім’я: Заповніть, або авторизуйтесь
Код:
Код
Немає коментарів

Щоб отримувати всі публікації
від сайту «Osvita.ua»
у Facebook — натисніть «Подобається»

Osvita.ua

Дякую,
не показуйте мені це!