Безусловно един от най-важните проблеми на преподаването на Информатиката в средното училище е с кой език и с коя среда да се извърши преподаването на раздела Програмиране. Очевидно е, че който и език да се избере, могат да се дадат най-различни аргументи “за” и “против” него. И все пак, като изхождаме от целите на обучението в задължителната и профилираната подготовка сме се спрели на езика BASIC (средата QBASIC в MS DOS) за задължителната и езика C (средата RHIDE в MS DOS) за профилираната подготовка.
Езикът BASIC се отличава с удивителна простота на фона на своята универсалност. Той предлага всички важни от гледна точка на поставените цели конструкции на процедурното програмиране и със съчетаването на простота и универсалност е идеално средство за запознаване със същността на програмирането на ученици, които няма да се подготвят за професионални програмисти. Освен това, в средата QBASIC програмите са еднофайлови и не се компилират, а се интерпретират. Това освобождава учителя от необходимостта да преподава такива нелеки теми, като многостъпкова компилация, обектни програми, свързващо редактиране, изграждане на програмата от много части, разположени в различни файлове, осигуряване на “видимост” на променливите от различните части на програмата и поддържане на проекти от многофайлови програми.
Средата QBASIC е компактна (190КВ изпълним файл и 129КВ файл с помощна информация) и предоставя всичко необходимо за създаване и изпълнение на програми, написани на BASIC. Потребителският интерфейс не се различава съществено от други широко разпространени среди за програмиране (Turbo, RHIDE) и при желание учениците, обучавани с QBASIC лесно могат да преминат към друга такава среда.
Езикът С не се счита за подходящ за обучение на начинаещи програмисти. За разлика от най-силния му конкурент за сериозно (професионално) начално обучение – езика Pascal – той съдържа в себе си няколко елемента, за които е доказано, че затрудняват начинаещите. Например липсата на оператори за вход и изход и свързаната с това необходимост от много ранно запознаване с понятието указател. Независимо от това все по-широко е мнението, че си струва да се направят усилия тези трудности да бъдат преодолени от бъдещите професионалисти колкото може по-рано. И за това има сериозни причини. Авторите на езика С са успяли да го направят независим от компютърната архитектура, за която се пишат програмите, и едновременно с това да запазят някои важни връзки с архитектурата. Затова програмите, написани на С, съперничат по ефективност на програми, писани директно на асемблерния (машинния) език на съответната архитектура. Езикът С се отличава с многовариантност на решенията. Начинаещият програмист може и да не използва тежките конструкции в началото, а да се обърне към тях, когато е натрупал съответен опит.
Като компенсация за трудностите, които споменахме (или благодарение на тях), езикът С предлага една вътрешна логика, единство и пълнота, които му позволиха да просъществува около 30 години без никакви изменения. Ако успее да се справи с началните трудности на езика С, в по-късен етап от развитието си програмистът получава редица предимства и освободеност в използването на средствата му. Не случайно модерни езици за програмиране като С++, Java и C# бяха построени на базата на езика С. Доброто владеене на С дава възможност на учениците много бързо да усвоят и тези модерни езици. Не маловажен факт в полза на езика С е, че през годините търсенето на програмисти, владеещи С, винаги е било постоянно, на фона на променливия интерес към останалите езици за програмиране.
Що се отнася до избора на средата RHIDE (в замяна на много популярната у нас среда Turbo на Borland), за това също има сериозни причини. Да изключим ненуждаещия се от коментар факт, че средата RHIDE се разпространява безплатно и освен в MS DOS може да работи и в Linux, OS/2 и ранните версии на Windows (има версии на тази среда за Windows 2000 и другите ОС на базата на NT, но те още не са достатъчно добре тествани). Заради използването на 16-битови адреси, средите Turbo създават определени проблеми при адресирането на огромния обем памет, който продаваните днес компютри притежават (стотици МВ и даже GB). Компилаторът DJGPP на средата RHIDE работи с 32-битови адреси и свободно адресира 4GB. По този начин програмистът се освобождава от мисълта за особеностите при адресирането на паметта (на компютрите, създадени на базата на микропроцесори на Intel) и може да си позволи при създаването на програми да ползва свободно цялата налична памет на компютъра и в крайна сметка да повишава скоростта на изпълнение на програмите.
Интересни са опитите в последно време да се започне преподаването на Програмиране с обектно-ориентиран език (C++ или Java), като процедурното програмиране се преподава между другото. Основанията за такъв подход са, че всеки от споменатите езици предоставя силно развита йерархия от класове и голяма част от приложните задача се решават сравнително бързо и лесно с дефиниране на обект от някакъв клас и прилагане на необходимите за решаването на задачата методи на класа. Такъв подход е оправдан в случай, че се преподава задължителна, а не профилирана подготовка. (Този подход би бил много уместен за преподаване, програмиране на ученици, избрали профила Информационни технологии и изучаващи Информатика само като Задължителна подготовка.) Програмирането с готови класове е удобно и лесно, но нали някой трябва да създава тези класове!
Споровете за избора на език са безкрайни и по-същество ирационални. Целта на преподаването на Информатика в средното училище не е и не може да бъде научаването на определен език за програмиране, нито пък определена операционна система или компютърна архитектура. Компютърните архитектури, операционните системи и средите за програмиране са временни и преходни. Целта на обучението по Информатика трябва да бъде запознаването на учениците с основите на тази модерна и важна научна дисциплина, с нейните принципи и концепции. Компютърната архитектура, операционната система и езикът за програмиране, които избираме, за да постигнем образователните си цели са само средство за илюстриране на концепциите. Затова при всяка илюстрация е редно да се подчертава, че се демонстрира едно от многото съществуващи средства. Трябва да се използват такива моменти, за да се подчертае, че силата на информатиката е в практически неизчерпаемите възможности за различни реализации на едни и същи концепции и идеи.
Специално за учениците в профилираната подготовка – те трябва да се възпитават в толерантност към архитектурите, платформите и езиковите средства. Един професионалист трябва да познава колкото може повече архитектури, операционни системи и езици и нещо повече, да бъде готов винаги да се запознае с нови такива. Няма съмнение, че всеки професионалист си има любими инструменти, които владее най-добре, но не е необходимо да бъде пристрастен и да използва любимите си инструменти на всяка цена, особено когато задачата, която решава, не предразполага към това.
В смисъла на горните разсъждения авторите не изключват и такава възможност – учебниците да бъдат използвани като текст, а илюстрирането на текста да бъде направено с друг език за програмиране. Ако такъв интерес се появи, няма да бъде проблем да се издаде съответна версия на учебника, използваща различен език. Най-прост и лесен за реализация пример на такава възможност е да се преподават избрани части на С в задължителната подготовка.
Сподели с приятели: |