Visual basic – незрівнянні переваги та інше

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) на багатьох комп’ютерах встановлено програми з пакету Micro­soft 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 с.