Використання платформи Microsoft .NET та мови C#

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

Шевчук Петро Георгійович, аспірант Інституту інформаційних технологій та засобів навчання Академії педагогічних наук України

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

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

Бурхливий розвиток електроніки зумовив появу значного парку самих різних за масштабами, потужністю, завданнями та можливостями комп’ютерів, програмнокерованих мікропроцесорних систем. Узгодження апаратних та програмних можливостей стало величезною технічною проблемою.

В кінці минулого століття компанія Sun Microsystems розробила прогресивну програмну технологію, за якою програма компілюється не в машинний, а в деякий проміжний, так званий байт-код. Байт-код виконується віртуальною машиною. Технологія отримала назву Java. Однойменну назву отримала мова програмування високого рівня для даної технології. Таким чином, щоб використовувати програми розроблені на Java на новій апаратній платформі, варто лише розробити для неї віртуальну java-машину (JVM). Перевагою подібного виконання програм є повна незалежність їх від операційної системи, обладнання та зумовлений цим високий рівень безпеки. Така технологія дозволяє виконувати Java-додатки на будь-якому пристрої з підтримкою віртуальної машини. [6] Дуже швидко технологія Java стала лідером серед засобів розробки програмного забезпечення.

У жовтні 1997 року Microsoft програла судовий позов фірми Sun, щодо порушення авторських прав використання технології та торгової марки «Java». Фактично з того часу Microsoft розпочала створення власної технології схожої на Java. І назвала її .NET (читається "дот-нет").

Перша бета версія Microsoft .NET Framework розроблена в 2000 році. Нині Microsoft .NET активно використовується в складі операційних систем Windows XP, Windows Vista та Windows 7. А саме під управлінням операційних систем сімейства Windows працює основна частина комп’ютерної техніки в середніх загальноосвітніх навчальних закладах. Крім того .NET має всі передумови для активної підтримки та поширення на більшості сучасних операційних систем, як то Linux чи Free BSD.

За технологією Java програми-додатки в операційній системі виконує проміжне середовище – віртуальна java-машина (JVM). Java-машина транслює так званий «байт-код» комп’ютерних програм у набір команд готових до виконання для виконання процесором. Байт-код отримується шляхом компіляції програм ,написаних мовою програмування Java.

Подібно до технології Java, середовище розробки .NET, теж створює байт-код призначений для виконання віртуальною машиною, яка носить назву .NET Runtime [3]. Вхідна мова цієї машини в .NET називається MSIL (Microsoft Intermediate Language – проміжна мова Microsoft). Іноді використовується інша назва проміжної мови – CIL (Common Intermediate Language – загальноприйнята проміжна мова), або просто IL (проміжна мова). [7]

Так само, як і байт-код для віртуальної java-машини програма для середовища .NET Runtime може виконуватися будь-якою операційною системою, в якій NET Runtime встановлена. Хоча кількість операційних систем, де може виконуватись .NET Runtime, постійно зростає [3] .NET Runtime дещо відстає від віртуальної машини Java в плані втілення її на інших платформах. Найбільш повну підтримку проміжної машинної мови CIL, поки що, реалізовано лише в операційних системах фірми Microsoft починаючи з Windows XP. Цікавим в пізнавальному плані є міжнародний проект «Mono». Це проект повноцінного використання системи .NET на базі вільного програмного забезпечення [8].

Microsoft в своїх розробках пішла значно далі Sun Microsystems. В першу чергу платформа .NET має значно більшу бібліотеку класів, навіть в порівнянні з потужною бібліотекою підтримки Java. Крім того в Java існує лише одна мова програмування, а для .NET Runtime таких мов може бути багато. Середовище розробки MS Visual Studio 2008 підтримує такі мови, як Visual Basic, Visual C ++, C#. Існують .NET реалізації мов “Ada” (.A#), “Apl”, Boo (заснований на Python), COBOL, Component Pascal, Delphi, Eiffel, F# (член сімейства мов програмування ML), Forth, FORTRAN, IKVM, Java, IronPython (реалізація мови Python), Lexico, Lisp, Mercury, Mondrian, Nemerle (гібридна функціонально/імперативна мова), Oberon/Zonnon, Perl, RPG, Smalltalk. Кількість мов, для яких вже вдалося забезпечити підтримку .NET Runtime постійно зростає [9].

