Проблеми при избора на език за програмиране в училищен курс по информатика

избора

Библиографско описание:

Наистина ли не е толкова важно коя среда и кой конкретен език за програмиране ще се използва за практиката? Всеки учител има свой собствен списък с изисквания за изучавания език за програмиране. Наборът от изисквания може да бъде, например, следният: прост, интуитивен синтаксис, наличие на инструменти на високо ниво за откриване и избягване на грешки и за програми за отстраняване на грешки, наличие на висококачествена документация с примери, наличие на приятелски среда за разработка, междуплатформена (версии за различни платформи), ...

От една страна, училищната програма не предполага обучение на специалисти и основните понятия за алгоритмизация традиционно могат да бъдат дадени на Паскал. За училището няма особена разлика какъв език да се учи, основата за всички езици е идентична, надстройката над основата е дадена вече в специализирани образователни институции. Достатъчно е студентът да знае набор от основни понятия за двоична логика, условия, цикли и т.н., и те присъстват в почти всеки език за програмиране. Проблемът се крие във факта, че училището има за задача да запознае какво е програмиране и да даде груба представа за това как се прави.

От друга страна, ИТ технологиите се развиват много бързо, появяват се нови платформи, езици за програмиране (Java, C #, Python ...) и технологии. Съвременният програмист трябва непрекъснато да „следи“. Ето защо учебната програма по програмиране за ученици трябва да бъде внимателно обмислена с оглед на бъдещето.

Подходите по-специално към програмирането и като цяло към информационните технологии непрекъснато се променят, но нещо остава непроменено. Тази база трябва да се предаде на учениците, преди всичко, за да могат учениците да се научат самостоятелно да търсят необходимия материал и да го изучават. Трябва да научите основни неща, които винаги ще бъдат търсени, независимо от технологиите.

Има няколко парадигми в програмирането, подходи за създаване на програми: модулна парадигма, процедурна парадигма, обектно-ориентирана парадигма. Училищата обикновено преподават процедурен подход към програмирането, докато OOP (обектно-ориентирано програмиране) е рядко или никога.

Кои от съвременните езици, използвани на практика, са подходящи за ролята на първия език? Вероятно това е императивен, силно типизиран, статично типизиран и силен семантичен език. Турбо-Паскал отговаря на всичко това, но е почти мъртъв.

Напоследък се забелязва ясна тенденция за преход на обучението от алгоритмични към обектно-ориентирани езици с помощта на системи за визуално програмиране (Delphi, Visual Basic, Visual C ++ и др.). На първо място, програмирането означава писане на програма и какво означава „програма” за ученик? Отговорът е очевиден, програмата е нещо, с което той работи на компютър всеки ден, например текстов процесор или уеб браузър. Тоест, за студент една програма е приложение с графичен интерфейс на прозорец-бутон. Това означава, че програмата, която той ще състави, трябва да бъде същата. И тук визуалните среди за програмиране предоставят широки възможности на студента да внедри такова приложение. Старият добър Turbo-Pascal също е добър за изучаване на принципи на програмиране, но терминалният му интерфейс се възприема зле от съвременните ученици.

Тъй като обектно-ориентираното програмиране (ООП) е в основата на всички съвременни езици за програмиране, е необходимо да започнете да го изучавате в училище, така че учениците, дошли във висши учебни заведения, да имат правилно разбиране за програмиране. Това твърдение очевидно не е безспорно, тъй като за по-голямата част от учениците тяхното по-нататъшно образование не е свързано с развитието на ИТ технологии.

Първият език за програмиране трябва да бъде взискателен към ученика. Необходимо е ученикът да има ясна представа какво прави неговата програма на всяка стъпка и да може да пише алгоритми на строг официален език, без излишни „свободи“. Първият език трябва да бъде силно набран, тъй като смесването на цели числа, реални числа и текстови променливи води до начинаещи програмисти до погрешно схващане за методите за съхраняване на данни в компютърната памет. Колкото повече съобщения за грешки виждат студентите от компилатора и колкото повече от тези съобщения разбират, толкова по-фундаментални познания по програмиране ще получат. Паскал не е лош език в този смисъл. Но този език се използва рядко на практика, а специалистът Паскал е малко търсен на пазара на труда.

Това е може би основното „недоволство“ на учениците, решили да подобрят своето програмиране. За реална работа те трябва да научат по-популярен език (Java, C/C ++, PHP, Python и др.). Използването на C като първоначален език за програмиране обаче има редица проблеми: има много сплашващи конструкции, дори за ученици, интересуващи се от програмиране. От друга страна, никой не принуждава учителите да показват всички дълбини на C. Можете да работите с него на същото ниво като с Паскал, като използвате подходящите конструкции.

Един от най-добрите езици за програмиране за стартиране беше и се счита за Паскал, тъй като той е изобретен специално за обучение на основите на програмирането. Но има „но“: езикът е остарял, никоя от компаниите не го използва за търговски цели. Можете, разбира се, да започнете да учите програмиране с Pascal, но след основите всеки ще трябва да научи нов език, с различен синтаксис, с нови правила. Паскал дава своите предимства в обучението и може би си струва дори да се покажат най-основните понятия в Паскал. Но няма смисъл да преподавате всичко „от и до“ на езика Паскал и неговите библиотеки. По-добре е да отделите това време за изучаване на езици и технологии, които сега се използват и ще се използват през следващите 10-20 години.

Pascal е инструментът (по-опростен от C), който ще ви научи как да подходите към програмирането като цяло „идеологически“. Защо първо трябва да декларирате видовете променливи, че операцията по присвояване и логическото равенство са различни неща. Когато правите основни грешки в Pascal, програмата няма да работи. Това е чисто образователна база. Има алтернативи на Турбо Паскал, които могат да бъдат използвани в образователния процес.

FreePascal е безплатен компилатор на Pascal, който отговаря на съвременните изисквания и има индивидуална среда за разработка, подобна на Turbo Pascal, което дава възможност да се използва по-голямата част от методологичната литература, написана за последния. Работи под Windows и Linux. Препоръчва се като най-лесният начин да замените Turbo Pascal. Няма проблеми с лиценза.

PascalABC е удобна среда за разработка за Windows. От 2007 г. е разработена версия на PascalABC.net - същата среда, но написана с помощта на .NET технология. Системата е създадена във Факултета по математика, механика и компютърни науки на SFedU като образователна среда за програмиране. Няма проблем с лиценза.

Lazarus е среда за разработка, която използва компилатора FreePascal, като същевременно поддържа разработката на модерни прозоречни приложения. Позиционирани като съвместими с Delphi, но уроците, написани за Delphi, не винаги са приложими. Интерфейсът е по-сложен в сравнение с IDE на FreePascal. Препоръчва се за използване с достатъчна квалификация на учителя.

Използването на Turbo/Free Pascal в процеса на преподаване на програмиране е почти идеално за преподаване на алгоритми, без да се разбира кой е по-добре да не се програмира допълнително (и няма значение по-нататъшната специализация - дали човек ще работи в асемблер за микроконтролери, или ще се отдаде до разработване на софтуер на високи езици). ниво, използващо съвременни парадигми).

