logo
Методика викладання iнформатики

4.5.1. Загальні методичні підходи

Вивчення інформатики формує елементи операційного стилю мислення, який полягає в умінні:

Саме тому формування такого операційного стилю мислення є одним із завдань навчання взагалі і курсу інформатики зокрема. Навчання основ алгоритмізації і програмування забезпечує умови для реалізації таких завдань.

Мета навчання основ алгоритмізації - навчити основних способів організації операцій і даних, а також застосування базових алгоритмічних конструкцій при складанні описів алгоритмів розв'язування різноманітних задач.

Під час вивчення основ алгоритмізації основна увага насамперед повинна приділятися:

• виявленню загальних закономірностей і принципів алгоритмізації за допомогою

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

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

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

Сучасний підхід до вивчення основ алгоритмізації повинен будуватися на таких основних положеннях:

  1. Процес вивчення основ алгоритмізації слід орієнтувати на використання комп'ютера як дидактичного засобу навчання.

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

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

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

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

У змісті навчання основ алгоритмізації можна виділити такі компоненти:

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

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

Теоретичною базою навчання вже відомих алгоритмів і їх використання є: теорії Ж.Піаже, М. Паська, С.Пейперта, які об'єднує наступна ідея: для того, щоб оволодіти алгоритмом, потрібно описати його: а) будь-якою з "своїх" мов (Ж.Піаже, М. Паськ); б) мовою "Черепашки" (С.Псйперт).

Наведемо один із варіантів класифікації мов, які можуть бути покладені в основу вивчення та застосування для навчання основ алгоритмізації:

Класифікацію виконавців алгоритмів можна подати так:

Звідси випливає, що для вивчення відомих алгоритмів і їх використання необхідно передусім вибрати виконавця і вивчити систему його вказівок (мову для запису алгоритмів), тобто набір

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

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

До класичних алгоритмів можна віднести алгоритми таких типів:

  1. для створення, зміни і руйнування інформаційних структур(лінійні списки, дерева, графи);

  2. напівчисельні алгоритми - алгоритми теорії чисел, арифметика багаторазової точності (за Д.Кнутом);

  3. генерації псевдо випадкових чисел (за Д.Кнутом);

  4. пошуку і впорядкування (за Д.Кнутом);

  5. пошуку підрядка в рядкові (за Д.Кнутом);

  6. стиснення інформації;

  7. побудови графічних примітивів.

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

Практика свідчить про доцільність використання такого методу навчання класичних алгоритмів:

  1. Учням пропонується задача для програмування, яка легко розв'язується за допомогою деякого класичного алгоритму (сам алгоритм учневі не повідомляється).

  2. Учень розв'язує задачу, записуючи алгоритм, розроблений самостійно.

  3. Після цього вчитель повідомляє класичний алгоритм, описаний рідною мовою або мовою програмування (але в ньому спеціально пропущені деякі рядки програми).

4. Учень реалізовує алгоритм і робить висновок про міру ефективності своєї реалізації (за часом виконання, за довжиною опису).

Наведемо деякі міркування щодо добору вправ для навчання класичних алгоритмів.

1. Вправи на тестування (процес пошуку помилок у, програмі). Учневі надається текст програми, в якому описано класичний алгоритм, і словесний опис алгоритму. Потрібно побудувати систему тестів для його перевірки.

2. Вправи на оптимізацію. Учневі для роботи пропонується програма (з можливими помилками). Потрібно виявити помилки без її реалізації на комп'ютері і оптимізувати програму за часом виконання.

При навчанні побудови (відкриття) алгоритмів перш за все необхідно разом з учнями з'ясувати питання: в чому полягає процес побудови алгоритму.

Побудувати алгоритм - означає: 1) продумати план деякої майбутньої діяльності; 2) зафіксувати його за допомогою деякої системи позначень, так званою формальною мовою.

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

Як правило написанню програми деякою мовою програмування передує розробка алгоритму. Алгоритм можна записувати навчальною алгоритмічною мовою або відповідною реальною мовою програмування. Передбачається, що мова, яка використовується в таких цілях, містить правила опису основних управляючих конструкцій структурного програмування, зокрема виклику процедур, що дозволяє реалізувати структурний підхід до розробки алгоритмів. У цьому випадку мова програмування не є самостійним об'єктом вивчення, а виступає лише як система позначень, з використанням якої ведеться обговорення проблем і шляхів їх розв'язування. Доцільно виділити такі етапи навчання основ алгоритмізації [189,208-210]:

7-м етап. Вступ до алгоритмізації. Алгоритми над найпростішими типами даних. Проектування алгоритмів "згори-донизу". Базові алгоритмічні конструкції: послідовне виконання вказівок, цикл, розгалуження. Побудова алгоритмів методом покрокової деталізація з використанням раніше описаних.

2-й етап. Навчання класичних алгоритмів (раніше описаних) та їх використання.

Зазначимо, що при навчанні основ алгоритмізації потрібно виділяти три класи вправ

1)задано текст задачі і алгоритм її розв'язування, потрібно виконати алгоритм і з'ясувати особливості роботи за алгоритмом (вправи на тестування);

2)задано лише опис алгоритму, потрібно виконати алгоритм і встановити його призначення (вправи на "відгадування" формулювання задачі);

3)задано лише призначення алгоритму, потрібно написати текст алгоритму - скласти алгоритм і виконати його - протестувати

(вправи на складання алгоритму).