Перспективи розвитку платформи

Платформи .NET Framework продовжує активно розвиватись та удосконалюватись. 29 вересня 2008 року Microsoft офіційно анонсувала Visual Studio 2010 та платформу розробки. Microsoft планує зблизити мови програмування Visual Basic та C #, щоб пізніше зробити з них єдину мову розроблення додатків для мережі та операційних систем.[17].

На стадії розробки та впровадження експериментальних версій знаходиться цілий ряд цікавих та перспективних проектів Microsoft, пов’язаних з розширенням можливостей та підтримки платформи .NET Framework [18]: STM.NET; AXUM; Code Contracts; Microsoft Popfly; Pex; CHESS.

Використання .Net в освіті

На даний час в середніх школах програмна технологія .Net вже досить широко використовується для навчання програмування. Хоча більшість навчальних програм з інформатики рекомендованих Міністерством освіти та науки дозволяють вчителю самостійно здійснити вибір мови та середовища програмування [10], деякі з них розраховані саме на використання платформи Microsoft .NET Framework: «Програма курсу за вибором «Основи візуального програмування» автор І.О. Завадський [11] та «Навчальна програма поглибленого вивчення інформатики для учнів 8-12 класів загальноосвітніх навчальних закладів» авторів Т.П. Караванової та В.П. Костюкова [12].

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

Щодо мов програмування, які підтримує середовище розробки Microsoft Visual Studio, то найбільше застосовується в школах Visual Basic. Нині Visual Basic .Net це потужна професійна мова програмування, яка підтримує практично всі можливості платформи .NET. Сучасний Visual Basic. NET значно доповнився концепціями об’єктно-орієнтованого програмування, отримав підтримку вбудованої мови запитів (LINQ) і багато чого іншого. Нововведення дозволяють досвідченим програмістам швидше розробляти якісне програмне забезпечення, однак роблять розробку менш доступною та мало зрозумілою для початківців. [13]

В Україні найбільш розповсюдженою для навчання програмування є мова Pascal. Цікавою і корисною для навчальних цілей є реалізація мови програмування PascalABC.NET, яка розроблена на факультеті математики, механіки та комп'ютерних наук Південного федерального університету Російської Федерації (м. Ростов).[14] Середовище програмування PascalABC.NET для навчання безкоштовне. Воно поєднує простоту мови Паскаль і величезні можливості платформи .NET: інтерфейси, узагальнені класи, делегати, «збирання сміття», «винятки» і навіть засоби паралельності.

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

Як говорять про середовище його розробники: «Small Basic - це проект, покликаний повернути елементи гри в програмування. За допомогою компактної і простої для навчання мови програмування, вбудованої в привабливе і дружнє середовище розробки, Small Basic перетворює програмування в забаву. Ідеальний як для дітей, так і для дорослих, Small Basic допоможе початківцям зробити перші кроки у дивовижний світ програмування.» [15]

Розробники, окрім простоти та доступності, зазначають головну перевагу Small Basic – його сучасність.

За для підтримки Small Basic на теренах СНД створено російськомовне товариство програмістів початківців – «Small Basic Россия» На сайті цього товариства наводяться відомості про перші спроби апробації нового продукту: «Розробниками мови були проведені успішні дослідження з дітьми від 10 до 16 років, ні в кого з них розуміння мови не викликало труднощів.»[13]

