Science & Technologies Volume IV, Number 3, 2014 Natural & Mathematical science 25 ИНВАРИАНТИ В ОБУЧЕНИЕТО ПО ПРОГРАМИРАНЕ Елена Сомова, Йордан Енев, Георги Тотков ПУ „Паисий Хилендарски”, Факултет по математика и информатика, 4000 Пловдив, България, yordan@enevsoft.net, eledel@uni-plovdiv.bg, totkov@uni-plovdiv.bg INVARIANTS IN LEARNING OF PROGRAMMING Elena Somova, Yordan Enev, Georgi Totkov The University of Plovdiv Paisii Hilendarski”, Faculty of Mathematics and Informatics, 4000 Plovdiv, Bulgaria, yordan@enevsoft.net, eledel@uni-plovdiv.bg, totkov@uni-plovdiv.bg ABSTRACT The main goal of the research is to discover the programming algorithms, which are taught in basic courses of imperative programming and which do not depend on used algorithmic language. These algorithms can be presented as template codes in different programming languages. The paper shows an approach for teaching imperative language programming on the base of set of templates, called invariants. 98 invariants of algorithms from course “Programming” and 44 invariants of algorithms from course “Algorithms and data structures” are proposed. Example programming codes on two languages (C# and Visual Basic) are given for the particular realization of invariants. The work represents the first step in realization of software system for learning programming on the base of invariants. Key words: teaching programming, invariant algorithms in programming, programming languages 1. Въведение Обучението по програмиране е тясно свързано с използване на конкретни програмни езици и версии. Честата смяна на програмен език или версия повдига въпроса за методиката на преподаване и на учебните материали, независеща от конкретните използваеми софтуерни средства, а използваща инвариантни елементи. Съществуват опити за решаване на подобен проблем в областта на обучението по информационни технологии и основи на компютърната информатика. В рамките на проекта RAPIDITY, свързан с развитието и провеждането на дистанционно обучение в областта на ИТ, са създадени учебни материали [10, 11] с инвариантни елементи на 3 езика (български, френски и литовски). В резултат на изследванията и резултатите на проекта RAPIDITY е създаден базовият университетски курс „Основи на компютърната информатика“ [6]. Издадено е учебно помагало по Информатика [5] (от Регионалния център за дистанционно обучение към ПУ), в което темата „Текстообработка” е развита според споменатата методика. На базата на инвариантни елементи също е създаден пакет от учебни пособия за средното училище [1, 2, 5, 6, 7, 8]. Идеята за инвариантно обучение е развита в [3, 4, 9], като са дадени примери за инвариантно преподаване на електронни таблици в [3, 4] и компютърна текстообработка в [9]. В [9] се поставя акцент върху т. нар. „инвариантни знания‟ (т. е. тези, които са относително статични във времето и устойчиви на евентуални промени) при представяне/преподаване на учебното съдържание. В [3, 4] се предлага разработването на „инвариантна рамка‟, която да бъде определена като стандарт за инвариантно представяне на учебното съдържание, чийто предмет е конкретна технология от областта на ИТ и за която са определени елементите, които да съдържа.