Изборът на съвременни системи за визуален дизайн (Delphi, Lazarus, Visual Studio и др.) В началния етап на обучението по програмиране създава редица проблеми. При създаване на проект системата автоматично генерира голямо количество код, свързан с работата на визуалните компоненти и не свързан с решението на задачата. Всичко е обектно ориентирано наведнъж и ученикът, за начало, би разбрал с цикли, масиви, условни оператори.

Далеч най-добрият избор вероятно би бил Python + достоен IDE (Eclipse или PyCharm), с тестване на приложения във вградената конзола. Python е създаден преди повече от 20 години и все още се използва днес за преподаване на основите на програмирането и за търговски цели. Може да се използва за разработване на сървърни и клиентски програми, уебсайтове и уеб услуги, мобилни приложения и програмни роботи. Най-важното е, че програмистите на Python са много търсени на пазара на труда и той ще расте още много години напред, защото Python се използва от големи корпорации в техните търговски проекти.

Python е пълен език за програмиране на високо ниво. Той поддържа редица парадигми: модулна парадигма, процедурна парадигма, обектно-ориентирана парадигма, функционална парадигма. Показателно е, че Python се разпространява свободно под лиценз, подобен на Общия публичен лиценз на GNU.

Python е динамично въведен език. В този случай тежестта върху програмиста е по-малка поради факта, че сега няма нужда да се наблюдават независимо типове данни. Понякога това води до трудни за улавяне грешки (това е съществен недостатък в началния етап на обучението по програмиране), но най-вече помага доста добре да се пише код. Pascal или C са статично типизирани езици и самият начинаещ програмист трябва да следи типовете данни.

Python принадлежи към езици с практически липса на софтуерна „магия“. Единствените изключения са метакласовете, но трябва да се развиете до тях. И това е поне 2-3 години обучение. Python има много готови решения и библиотеки. Повечето от тях са безплатни.

Редица училища провеждат интересни експерименти в обучението по програмиране на Python. Отзивите от учители и ученици са много положителни. В чужбина е натрупан голям опит в преподаването на компютърни науки в училища и колежи с практиката на програмиране на различни езици, по-специално в Python. Разбира се, преходът в училищната информатика към „новия“ език за програмиране Python е свързан с редица трудности, преди всичко липсата на образователен материал и необходимостта от самостоятелно изучаване на характеристиките на езиковите структури.

Въпреки факта, че в учебниците по компютърни науки има само един език за програмиране и в него са дадени всички примери, има обща тенденция учителите по компютърни науки да преминат към Python, за да преподават основите на програмирането. И се появяват все повече олимпиади, които дават възможност за решаване на проблеми в Python.

Важно е учителят по информатика да не забравя основното - че целта не е да научи определен език за програмиране, а да развие алгоритмично мислене, да запознае с различни стилове на мислене и методи, приложими за решаването на различни проблеми. Един от вариантите за този подход е познаването (без подробно проучване) с няколко езика за програмиране. Достатъчно е да се анализират заедно с класа няколко прости класически алгоритмични задачи.

  1. Лапчик М. П., Семакин И. Г., Хенър Е. Г. Методи на преподаване на информатика: учебник за студенти от педагогически университети - М.: Издателски център „Академия“, 2003–624 стр.
  2. Захарова И. Г. Информационни технологии в образованието: учебник за студенти. по-висок. проучване. институции - М.: Издателски център „Академия“, 2005-192 с.
  3. Угринович Н. Д. Информатика и ИКТ. Профилно ниво: учебник за 10/9-то издание, Rev. и добавете. - М.: БИНОМ, Лаборатория на знанието. 2012 г. - 295 сек.
  4. Поляков К. Ю. Информатика. Разширено ниво: учебник за 10 клас: 2ч. Част 2 - М.: БИНОМ, Лаборатория на знанието. 2013 г. - 304 с.
  5. Поляков К. Ю. Информатика. Разширено ниво: учебник за клас 11: 2ч. Част 2 - М.: БИНОМ, Лаборатория на знанието. 2013 г. - 304 с.
  6. Авдошин С.М., Ахмецафина Р.З., Максименкова О.В. Информатика и ИКТУ „Образователни справочни материали. М.: СПб.: Образование. 2012.-252с.