Для навчання потрібна мова, яка була б не лише сучасна, зручна, зрозуміла, та ефективна, а й не потребувала від людини подальшого переучування в процесі професійного розвитку. Започаткувавши платформу .NET фірмою Microsoft спеціально було створено мову, яка б максимально використовувала можливості платформи та сучасні підходи в програмуванні. Вона отримала назву – C# (читається «Сі шарп»). Використання цієї мови забезпечує високу швидкодію програм і вважається одним з найбільш досконалих засобів професійного програмування. Завдяки значним вдосконаленням синтаксису в порівнянні з мовами C та C++ мова C# значно простіша в сприйнятті та надзвичайно зручна як для професійного програмування так і для навчання його основам. [16]

В умовах впровадження в школах України профільного навчання важливим є грамотна і досконала підготовка школярів до майбутньої професійної діяльності. Школярі, які можуть вибрати сферою своїх інтересів розробку комп’ютерних програм в рамках технологічного чи фізико-математичного профілю повинні мати можливість якісного та ґрунтовного знайомства з основами програмування. Саме в такому випадку одним з найкращих засобів навчання програмування може стати мова C#. Нажаль на Україні відсутні шкільні програми та підручники розраховані на вивчення програмування засобами цієї мови.

C# в школі

Серед великої кількості мов програмування найбільш розповсюдженими у професіоналів є мови з так званим C-подібним синтаксисом. Сюди можна віднести C та C++, Java, PHP.Створюючи нову мову C# її розробники значно вдосконалили саме синтаксис мови С++. Побутує думка, що мова C# значно простіша в сприйнятті та надзвичайно зручна, як для професійного програмування так і для навчання його основам. Мова доповнена значною кількістю зручних засобів та грандіозною бібліотекою підпрограм (класів). Застереженням від помилок, що дуже важливо при навчанні є інтегрований в мову «збірник сміття». Мова повністю об’єктно-орієнтована.

Педагогічний експеримент

Оскільки питання використання мови C# в навчанні програмування учнів середніх загальноосвітніх навчальних закладів являється практично невивченим було вирішено провести експериментальну апробацію такого нововведення. Підготовка до педексперименту розпочалась ще за довго до початку нового навчального року. Проведено роз’яснювальну роботу серед педагогів, та вивчено їх окремі думки. Складено план дослідження та підібрано відповідні методичні матеріали. Створено сайт з питань використання мови C# в школі - http://sites.google.com/site/c4plus/. На сайті організовано методичну підтримку експерименту. Власне початок експериментального навчання змістився, в зв’язку з карантином, з листопада на грудень 2009 року. До дослідження залучаються школи, де працюють досвідчені педагоги, які не один рік читають програмування в 10-11 класах технологічного профілю. Також до самостійного оволодіння та впровадження мови програмування C# на своїх уроках запрошуються всі бажаючі педагоги середніх загальноосвітніх шкіл, ліцеїв, гімназій, колегіумів. Таким чином педексперимент фактично розпочався в шести різнотипових загальноосвітніх начальних закладах Житомирської області: Романівському ліцеї, Камінській загальноосвітній школі, Миропільській гімназії та Миропільській загальноосвітній школі І-ІІІ ступенів № 2 Романівського р-ну, а також загальноосвітній школі І-ІІІ ступенів № 7 м. Житомира. Паралельно впроваджувати на своїх уроках, та в позаурочній роботі, мову програмування C# розпочали вчителі Гордіївської та Печанівської загальноосвітніх шкіл І-ІІІ ступенів Романівського району.

Висновки:

· Платформа .NET надзвичайно перспективна, швидко розвивається і знаходить широке застосування для навчання програмування в школах України;

· Під час навчання програмування слід більше знайомити дітей з особливостями сучасних платформ розробки програмного забезпечення однією з яких є платформа Microsoft .NET;

· На основі .NET створено та розвивається велика кількість середовищ програмування, багато з яких є зручними для навчальних цілей;

· Для навчання програмуванню в профільних класах потрібна мова, яка була б сучасна, зручна, зрозуміла, ефективна та не потребувала від людини подальшого переучування. Є підстави використовувати якості такої мови програмування C#;

