VISUAL BASIC – НЕЗРІВНЯННІ ПЕРЕВАГИ ТА ІНШЕУ курсі базової інформатики у середній і вищій школі (для інженерно-технічних напрямів підготовки) можна виокремити два важливі розділи. Це «Комп’ютерні технології» та «Основи алгоритмізації і програмування». У 2011/2012 навчальному році для вивчення розділу «Основи алгоритмізації і програмування» у середній школі на рівні стандарту надається відповідно до основної програми 5% від загальної кількості годин трирічного курсу, а на академічному рівні — 22% [1]. Правда, у схваленій предметною комісією з інформатики 03.06.2011 додатковій програмі з інформатики кількість годин на вивчення цього розділу на рівні стандарту збільшено удвічі і доведено до 11. У вищих навчальних закладах на інженерно-технічних (некомп’ютерних) напрямах підготовки на вивчення відповідного розділу програми у рамках дисциплін, які зазвичай називаються «Інформатика» або «Інформатика та комп’ютерна техніка», надають від 30 до 50% від загальної кількості аудиторних годин. Не можна не погодитися з тезою, що в умовах неодноразової зміни освітніх парадигм та технологій навчання, апаратних платформ та технологій програмування актуальним стає перехід до нової моделі навчання, що формує в майбутнього фахівця здатність до розв’язування нестереотипних професійних задач, до творчого мислення на основі фундаментальних знань [2]. Питання фундаменталізації курсів базової інформатики є актуальним і може вирішуватися головно зростанням ролі інформаційного моделювання, розвитком алгоритмічного компонента діяльності і в дещо меншій мірі математизацією змісту навчання. Актуальним знову постає питання наступності змісту навчання, яке було зняте з порядку денного декілька років тому, коли школи забезпечили певний рівень знань своїх випускників, який більш-менш корелювався з задекларованими у навчальних програмах рівнями учнівських компетентностей. Як показали результати інтернет-опитування кількість школярів, які вчаться за програмою рівня стандарту і фактично не будуть ознайомлені з основами алгоритмізації і програмування, становить орієнтовно 60% . Це означає, що програми з інформатики для вищих технічних начальних закладів треба буде знову переглядати, але вже в інший бік, а саме: з метою передбачення вивчення розділу «Основи алгоритмізації і програмування» від самих початків. Сьогодні вже не постає питання: чи потрібно вивчати цей розділ взагалі. На нього було дано ствердну відповідь раніше [3], але під час розробки нових галузевих стандартів вищої освіти цей розділ необґрунтовано випав з програм деяких напрямків підготовки. Так на напрямку «Менеджмент» не тільки він, а ціла дисципліна «Інформатика та комп’ютерна техніка» на першому курсі підмінена зовсім іншою дисципліною «Інформаційні системи та технології», яка відповідно до змісту мала би вивчатися на третьому курсі. Відкритими і актуальними залишаються питання методики навчання, яка має передбачити високий рівень мотивації навчання, врахування специфіки різних напрямів підготовки, націленість на розвиваюче навчання, на гармонійний розвиток особистості майбутнього студента чи фахівця, на формування загальної інформаційної культури і здобуття відповідних компетентностей. Роль розділу «Основи алгоритмізації і програмування» як провідника концепції фундаменталізації курсів інформатики є значною. Головними завданнями цього розділу насамперед є: навчити моделювати реальні об’єкти і явища; навчити аналізувати та знаходити розв’язки задач, які є моделями життєвих (розвиток асоціативного мислення); розвивати алгоритмічне мислення; розвивати творчі здібності особистості; роз’яснити принципи функціювання комп’ютера і роботи з даними; навчити добирати засоби для розв’язування типових задач; навчити аналізувати та приймати правильні рішення, що є неодмінною вимогою до сучасного спеціаліста будь-якого напрямку підготовки: будівничого, економіста, менеджера, інженера-механіка тощо. Важливо, щоб навчальний процес був сучасним, умотивованим, максимально зрозумілим та цікавим. Не можна однаково подавати матеріал для майбутніх економістів, хіміків, математиків чи програмістів. Разом з тим варто виокремити набір задач, які становлять інваріанту частину у навчанні учнів та студентів різних напрямів підготовки. Власне такі задачі і мають розглядатися в школі і на першому курсі навчання в рамках базового предмета інформатика. У цій статті ми зробимо спробу проаналізувати деякі підходи щодо вивчення алгоритмізації і програмування для різних профілів у школі та напрямків підготовки у вищих навчальних закладах різних рівнів і запропонуємо шляхи вирішення посталих проблем. Сьогодні під час вивчення розділу «Алгоритмізація і програмування» звертається увага на такі стилі програмування: традиційне процедурне програмування; розробка програм і проектів у візуальних середовищах; об’єктно-орієнтоване програмування (ООП). Розглянемо ці три стилі. Освоєння процедурного програмування зазвичай зводиться до вивчення алгоритмічної мови Паскаль, що сьогодні є слабо мотивованим, оскільки сфери застосування мови постійно звужуються, хоча ще залишаються міцними. Мова відігравала важливу роль у 80-90-х роках минулого століття, увійшла у навчальний процес в Україні з десятирічним запізненням і, здається, покидати вона його збирається з тим самим десятирічним запізненням. Сьогодні роботою в консольному режимі ні учнів, ні студентів зацікавити не можливо. Для сьогоднішнього рівня загальної підготовки учнів і студентів мова є заскладною, часто з нездоланною синтаксисом і семантикою. Вивчення основ програмування у відповідних візуальних середовищах (Delphi чи Lazarus) може ще на деякий час відтермінувати її відхід, але не надовго і лише за умови застосування вдалих методик навчання. Другий з перелічених стилів хотілось би назвати візуальним програмуванням, розширюючи традиційне трактування цього поняття. Традиційно візуальним програмуванням називають стиль розробки програм засобами візуальних елементів, коли текстових кодів «вручну» не пишуть взагалі. Таке візуальне програмування використовується лише для розв’язування вузького кола специфічних задач специфічними програмними засобами. У цій статті пропонуємо візуальне програмування трактувати як стиль програмування, де домінує конструювання інтерфейсу програми із візуальних елементів керування (компонент), а написання кодів «вручну» зводиться до створення кодів реакцій на події в стилі процедурного програмування. Це дає змогу процедурне програмування розглядати як частковий випадок візуального, а візуальне програмування (ВП) трактувати як розробку візуального інтерфейсу (ВІ) з застосуванням процедурного програмування (ПП), тобто ВП=ВІ+ПП. Підхід, у якому візуальне програмування можна розглядати як візуальну оболонку над процедурним є дуже продуктивним у методичному плані. Візуальне програмування — це той прорив у програмуванні, який можна порівняти з переходом від MS DOS до Windows, що відбувся в операційних системах двадцять років тому. Фактично реалізація процедур здійснюється мовами, які належать до класу об’єктно-орієнтованих, але про об’єктно-орієнтоване програмування тут мова не йтиме. Учні та студенти із задоволенням створюють форми, вставлять різні елементи керування, змінюють їх властивості, програмують кнопки тощо, оперуючи поняттями об’єкт, метод об’єкта, властивість об’єкта, значення властивості, що дає змогу побудувати нову модель навчання, яка базується на принципах фундаменталізації предмету. З’явився додатковий простір і поштовх для творчості і самоутвердження власне під час роботи над дизайном форми, що часто потребує креативних підходів, самостійного освоєння окремих тем чи питань, які як з’ясувалося можна легко подолати, знайомлячись з довідковими системами чи он-лайн допомогою, чи звертаючись до спільнот в інтернеті. Достатньо вчителеві чи лектору вимовити фразу «Ви можете вставити елемент керування класу «відеоплеєр» на форму і прокручувати відео», як далі все відбувається автоматично і без участі викладача — на учнівських чи студентських формах з’являться не тільки відеоплеєри, але й інші екзотичні елементи керування. Усі основні традиційні задачі курсу «Основи алгоритмізація і програмування» легко реалізуються зі значно більшим зовнішнім ефектом і внутрішнім розумінням. Рівень знань і вмінь за такого підходу вищий і умотивованість та зацікавленість у навчанні набагато більша. Традиційні задачі, які рекомендується вивчати в розділі процедурного програмування можна оформляти як візуальні проекти і використання консольного режиму роботи зводити до мінімуму. Чи можна програмування з налаштуванням стандартних візуальних об’єктів, якими є елементи керування, назвати об’єктно-орієнтованим. Однозначно, ні. Об’єктно-орієнтоване програмування починається зі створення власних класів і дотримання відповідної парадигми ООП, яка є досить строгою. Програмування з побудовою власних класів, що базується на принципах моделювання предметних областей, зокрема, мовою UML, на нашу думку, слід використовувати виключно для студентів, зокрема, комп’ютерних та математичних спеціальностей. Безумовно, це найсучасніший стиль у програмуванні, оволодівши яким можна стати досвідченим фахівцем у даній галузі. Але для більшості інженерно-технічних напрямів підготовки такий підхід є заскладним і надлишковим. Можна продемонструвати принципи ООП на прикладі інтерфейсної частини проекту, яку середовище створює автоматично під час вставляння на форму елементів керування. Можна продемонструвати формальне застосування принципу інкапсуляції для побудови власного класу, але лише з ознайомчою метою, тому що такий підхід без застосування наслідування, поліморфізму, конструкторів і деструкторів є непродуктивним. Щодо вибору середовища програмування, то слід зауважити, що завжди підкреслювалось, що не важливо якою мовою (Бейсик, Паскаль чи C) програмувати і в якому середовищі (Visual Basic .NET, VBA, Delphi, C# у Visual Studio) працювати. Реалізації концепції навчання у відповідних середовищах програмування з точністю до синтаксису мов дуже схожі. Опанувавши одну з мов програмування не складно буде розібратись самостійно і з іншою. Однак ми вважаємо, що зваженої альтернативи мові Visual Basic немає. Треба врахувати питання легальної доступності того чи іншого середовища програмування. Варто, щоб воно було також безкоштовним. В зв’язку з цим під час вивчення інформатики в школі доцільно зупинити вибір на мові Visual Basic в середовищах класу Visual Basic .NET чи VBA. Такий вибір обумовлений декількома причинами: 1) навчальні заклади, учасники програми MSDN AA, започаткованої корпорацією Microsoft, можуть отримати пакет програм Visual Studio 2008 і деякі програми з пакету MS Office 2007, що дає можливість легально використовувати Visual Basic для навчальних цілей; 2) середовище Visual Basic 2010 Express можна безкоштовно завантажити на локальний комп’ютер з сервера компанії Microsoft (http://www.microsoft.com/express/downloads); 3) на багатьох комп’ютерах встановлено програми з пакету Microsoft Office різних років випусків. Усі ці програми мають вбудований засіб для створення повноцінних програм у VBA-середовищі; 4) пакет вільнопоширюваних офісних програм OpenOffice.org також містить середовище розробки подібне до VBA. Отже, для вивчення основ програмування не потрібно встановлювати додаткові, зазвичай платні, програми на кшталт Delphi. Усі найважливіші поняття і принципи програмування легко засвоїти власне у найпростішому середовищі — середовищі VBA. Отримані знання і навички мобільні, тобто переносяться на інші середовища програмування з незначними адаптаціями. Уявіть таке, ви пропонуєте учням чи студентам запустити програму MS Word і прямо в документі оформити розв’язування задачі додавання двох таблиць (масивів). Цю задачу можна розв’язати за 10 хвилин, написавши нескладний VBA-код додавання двох двовимірних масивів для кнопки «Пуск» (рис. 1, [4]), фактично змоделювавши роботу з грідами (сітками) даних. Рис. 1. Моделювання грідів у документі MS Word Легко переконатися, що будь-яку традиційну задачу з програмування можна розв’язати засобами VBA у середовищі програм MS Word, MS Excel чи MS Visio (власне вона доступна безкоштовно відповідно до ліцензії MSDN AA). Для цього достатньо відкрити офісну програму-додаток, за допомогою комбінації клавіш Alt+F11перейти в середовище VBA, вставити командою Insert UserForm у робоче поле форму, заповнити форму елементами керування і запрограмувати їх. А можна вчинити ще простіше, виконавши такий алгоритм: 1) відкрити MS Word; 2) відкрити панель інструментів Visual Basic; 3) відкрити панель елементів керування; 4) вставити з неї на аркуш потрібні елементи керування з класів «кнопки», «написи», «поля» чи «зображення» тощо; 5) запрограмувати кнопку, двічі клацнувши на ній в режимі конструктора (це перша кнопка на панелі елементів); 6) повернутися на аркуш, згорнувши вікно коду. Отримаємо готовий проект, який, наприклад, показано на рис. 2. Починаючи роботу у VBA, треба пам’ятати про необхідність понизити рівень безпеки комп’ютера до середнього чи низького (кнопкою Безпека... на панелі Visual Basic), інакше робота з VBA може бути заблокована з повідомленням «Marcos enabled». Усі інші відомості можна почерпнути з [4], де паралельно описано два середовища програмування: Visual Basic 2010 Express та Visual Basic for Applications (VBA). Повернемося до питання наступності у навчанні інформатиці у середній і вищій школах. Сьогодні у вищих начальних закладах починають навчати розділу «Основи алгоритмізації і програмування» на досить високому рівні, орієнтуючись на старі шкільні програми, де вивчення цього розділу декларувалось всіма учнями на рівні, достатньому для подальшого навчання студентів у темпі «мозкового штурму». Тепер стандарти і відповідні програми вищої школи стануть нереальними для виконання. Адже навіть на комп’ютерні факультети вступають випускники зі шкіл різного профілю підготовки і рівня вивчення інформатики. Наприклад, випускники англійської спецшколи можуть потупати на комп’ютерний факультету, що цілком реально. Сьогодні в цих школах не то що розділ «Основи алгоритмізації і програмування» не вивчають, там сам предмет «Інформатика» є другорядним. Рис.2. Розв’язування задач засобами VBA в документі MS WordТому або треба переглянути відповідні стандарти і програми вищої школи, або розділ «Основи алгоритмізації і програмування» слід вводити у рівень стандарту середньої школи обсягом хоча би 11 год, що пропонується додатковою програмою. Як добитися успіхів у навчанні цього розділу? Перш за все потрібно внести зміни до курсу математики або хоча би апелювати до колег-математиків більше звертати увагу на питання, дотичні до алгоритмізації та моделювання. На жаль, сучасні учні часто не вміють проаналізувати поставлені перед ними задачі, змоделювати відповідний процес чи явище. Асоціативне мислення в них розвинуте слабо. Задача обчислити площу клумби (навіть з уточненням, що вона має форму круга) у першокурсників викликає легкий шок, а формулу для розв’язування s = πr2 знає лише кожний п’ятий. В ідеалі інформатика мала б займатися дослідженням формальних моделей, а побудова моделей — це завдання, яке треба розв’язувати в курсах математики, фізики та інших дисциплін. Поняття табулювання функції, як задачі створення таблиці значень аргументу та функції з деяким кроком зміни аргументу, учні часто не знають. Формулу для периметра трикутника вони записують так: a + b + c = p, а потім так її і програмують. Про те, що 0.03 = 3 * 10–2 , а отже 0.03 = 3.0е–2 знає кожний десятий. За останні роки не було ні конференції, ні нарад фахівців, ні публікацій, які могли би дати оцінку програмам з математики в контексті потреб, які виникають під час вивчення інформатики. У вищій школі навчальні програми з інформатики прийнято погоджувати з викладачами вищої математики та навпаки. Такі погодження варто робити і на шкільному рівні. Саме навчання треба зробити доступним і багаторівневим. Не варто ставити занадто складних задач. Кожний учень і студент під час навчання мають зрозуміти, що вони можуть чогось досягти і що є до чого прагнути. У школі треба відстежувати чотири рівні навчальних досягнень: початковий, середній, достатній і високий. На початковому рівні варто пропонувати розібратись з готовими проектами, алгоритмами та кодами, відтворити їх у середовищі програмування. На середньому рівні необхідно виконати нескладні завдання на модифікацію, наприклад, додати на форму певні елементи керування, змінити властивості деяких об’єктів, внести незначні зміни в коди тощо. На достатньому рівні потрібно вміти робити складніші завдання на модифікацію: перенаправляти потоки введення-виведення даних, додавати нові елементи до проекту та самостійно складати до них коди. На високому рівні слід створювати свої власні проекти із моделюванням предметних областей, творчо використовувати отримані під час вивчення знання, а також відомості з мережі, онлайн-спільнот і систем допомоги. Навчання треба будувати «від задач» і «від зразків проектів». Вивчати конкретну тему з програмування потрібно не заради тої чи іншої алгоритмічної конструкції, а заради розв’язування конкретних задач, бажано близьких до життєвих. Навчальна література з програмування часто має такий недолік: вона є лише детальним довідником з мови програмування. Наприклад, у мові Visual Basic є цикли For і While, а також чотири цикли Do Loop, які є абсолютно надлишкові у базовому курсі, проте їх детально описують у багатьох підручниках. Для успішної роботи у візуальному середовищі достатньо лише декількох елементів керування і окремих їх властивостей. У підручниках часто наводять повні списки і елементів керування і їх властивостей, що є надлишковим. Правильно організований навчальний процес, добре підібрані дидактичні та методичні матеріали, узгодженість з напрямом та профілем навчання під час вивчення розділу «Алгоритмізація і програмування» є необхідними складовими для досягнення педагогічної мети і побудови нової моделі навчання. Сьогоднішні учні та студенти мають вміти планувати, прогнозувати, відшуковувати оптимальні розв’язки поставлених перед ними життєвих задач, а наш обов’язок — їм у цьому допомогти.Література 1. Інтернет-ресурс, http://www.mon.gov.ua/education/average/prog12/ inf_st.doc. 2. Семеріков С.О, Теплицький І.О. Теоретичні та методичні основи фундаменталізації навчання інформатичних дисциплін у вищій школі. /Теорія та методика навчання математики, фізики, інформатики: збірник наукових праць. Вип. VIII. – Вид. відділ НметАУ, 2010. – Т.3. – С. 223-239. 3. Глинський Я.М., Глинський Ю.Я., Ряжська В.А. Наступність вивчення базових розділів інформатики у середній і вищій школі. /Теорія та методика навчання математики, фізики, інформатики: збірник наукових праць. Вип. VIII. – Вид. відділ НметАУ, 2010. – Т.3. – С. 50-55. 4. Глинський Я.М. Основи алгоритмізації і програмування мовою Visual Basic. – Львів: СПД Глинський, 2011 – 272 с.