· Для ефективного використання в навчанні C# потрібне відповідне навчально-методичне забезпечення, ретельна його апробація та експериментальна перевірка.

· Очевидною є необхідність подальшого дослідження питань щодо використання платформи Microsoft .NET Framework та мови програмування C# для навчання програмування.

Список літератури

1. Національна доктрина розвитку освіти [текст] // Освіта. – 2002. – № 26. – С.2.

2. Microsoft Visual Studio. Материал из Википедии — свободной энциклопедии. [Електронний ресурс] – режим доступу: http://ru.wikipedia.org/wiki/Microsoft_Visual_Studio – Назва з екрану.

3. Microsoft .NET. Матеріал з Вікіпедії — вільної енциклопедії. [Електронний ресурс] – режим доступу: http://uk.wikipedia.org/wiki/Microsoft_.NET – Назва з екрану.

4. .NET Framework Developer Center. Главная страница. [Електронний ресурс] – режим доступу: http://msdn.microsoft.com/ru-ru/netframework/default.aspx – Назва з екрану.

5. Колесов, А.А. Прыжок от Java к .NET [текст] /Андрей Колесов // PC Week/RE – 2001. – № 08. – С. 45.

6. Java. Материал из Википедии — свободной энциклопедии. [Електронний ресурс] – режим доступу: http://ru.wikipedia.org/wiki/Java – Назва з екрану.

7. Словари и энциклопедии на «Академике». .NET Framework – толкования. [Електронний ресурс] – Режим доступу: http://dic.academic.ru/dic.nsf/ruwiki/56724 – Назва з екрану.

8. Mono. Mono is a cross platform, open source .NET development framework. [Електронний ресурс] – режим доступу: http://www.mono-project.com/Main_Page – Назва з екрану.

9. Dotnetpowered Language List. [Електронний ресурс] – режим доступу: http://dotnetpowered.com/languages.aspx – Назва з екрану.

10. Інструктивно-методичні рекомендації щодо вивчення Інформатики в загальноосвітніх навчальних закладах у 2008/09 навчальному році. [текст] // Комп’ютер у школі та сім'ї – 2008. – №3.

11. Завадський, І.О. Програма курсу за вибором «Основи візуального програмування» [текст] / І.О. Завадський // Інформатика та інформаційні технології в навчальних закладах. – 2006. – №4/5. – С.60 – 68.

12. Караванова, Т.П. Навчальна програма поглибленого вивчення інформатики для учнів 8-12 класів ЗНЗ (напрям: технологічний, профіль: інформаційно-технологічний) / Т.П. Караванова, В.П. Костюков [текст]// Інформатика та інформаційні технології в навчальних закладах. – 2008. – №2.

13. Русскоязычное общество для начинающих программистов. Small Basic Россия. [Електронний ресурс] – Режим доступу: http://smallbasic.ru/ – Назва з екрану.

14. О системе программирования PascalABC.NET. [Електронний ресурс] – режим доступу: http://pascalabc.mmcs.rsu.ru/ – Назва з екрану.

15. Small Basic. Центр начинающего разработчика. [Електронний ресурс] – режим доступу: http://msdn.microsoft.com/ru-ru/devlabs/cc950524.aspx – Назва з екрану.

16. Simple C# – Программирование с нуля. Введение в C Sharp и .Net. [Електронний ресурс] – режим доступу: http://simple-cs.ru/store/csharp/1/ – Назва з екрану.

17. Microsoft объединит языки Visual Basic и C#. ITnews – Новости Информационных Технологий (2 марта 2009, 9:12). [Електронний ресурс] – режим доступу: http://itnews.com.ua/47090.html – Назва з екрану.

18. DevLabs Projects [Електронний ресурс] // DevLabs – режим доступу: http://msdn.microsoft.com/ru-ru/devlabs/dd125421(en-us).aspx – Назва з екрану.