Математика и Информатика

2013/3, стр. 224 - 238

ПЛАВЕН ПРЕХОД ОТ ЗАДАЧИ КЪМ ПРОЕКТИ В УВОДНИТЕ КУРСОВЕ ПО ПРОГРАМИРАНЕ

Павел Азълов
E-mail: pka10@psu.edu
Associate Prof. of Computer Science, Ph. D.
Pennsylvania State University, USA

Резюме: Как да изградим уводните си курсове по програмиране така, че те да са достъпни за настоящите студенти, разбира се без да се налага да се правят компромиси в съдържанието и в изискванията към тях? Това е централният въпрос в статията, на който се прави опит за отговор чрез плавен преход от задачи към проекти. Идеята на подхода се състои в прилагането на проблемно-ориентирано обучение в курса Програмиране 1 и плавното му продължение в проектно-ориентирано обучение в Програмиране 2. Направен е анализ на трудностите, които студентите имат в тези курсове, като се посочват и препоръки за преодоляването им. Предлага се всяко множество от взаимно-свързани задачи да се структурира в редица от задачи, при което всяка задача може да се декомпозира до предшествуващи я задачи от същата редица. По аналогия със задачите, проектите също се формулират и предлагат като редици от проекти, при която част от компонетите (функции, класове) от един проект се използват при проектирането и реализацията на следвашите в редицата проекти. Плавният преход от задачи към проекти се постига чрез декомпозирането на проектите от вторият курс по програмиране до задачи, някои от които следва да се разглеждат още в първия курс.

Ключови думи: Computer Science Education, Computer Science I, Computer Science II, Problem-based learning, Project-based Learning, Sequences of problems, Sequences of projects

1. Въведение

В тази статия е представен подход за обучение, основан на задачи и проекти в уводните курсове по програмиране, които условно тук са нарeчени Програмиране 1 (П1) и Програмиране 2 (П2). Тези два курса традиционно се преподават във всички университети в специалност „Информатика“ и сродните на нея „Компютърно инженерство“, „Софтуерни технологии“ и „Информационни системи“. Наименованията на курсовете са различни, но основните теми, съдържащи се в тях, са много близки. Това унифициране на университветските програми до голяма степен е следствие на „рамките“, определени от публикации на асоциациите по компютърни науки ACM и IEEE, които са лидерите от световен мащаб.

След „златния век“ на информатиката в образованието, когато тя беше една от най-желаните специалности в университетите по света, през последното десетилетие се забеляза спад в приема на студенти в информатичните специалности и едновременно с това съществен спад в нивото на обучаващите се студентите [5, 16]. Причините са разнообразни и не винаги са едни същи в различните държави [13]. У нас, за щастие, все още информатиката е специалност с висок рейтинг сред кандидатстудентите. Но трудно е да се вярва, че световната тенденция няма да даде отражение и в нашите университети. Разнообразието на университетите, в които може да се кандидатства, е твърде голямо и по напълно разбираеми причини много от добрите кандидати избират реномирани световни университети в Европа и Америка. Всичко това налага преосмислянето на методите за преподаване, особено в уводните информатични курсове. Как да изградим курсовете си така, че те да са достъпни за нивото на настоящите студенти, разбира се без да се налага да се правят компромиси в съдържанието и в изискванията към тях? Това е централният въпрос в статията, на който се прави опит за отговор чрез т. нар. плавен преход от решаване на задачи към разработка на проекти. Конкретно тук се разглеждат два курса, в които единият (П2) е естествено продължение на другия (П1). Не е трудно да се види, че идеята е приложима и за други курсове, при това не само в специалността „Информатика“. По-долу е споделен опитът, натрупан от няколко университета от Европа и САЩ, в които авторът е преподавал тези дисциплини.

Дисциплините П1 и П2

Ето кратко представяне на дисциплините П1 и П2. Те са уводни курсове в информатиката, които се реализират на определен език за програмиране като например C++, Java, Python и други. В тях студентите изучават основни понятия, методи и техники на програмиране, необходими и за много други дисциплини.

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

Основните теми в П2 обикновено включват: обектно-ориентирано програмиране, рекурсивно програмиране, структури от данни и приложения (стек, опашка, списъци и др.), родово програмиране (tempaltes, generic), изключения, управление на паметта, основи на алгоритмичния анализ и др. При завършване на курса от студентите се очаква да умеят да реализират нетривиални програмни проекти, прилагайки изучените подходи и техники на програмиране и структуриране на данните, като следват съответна методология за анализ, проектиране, кодиране, документиране и тестване.

2. Задачи и проекти в курсовете по програмиране

Използването на задачи и проекти е добре позната практика в много дисциплини. Има обаче известни различия в смисъла, в които те се използват. За някои автори двете понятия са идентични, за други различията не са съществени, а за трети те са различни [9, 10]. Това терминологично „разминаване“ се дължи преди всичко на областта (съответна дисциплина), в която тези методи се прилагат. В курсовете по П1 и П2 двете понятия са добре различими и смисълът, който конкретно се влага в тях в статията е описан по-долу.

Задачи по програмиране

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

Когато с решаването на задачи се цели практически да се илюстрират свойствата на въвежданите понятия (тип данни, управляваща структура, метод), тогава подходът се нарича обучение чрез решаване на задачи (problem solving) [9, 10, 15]. Обикновено при този подход в рамките на всяка тема се въвеждат необходимите понятия, подкрепени с примери, а накрая се предлага множество от задачи за самостоятелна работа. Най-често в учебниците по П1 се използва подходът обучение чрез решаване на задачи и той е масово прилаган.

Ако целият курс е изграден на базата на задачи, тогава подходът е проблемноориентиран (problem-based) [9, 10, 11, 14, 15]. При този подход задачите определят темата, т.е. те са водещи и едновременно с решаването на задачата се извършва и въвеждане на новите понятия и методи. Този подход се приема добре от студентите, защото въвеждането на всяко ново понятие е предшествано от необходимостта от неговото използване. Трябва обаче да се отбележи, че прилагането на проблемноориентирания подход през целия курс не винаги е целесъобразно. На практика много преподаватели, включително и авторът на тази статия, прилагат комбинация от двата подхода, в която водещ е проблемно-ориентираният подход и това е съображението за него да използваме същия термин (проблемно-ориентирания подход). Този подход позволява да се препоръча конкретен учебник на студентите, а в клас преподавятелят да въвежда някои теми и понятия чрез задачи, подходящи за съответната тема.

Проекти по програмиране

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

Методът на обучение, при който водещи в целия курс са проектите, се нарича проектно-ориентиран (project-based) подход [1, 4, 10, 11]. Реализацията на този метод не е лесна. На проектите се дава голямо тегло от крайната оценка на студента, което създава напрежение и стрес по време на семестъра. Необходими са специфични грижи от страна на преподавателя преди започването на курса и особено по време на провеждането му, когато той влиза в ролята на консултант и съветник. За успешното прилагане на подхода е необходима солидна предварителна подготовка на студентите, силна мотивация да завършат проекта в срок и умение да работят в екипи.

2.1. Трудности в уводните курсове по програмиране

Затрудненията, които обикновено студентите срещат в двата уводни курса по програмиране, са разнообразни, но посочените по-долу са от особена важност:

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

Студентите нямат добра предварителна представа за избраната от тях специалност (Computer Science/Computer Engineering/Software Engineering/Information Systems) [5]. Някои от тях не са убедени, че са направили правилен избор и затова не са достатъчно мотивирани да получат солидна подготовка по програмиране. По тази причина по време или след завършване на П1 около 15% от студентите осъзнават, че трябва да променят специалноста си в някоя по-приложна област, като например информационни технологии.

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

Студентите трудно приемат да работят в екипи и причините са разнообразни, някои от които са напълно разбираеми в първия курс [8, 12].

Поради претовареност с други дисциплини и с дейности извън университета, студентите нямат необходимото време за да работят върху заданията си по програмиране.

Важно е да се отбележи, че студенти, които трудно покриват минималните изисквания на П1, още по-трудно успяват в П2. Ето защо от самото начало към тези студенти трябва да се обръща специално внимание. Понякога обмислянето на смяна на специалността може да се окаже твърде полезна за самия студент, ако това се извърши непосредствено след П1. Това не е лош вариант, защото другият, при който студентът напуска университета, е много по-лош.

2.2. Идеи за преодоляване на трудностите в уводните курсове по програмиране

Анализът на посочените по-горе проблеми дава възможност да се направят някои изводи и да се формулират съответни идеи за решения. Някои от тях са подсказани директно или индиректно от самите студенти, а повечето са резултат от проведени експерименти.

Мотивираният студент винаги успява. Ако приемем тази мисъл за максима, ясно е, че всеки опит за допълнителна мотивация на студентите е важен. За постигането й могат да се прилагат посочените по-долу подходи.

Домашни задания. Задачите за домашна работа в П1 трябва да се разискват в клас както при задаването им, така и след проверката им. Проектите в П2 следва да се разглеждат обстойно при задаването им, а резултатите да се дискутират подробно при тяхното представяне в клас. Това не е загубено време. По този начин се повишава мотивицията на студентите и те с по-голямо старание подготвят заданията си.

Тестове без оценка. Част от мотивацията на студентите идва от техния текущ успех. Повечето студенти, които имат слаб текущ успех, бързо се демотивират и крайният резултат е напускане на курса. Ето защо е добре редовно (почти всяка седмица) студентите да имат кратки и прости тестове без оценка. Резултатите от тях са изключително полезни за самите студенти. Едновременно с това резултатите от тестовете информират и преподавателя за нивото на усвояване на материята.

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

Самообучение от собствени грешки. Студентите разбират понятията и методите в П1 най-вече от примери, но ги научават, когато сами решават задачи. Много добре те се учат от грешките, които допускат при тестовете (без оценка) и при решаването на задачи.

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

Редици от задачи и проекти. Решаването на всяка задача по математика изисква съответен анализ. Така е и със задачите по програмиране. Чрез съответен анализ първоначалната задача се разбива на по-прости и евентуално познати подзадачи. Някои от подзадачите също подлежат на разбиване, докато всички подзадачи са познати. Това е основен подход при декомпозирането на програмите на отделни модули (функции/класове). Не се познава общ метод, по който да се извършва декомпозирането на произволна задача в множество от по-прости задачи. Това се постига с опита от решаването на разнообразни конкретни задачи. Един метод, който авторът прилага, е описан с пример в т. 4. Същността на метода основава т. нар. „редица от задачи”. Всяка редица от задачи е множество от няколко задачи, които могат се подредят линейно по такъв начин, че за решението на всяка задача (без първата) да се използват решенията или идеите на предишни задачи от същата редица [2]. Става ясно, че всяка задача е някакво обобщение или „разширение” на една или няколко други задачи от редицата. По този начин, учейки студентите на обобщаване и декомпозиране, пряко се въздейства върху формирането на абстрактното им мислене. Проведените експерименти с този подход показват, че той е твърде подходящ за П1. Програмните проекти в П2 също могат да бъдат формулирани като редици от проекти. Примери на такива редици са даден в т. 4, 5 и т. 6.

Проектиране на програми. Дискуцията, отнасяща се до проектиране, стил и документиране на програми, трябва да започне още в теми от П1 [7]. В противен случай студентите омаловажават тези аспекти на програмирането, считат ги за загубено време и в тях не се изграждат необходимите навици, необходим при разработването на програми. И ако в П1 това не е от решаващо значение, то в П2 студентите вече изпитват сериозни затруднения при цялостното разработване на програмни проекти.

Работа в екип. Добре е още в начало на П2 студентите да започнат да работят в екипи по двама или трима. Това е особено важно при работа върху проекти. Така студентите обменят идеи помежду си и тези, които са с по-слаба подготовка, имат възможност да направят съществен прогрес за кратко време. Начинът, по който се формират екипите, е от съществено значение и по тази тема много публикации [6, 12]. Тук ще отбележим само, че макар и несъвършена, процедурата за формиране на екипи, при която всички екипи имат реални шансове успешно да завършат проекта, е напълно приемлива за П2.

3. Какво означава понятиетоплавен преход”?

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

Решаването на задачи е важен елемент от цялостното обучение в уводните курсове по програмиране. Решавайки задачи, студентите придобиват практически опит и това трябва да бъде в основата на П1.

В П1 студентите изпитват трудности да работят върху програмни проекти. Това е лесно обяснимо. В рамките на един семестър не е лесно да се усвоят синтактичните и семантичните особености на изучавания език за програмиране. По тази причина не е реалистично те да работят върху проекти, в които акцентът е повече върху проектирането на програмите. Да отбележим, че има публикации, в които авторите предлагат да се използват проекти още в П1 [8], но навярно в тези случаи става дума за студенти, които са добре мотивирани и имат добра подготовка още от средното училище.

Дирекното преминаване от решаването на задачи в П1 към разработването на проекти в П2 стресира и обезкуражава голяма част от студентите. Ето защо този преход следва да се извърши плавно. Прилагането му трябва да се обмисли още по време на П1, като се разглеждат задачи, които по-късно се използват в проекти на П2. Идеята да се изграждат нови понятия и методи чрез използване на познати такива е основна практика, но в случая на уводните курсове по програмиране могат да се посочат два специфични положителни ефекта:

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

(2) Когато една задача е разглеждана и решавана като отделна програма или функция в П1, използването й като подзадача в програмен проект в П2 обикновено изисква известно модифициране. Така на студентите се подсказва, че трябва да адаптират програмен код след съответна творческа модификация. Работата върху адаптирането на дадена функция за нови цели е първата стъпка, целяща стимулирането им към разработката на софтуер за многократно използване. Те вече имат известен опит от П1, но в подобни случаи реално осъзнават необходимостта от документирането на програмия код и в частност се убеждават в необходимостта да документират своите програми.

От задачи към проекти

Подходът на плавен преход от зaдачи към проекти обикновено изисква частично обновяване на съдържанието на П1, отнасящо се до задачите, разглеждани в час и задачите за извънкласна работа. Обновяването на съдържанието на П2 е също необходимо и то се отнася до проектите, които ще се разработват в рамките на този курс. В случая проектите са определящи, защото от тяхното декомпозиране се „извличат” задачи, които следва да се разгледат в П1. Ето накратко и описанието на процедурата, описана в пет стъпки, която може да се използва при обновяването на двата курса:

1°. Формулират се проекти, които ще бъдат разглеждани в П2. Ако преподавателят има известна представа за общата подготовка на студентите от П1, то това ще му помогне по-добре да прецени броя на проектите и тяхната сложност.

2°. От декомпозирането на проектите се формулират задачи, които са подходящи за разглеждане в теми на П1. Понякога задачите могат да бъдат формулирани в по-опростен вариант. В такива случаи при разпознаването им като подзадачи в проекти на П2 ще се наложи извесно обобщаване. Обикновено това се реализира с въвеждане на допълнителни параметри на функции и/или чрез промяна на функционалността им.

3°. В П1 допълнително се разглеждат задачи (в клас или като домашни задания), чиято идея и/или структура има отношение към някои от проектите в П2.

4°. Ако някоя от задачите от т. 2° или т. 3° е твърде сложна, следва да се „разбие” на редица от задачи.

5°. Решенията (т. 2° и т. 3°) би следвало да са достъпни за всички студенти. В случая може да се използват съотвени директории на сървера, на който се съхранява учебната документация за курсовете П1 и П2. Това дава възможност всички студенти да имат достъп до решенията (от даден момент нататък) на всички задачи.

Броят на проектите може да бъде два или три и по изключение четири. Точният брой зависи най-вече от нивото на студентите и тяхната мотивация да работят върху проекти. Това отнапред не винаги се знае, поради което подготовката на П1 и П2 се прави при предположение, че броят на проектите щебъде три, а след завършването на П1 техният брой се решава окончателно. Първият проект е най-труден за студентите, затова и помощта от страна на преподавателя трябва да е най-голяма. Като резултат това означава, че процедурата, описана по-горе, трябва да се извърши поне за първия проект. Опитът, който студентите добиват от първия проект, позволява по-голяма самостоятелност при работата върху следващитите проекти.

Описаната процедура се реализира лесно, ако и двете дисциплини се предават от един и същ преподвател. Преподаването им от различни преподаватели може да породи някои затруднения, но те не са непродолими.

По-долу следва кракто представяне на дейностите (фазите), които се извършват по време на всеки от проектите [3, 7].

Дейности преди започване на проекта. Тази фаза е подготвителна. Ако е необходимо, могат се въвеждат и нови понятия. Следва формулиране на самия проект. Знанията, небходими за разработването на проекта, се посочват явно, като се дават и указания за налични ресурси (учебник, Интернет връзки и др). Накрая се формират и екипите, като специално се посочва и съответният ръководител.

Работа върху проекта. Необходимото време за работа по един проект е от две до три седмици. В началото е важно студентите добре да разберат заданието на проекта. Те имат възможност да поставят въпроси в клас за изясняване на някои детайли. Всеки екип разпределя самостоятелно задълженията между своите членове. Това става в едно от техните заседания, които могат да се проведат и online. Най-важните решения, които те вземат, се документират и това става част от пълната документация на проекта.

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

Оценка на проекта. При задаване на проекта се указват и критериите за оценка. А те включват: (1) модулна структура; (2) „работещ“ програмен код; (3) документация и стил на програмиране; (4) оценка на реализираните алгоритми; (5) избор на данните за тестване и (6) умението за презентация на групов проект. Ден преди официалната презентация на проекта студентите предават електронен вариант, достъп до който има само преподавателят.

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

Обратната връзка за току що завършилия проект, е от съществено значение за преподавателя при организирането и провеждането на следващите проекти. Източници на информация могат да бъдат: (1) споделени мнения на студенти; (2) директно от презентацията на проекта от студентите; (3) от формуляра за самооценка, който всеки студент предава заедно с проекта си и е част от общата документация на проекта.

4. Пример: Редица от задачиПресмятане на прости изрази

Една задача, която многократно се разглежда в П1 и П2 по различни поводи и в различни варианти, е задачата за пресмятане на изрази. Тя е следната:

P*. [Основна задача] Даден е израз без скоби със следния общ вид:

d1 d2 d3 dn ,

в който d1, d2, d3, …, dn са цели положителни числа, а със знака са означени произволни двуаргументни аритметични операции {+, -, *, /, %}, за които се предполага, че са с еднакъв приоритет. Да се напише програма за пресмятането на израза.

Решаването на тази задача изисква съответна предварителна подготовка. За тази цел тя може да се декомпозира в редица от следните четири задачи, които водят до нейното пълно решение.

P1. Да се пресметне израз, имащ вида: d1 d2.

Задачата може да се решава преди въвеждането на функции, но добре е да се разгледа по-късно и нейн вариант, реализиран чрез функция със следния прототип:

int p1(int a1, char op, int a2);

P2. Да се пресметне израз, имащ вида: d1 d2 d3.

Задача P2 може да се решава преди въвеждане на функции, използвайки вложени управляващи структури, но добре е да разгледа и нейн вариант, реализиран чрез функция с прототип:

int p2(int a1, char op1, int a2, char op2, int a3);

Сега решението на задача P1 може директно да се използва в решението на задача P2. За целта е достатъчно да се отбележи, че d1 d2 d3 = (d1 d2 ) d3 = d4 d3.

P3. Естественото обобщение на P2 води до решаването на първоначалната задача и реализацията й чрез функция с прототип:

int p3(int a[], char op[], int n);

P4. Изразът може да се зададе чрез знаков низ. В този случай задачата изисква разглгеждането на подзадача, с която се разпознават целите числа (друга важна задача) и операциите, след което може да се приложи решението на P3. Функцията, решаваща задачата, ще е с прототип:

int p4(string exp);

Ето и зависимостта между задачите от редицата P1, P2, P3, P4, посочена със стрелки:

P1 P2, P1 P3, P2 P3, P3 P4, P3 P*, P4 P*

Пресмятането на изрази, в които се използват скоби и естественият приоритет на операциите, е още едно обобщение на първоначалната задача P*, но за нея е добре да се построи отделна редица от задачи, която би включвала и използването на структурата от данни стек.

5. Пример: PolyLine – Програмен проект за свързани списъци

По-долу накратко е представен примерен проект.

Формулировка на проекта. Полигон е редица от точки P1, P2,…, Pn, n≥1 в равнината, наречени негови върхове. Върховете са представени с координатите си (фиг.1). Като „изродени“ варианти на полигон се допуска и полигон, състоящ се от един връх и „празен“ полигон (без нито един връх). Да се напише клас PolyLine за опериране с полигони. Представянето на обект от класа (произволен полигон) да се извърши чрез свързан линеен списък.

Множеството от операции на класа трябва да включва поне следните:

Конструктори: конструктор по подразбиране (създава „празен“ полигон), конструктор за копиране и конструктор, построяващ полигон с данни от текстов файл, съдържащ полигон, записан в XML-формат (фиг. 1).

Достъп до координатите на връх от полигон.

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

Пресмятане на дължината на полигон.

Съхраняване на полигон в текстов файл, представен в XML формат.

За тестване на класа да се напише функция, която под формата на меню да позволява тестване на всяка от операциите.

От този проект могат да бъдат „отделени“ множество операции, които да се разгледат като задачи в П1. Такива са например:

преобразуване на знаков низ в цяло число;

преобразуване на знаков низ в реално число;

пресмятане дължината на отсечка, определена с координатите на крайните си точки;

четене на данни от текстов файл;

създаване на текстов файл, чиято структура е в XML-формат (силно опростен вариант).

Фигура1. Полигон с шест върха, представен в XML-формат

В някои случаи проектът може да бъде опростен или усложнен в зависимост от общото ниво на студентите в курса. Следват няколко идеи: използване на класове от библиотеките на средите за програмиране (например STL vector, STL list в С++). Ако решим да завишим алгоритмичната страна на проекта, могат да се изискват допълнителни операции, с които да се проверява дали полигонът е затворен (P1Pn), дали е изпъкнал, дали е с непресичащи се страни, да се пресметне лицето му, в случай, че е затворен и е с непресичащи се страни, и др.

6. Пример на редица от проекти

Акцентът в разгледания пример пада върху свързани линейни списъци. В П2 могат да се предложат и следнните два проекта, в които основната структура от данни е стек и съответно двоични дърво.

XML_Stack: Проект за четене на XML-файл и проверка за коректност в структурата му. Централна роля в проекта е на структурата от данни стек, с която се проверява коректното влагане на таговете на XML елементите. Това е важна задача, чиито първи и най-прост вариант трябва да се разгледа в П1 под формата на следната задача: „Даден е аритметичен израз, записан в знаков низ. Да се определи коректността на вложение на скобите на израза.“

BTree: Проект за представяне на данните в двоични дървета и опериране с тях. Понеже XML-файловете имат йерархична структура, естествено е данните да се представят на външна памет в XML-формат.

Връзката между отделните проекти се обуслявя от структурата на входните данни, които в случая са текстови XML-файлове. Предлагайки тези проекти в реда XML_Stack, PolyLine и BTree, студентите имат възможността да използват, евентуално след съответна модификация, функции и класове от предишни задачи и проекти. Има няколко съображения за включването на XML-файлове в тази редица от проекти. Ето три от тях:

Централна тема в П2 са структурите от данни и реализацията им с класове. Понеже данните с твърде сложна структура могат относително лесно да се съхраняват на външна памет във файлове с XML-формат, то използването на този формат е напълно естествено;

XML-файловете са текстови файлове и това позволява с текстов редактор директно да се създават разнообразни входни тестове за проектите. Всеки от проектите изисква създаване на конструктори, с които се „строят“ обекти, чиито данни се четат от текстов файл;

За изясняването на структурата на XML-файловете са необходими не повече от десетина минути.

7. Заключителни бележки

Основната идея на подхода на плавен предход от задачи към проекти по програмиране е да се осигурят условия за успешното преодоляване на трудностите, които студентите срещат още в първото и особено във второто ниво на курсовете по програмиране. Описаният подход е експериментиран многократно в класове, в които броят на студентите е до около 25 в клас. Естествено е в случаите, когато класовете са големи, някои от етапите на организирането на проектите да се провеждат по време на семинарни занятия. Създаването на атмосфера на колегиалност и стимулирането на работа в екипи съществено подпомага успешното прилагане на представения подход.

Въпреки че подходът е ориентиран към уводните курсове по програмиране, той е приложим и за други дисциплини, включително и извън рамките на специалността „Информатика“.

ЛИТЕРАТУРА

Andreas Breiter, Gorschwin Fey, and Rolf Drechsler. (2005). Project-Based Learning in Student Teams in Computer Science Education. Facta Universitais (NIS), Vol. 18, No. 2, 165-180

Azalov, P., F. Zlatarova. (2003). Teaching Programming through Successive Problem Transformations. The Journal of Computing Sciences in Colleges, Vol.18, No.4, 175-182.

Azalov, P., D. Richards. (2004). Project-Based Teaching of Intermediate Programming. Proceedings of the International Symposium IGIP/IEEE-ES/ASEE, Switzerland, 30-35.Barg M, Fekete A., Greening T., Hollands O., Kay J., and H. Kingston J. Problem-Based Learning for Foundation Computer Science Courses, 1-27. http:// sydney.edu.au/engineering/it/~judy/PBL/tr_cse_pbl99.pdf (сайтът е посетен за последен път на 17 май 2013)

Carter L. (2006). Why Students with an Apparent Aptitude for Computer Science Don’t Choose to Major in Computer Science. SIGCSE ’06, 27-31

David Casperson. Experience with Team Projects in a second-semester C++ Programming Course. http://www.cs.ubc.ca/wccce/Program03/papers/Casperson.html (сайтът е посетен за последен път на 17 май 2013)

ACM SIGCSE Bulletin, Volume 12 (1), 25-31.

Joel Adams. (1998). Chance-It: An Object-Oriented Capstone Project For CS-1. SIGCSE ‘98 Proceedings of the twenty-ninth SIGCSE technical symposium on Computer Science Education, 10-14.

Jorge E. Pérez, Javier García, Isabel Muñoz, Almudena Sierra Alonso, Pilar López Puche. (2010). Cooperative Learning vs. Project Based Learning. IEEE EDUCON Education Engineering 2010 The Future of Global Learning Engineering Education. Session T1A, 87-98.

Julie E. Mills, David F. Treagust. (2003). Engineering Education - Is Problem-Based or Project-Based Learningthe Answer? Australasian Journal of Engineering Education, 1-16.

Kuru S. (Ed.). (2007). Problem Based Learning. TREE – Teaching and Research in Engineering in Europe Special Interest Group B5 “Problem based and project oriented learning” Isik University. http://www3.unifi .it/tree/dl/oc/b5.pdf (сайтът е посетен за последен път на 17 май 2013).

Lingard R. (2011). Teaching and Assessing Teamwork Skills in Engineering and Computer Science. Frontiers in Education Conference (FIE), F1C-1 - F1C-5.

Kinnunen P. and Lauri Malmi. Why Students Drop Out CS1 Course? ICER’06, pp.97108, 2006.

Samuel B. Fee & Amanda M. Holland-Minkley. (2010) Teaching Computer Science through Problems, not Solutions. Computer Science Education, Volume 20, No 2, 129-144. Special Issue: Innovative Pedagogies in Computer Science Education.

Savery, J. R. (2006). Overview of Problem-based Learning: Definitions and Distinctions. Interdisciplinary Journal of Problem-based Learning: Vol. 1 (1), 1-16.

Zweben S. (2013). Computing Degree and Enrollment Trends (from the 2001-2011 CRA Taulbee Survey, Computing Research Association) http://cra.org/resources/taulbee/ (сайтът е посетен за последен път на 17 май 2013).

2025 година
Книжка 6
ENHANCING STUDENT MOTIVATION AND ACHIEVEMENT THROUGH DIGITAL MIND MAPPING

Mikloš Kovač, Mirjana Brdar, Goran Radojev, Radivoje Stojković

OPTIMIZATION VS BOOSTING: COMPARISON OF STRATEGIES ON EDUCATIONAL DATASETS TO EXPLORE LOW-PERFORMING AT-RISK AND DROPOUT STUDENTS

Ranjit Paul, Asmaa Mohamed, Peren Jerfi Canatalay, Ashima Kukkar, Sadiq Hussain, Arun K. Baruah, Jiten Hazarika, Silvia Gaftandzhieva, Esraa A. Mahareek, Abeer S. Desuky, Rositsa Doneva

ARTIFICIAL INTELLIGENCE AS A TOOL FOR PEDAGOGICAL INNOVATIONS IN MATHEMATICS EDUCATION

Stanka Hadzhikoleva, Maria Borisova, , Borislava Kirilova

Книжка 4
Книжка 3
МОДЕЛИ НА ВЕРОЯТНОСТНИ ПРОСТРАНСТВА В ОЛИМПИАДНИ ЗАДАЧИ

Драгомир Грозев, Станислав Харизанов

Книжка 1
A NOTE ON A GENERALIZED DYNAMICAL SYSTEM OCCURS IN MODELLING “THE BATTLE OF THE SEXES”: CHAOS IN SOCIOBIOLOGY

Nikolay Kyurkchiev, Anton Iliev, Vesselin Kyurkchiev, Angel Golev, Todorka Terzieva, Asen Rahnev

EDUCATIONAL RESOURCES FOR STUDYING MIDSEGMENTS OF TRIANGLE AND TRAPEZOID

Toni Chehlarova1), Neda Chehlarova2), Georgi Gachev

2024 година
Книжка 6
ВЪЗМОЖНОСТИ ЗА ИЗГРАЖДАНЕ НА МЕЖДУПРЕДМЕТНИ ВРЪЗКИ МАТЕМАТИКА – ИНФОРМАТИКА

Елена Каращранова, Ирена Атанасова, Надежда Борисова

Книжка 5
FRAMEWORK FOR DESIGNING VISUALLY ORIENTATED TOOLS TO SUPPORT PROJECT MANAGEMENT

Dalibor Milev, Nadezhda Borisova, Elena Karashtranova

3D ОБРАЗОВАТЕЛЕН ПОДХОД В ОБУЧЕНИЕТО ПО СТЕРЕОМЕТРИЯ

Пеньо Лебамовски, Марияна Николова

Книжка 4
DYNAMICS OF A NEW CLASS OF OSCILLATORS: MELNIKOV’S APPROACH, POSSIBLE APPLICATION TO ANTENNA ARRAY THEORY

Nikolay Kyurkchiev, Tsvetelin Zaevski, Anton Iliev, Vesselin Kyurkchiev, Asen Rahnev

Книжка 3
РАЗСТОЯНИЯ МЕЖДУ ЗАБЕЛЕЖИТЕЛНИ ТОЧКИ И НЕРАВЕНСТВА В ИЗПЪКНАЛ ЧЕТИРИЪГЪЛНИК

Йордан Табов, Станислав Стефанов, Красимир Кънчев, Хаим Хаимов

USING AI TO IMPROVE ANSWER EVALUATION IN AUTOMATED EXAMS

Georgi Cholakov, Asya Stoyanova-Doycheva

Книжка 2
ON INTEGRATION OF STEM MODULES IN MATHEMATICS EDUCATION

Elena Karashtranova, Aharon Goldreich, Nadezhda Borisova

Книжка 1
STUDENT SATISFACTION WITH THE QUALITY OF A BLENDED LEARNING COURSE

Silvia Gaftandzhieva, Rositsa Doneva, Sadiq Hussain, Ashis Talukder, Gunadeep Chetia, Nisha Gohain

MODERN ROAD SAFETY TRAINING USING GAME-BASED TOOLS

Stefan Stavrev, Ivelina Velcheva

ARTIFICIAL INTELLIGENCE FOR GOOD AND BAD IN CYBER AND INFORMATION SECURITY

Nikolay Kasakliev, Elena Somova, Margarita Gocheva

2023 година
Книжка 6
QUALITY OF BLENDED LEARNING COURSES: STUDENTS’ PERSPECTIVE

Silvia Gaftandzhieva, Rositsa Doneva, Sadiq Hussain, Ashis Talukder, Gunadeep Chetia, Nisha Gohain

МОДЕЛ НА ЛЕОНТИЕВ С MS EXCEL

Велика Кунева, Мариян Милев

Книжка 5
AREAS ASSOCIATED TO A QUADRILATERAL

Oleg Mushkarov, Nikolai Nikolov

ON THE DYNAMICS OF A ClASS OF THIRD-ORDER POLYNOMIAL DIFFERENCE EQUATIONS WITH INFINITE NUMBER OF PERIOD-THREE SOLUTIONS

Jasmin Bektešević, Vahidin Hadžiabdić, Midhat Mehuljić, Sadjit Metović, Haris Lulić

СИСТЕМА ЗА ИЗВЛИЧАНЕ И ВИЗУАЛИЗАЦИЯ НА ДАННИ ОТ ИНТЕРНЕТ

Георги Чолаков, Емил Дойчев, Светла Коева

Книжка 4
MULTIPLE REPRESENTATIONS OF FUNCTIONS IN THE FRAME OF DISTANCE LEARNING

Radoslav Božić, Hajnalka Peics, Aleksandar Milenković

INTEGRATED LESSONS IN CALCULUS USING SOFTWARE

Pohoriliak Oleksandr, Olga Syniavska, Anna Slyvka-Tylyshchak, Antonina Tegza, Alexander Tylyshchak

Книжка 3
ПРИЛОЖЕНИЕ НА ЕЛЕМЕНТИ ОТ ГЕОМЕТРИЯТА НА ЧЕТИРИЪГЪЛНИКА ЗА РЕШАВАНЕ НА НЕСТАНДАРТНИ ЗАДАЧИ

Йордан Табов, Веселин Ненков, Асен Велчев, Станислав Стефанов

Книжка 2
Книжка 1
НОВА ФОРМУЛА ЗА ЛИЦЕ НА ЧЕТИРИЪГЪЛНИК (ЧЕТИВО ЗА VII КЛАС)

Йордан Табов, Асен Велчев, Станислав Стефанов, Хаим Хаимов

2022 година
Книжка 6
MOBILE GAME-BASED MATH LEARNING FOR PRIMARY SCHOOL

Margarita Gocheva, Nikolay Kasakliev, Elena Somova

Книжка 5
SECURITY ANALYSIS ON CONTENT MANAGEMENT SYSTEMS

Lilyana Petkova, Vasilisa Pavlova

MONITORING OF STUDENT ENROLMENT CAMPAIGN THROUGH DATA ANALYTICS TOOLS

Silvia Gaftandzhieva, Rositsa Doneva, Milen Bliznakov

TYPES OF SOLUTIONS IN THE DIDACTIC GAME “LOGIC MONSTERS”

Nataliya Hristova Pavlova, Michaela Savova Toncheva

Книжка 4
PERSONAL DATA PROCESSING IN A DIGITAL EDUCATIONAL ENVIRONMENT

Evgeniya Nikolova, Mariya Monova-Zheleva, Yanislav Zhelev

Книжка 3
Книжка 2
STEM ROBOTICS IN PRIMARY SCHOOL

Tsanko Mihov, Gencho Stoitsov, Ivan Dimitrov

A METAGRAPH MODEL OF CYBER PROTECTION OF AN INFORMATION SYSTEM

Emiliya Koleva, Evgeni Andreev, Mariya Nikolova

Книжка 1
CONVOLUTIONAL NEURAL NETWORKS IN THE TASK OF IMAGE CLASSIFICATION

Larisa Zelenina, Liudmila Khaimina, Evgenii Khaimin, D. Khripunov, Inga Zashikhina

INNOVATIVE PROPOSALS FOR DATABASE STORAGE AND MANAGEMENT

Yulian Ivanov Petkov, Alexandre Ivanov Chikalanov

APPLICATION OF MATHEMATICAL MODELS IN GRAPHIC DESIGN

Ivaylo Staribratov, Nikol Manolova

РЕШЕНИЯ НА КОНКУРСНИ ЗАДАЧИ БРОЙ 6, 2021 Г.

Задача 1. Дадени са различни естествени числа, всяко от които има прос- ти делители, не по-големи от . Докажете, че произведението на някои три от тези числа е точен куб. Решение: числата са представим във вида . Нека разгледаме квадрат

2021 година
Книжка 6
E-LEARNING DURING COVID-19 PANDEMIC: AN EMPIRICAL RESEARCH

Margarita Gocheva, Nikolay Kasakliev, Elena Somova

Книжка 5
ПОДГОТОВКА ЗА XXV МЛАДЕЖКА БАЛКАНИАДА ПО МАТЕМАТИКА 2021

Ивайло Кортезов, Емил Карлов, Мирослав Маринов

EXCEL’S CALCULATION OF BASIC ASSETS AMORTISATION VALUES

Vehbi Ramaj, Sead Rešić, Anes Z. Hadžiomerović

EDUCATIONAL ENVIRONMENT AS A FORM FOR DEVELOPMENT OF MATH TEACHERS METHODOLOGICAL COMPETENCE

Olha Matiash, Liubov Mykhailenko, Vasyl Shvets, Oleksandr Shkolnyi

Книжка 4
LEARNING ANALYTICS TOOL FOR BULGARIAN SCHOOL EDUCATION

Silvia Gaftandzhieva, Rositsa Doneva, George Pashev, Mariya Docheva

Книжка 3
THE PROBLEM OF IMAGES’ CLASSIFICATION: NEURAL NETWORKS

Larisa Zelenina, Liudmila Khaimina, Evgenii Khaimin, D. Khripunov, Inga Zashikhina

MIDLINES OF QUADRILATERAL

Sead Rešić, Maid Omerović, Anes Z. Hadžiomerović, Ahmed Palić

ВИРТУАЛЕН ЧАС ПО МАТЕМАТИКА

Севдалина Георгиева

Книжка 2
MOBILE MATH GAME PROTOTYPE ON THE BASE OF TEMPLATES FOR PRIMARY SCHOOL

Margarita Gocheva, Elena Somova, Nikolay Kasakliev, Vladimira Angelova

КОНКУРСНИ ЗАДАЧИ БРОЙ 2/2021 Г.

Краен срок за изпращане на решения: 0 юни 0 г.

РЕШЕНИЯ НА ЗАДАЧИТЕ ОТ БРОЙ 1, 2021

Краен срок за изпращане на решения: 0 юни 0 г.

Книжка 1
СЕДЕМНАДЕСЕТА ЖАУТИКОВСКА ОЛИМПИАДА ПО МАТЕМАТИКА, ИНФОРМАТИКА И ФИЗИКА АЛМАТИ, 7-12 ЯНУАРИ 2021

Диян Димитров, Светлин Лалов, Стефан Хаджистойков, Елена Киселова

ОНЛАЙН СЪСТЕЗАНИЕ „VIVA МАТЕМАТИКА С КОМПЮТЪР“

Петър Кендеров, Тони Чехларова, Георги Гачев

2020 година
Книжка 6
ABSTRACT DATA TYPES

Lasko M. Laskov

Книжка 5
GAMIFICATION IN CLOUD-BASED COLLABORATIVE LEARNING

Denitza Charkova, Elena Somova, Maria Gachkova

NEURAL NETWORKS IN A CHARACTER RECOGNITION MOBILE APPLICATION

L.I. Zelenina, L.E. Khaimina, E.S. Khaimin, D.I. Antufiev, I.M. Zashikhina

APPLICATIONS OF ANAGLIFIC IMAGES IN MATHEMATICAL TRAINING

Krasimir Harizanov, Stanislava Ivanova

МЕТОД НА ДЕЦАТА В БЛОКА

Ивайло Кортезов

Книжка 4
TECHNOLOGIES AND TOOLS FOR CREATING ADAPTIVE E-LEARNING CONTENT

Todorka Terzieva, Valya Arnaudova, Asen Rahnev, Vanya Ivanova

Книжка 3
MATHEMATICAL MODELLING IN LEARNING OUTCOMES ASSESSMENT (BINARY MODEL FOR THE ASSESSMMENT OF STUDENT’S COMPETENCES FORMATION)

L. E. Khaimina, E. A. Demenkova, M. E. Demenkov, E. S. Khaimin, L. I. Zelenina, I. M. Zashikhina

PROBLEMS 2 AND 5 ON THE IMO’2019 PAPER

Sava Grozdev, Veselin Nenkov

Книжка 2
ЗА ВЕКТОРНОТО ПРОСТРАНСТВО НА МАГИЧЕСКИТЕ КВАДРАТИ ОТ ТРЕТИ РЕД (В ЗАНИМАТЕЛНАТА МАТЕМАТИКА)

Здравко Лалчев, Маргарита Върбанова, Мирослав Стоимиров, Ирина Вутова

КОНКУРЕНТНИ ПЕРПЕНДИКУЛЯРИ, ОПРЕДЕЛЕНИ ОТ ПРАВИЛНИ МНОГОЪГЪЛНИЦИ

Йоана Христова, Геновева Маринова, Никола Кушев, Светослав Апостолов, Цветомир Иванов

A NEW PROOF OF THE FEUERBACH THEOREM

Sava Grozdev, Hiroshi Okumura, Deko Dekov

PROBLEM 3 ON THE IMO’2019 PAPER

Sava Grozdev, Veselin Nenkov

Книжка 1
GENDER ISSUES IN VIRTUAL TRAINING FOR MATHEMATICAL KANGAROO CONTEST

Mark Applebaum, Erga Heller, Lior Solomovich, Judith Zamir

KLAMKIN’S INEQUALITY AND ITS APPLICATION

Šefket Arslanagić, Daniela Zubović

НЯКОЛКО ПРИЛОЖЕНИЯ НА ВЪРТЯЩАТА ХОМОТЕТИЯ

Сава Гроздев, Веселин Ненков

2019 година
Книжка 6
DISCRETE MATHEMATICS AND PROGRAMMING – TEACHING AND LEARNING APPROACHES

Mariyana Raykova, Hristina Kostadinova, Stoyan Boev

CONVERTER FROM MOODLE LESSONS TO INTERACTIVE EPUB EBOOKS

Martin Takev, Elena Somova, Miguel Rodríguez-Artacho

ЦИКЛОИДА

Аяпбергенов Азамат, Бокаева Молдир, Чурымбаев Бекнур, Калдыбек Жансуйген

КАРДИОИДА

Евгений Воронцов, Никита Платонов

БОЛГАРСКАЯ ОЛИМПИАДА ПО ФИНАНСОВОЙ И АКТУАРНОЙ МАТЕМАТИКЕ В РОССИИ

Росен Николаев, Сава Гроздев, Богдана Конева, Нина Патронова, Мария Шабанова

КОНКУРСНИ ЗАДАЧИ НА БРОЯ

Задача 1. Да се намерят всички полиноми, които за всяка реална стойност на удовлетворяват равенството Татяна Маджарова, Варна Задача 2. Правоъгълният триъгълник има остри ъгли и , а центърът на вписаната му окръжност е . Точката , лежаща в , е такава, че и . Симетралите

РЕШЕНИЯ НА ЗАДАЧИТЕ ОТ БРОЙ 1, 2019

Задача 1. Да се намерят всички цели числа , за които

Книжка 5
ДЪЛБОКО КОПИЕ В C++ И JAVA

Христина Костадинова, Марияна Райкова

КОНКУРСНИ ЗАДАЧИ НА БРОЯ

Задача 1. Да се намери безкрайно множество от двойки положителни ра- ционални числа Милен Найденов, Варна

РЕШЕНИЯ НА ЗАДАЧИТЕ ОТ БРОЙ 6, 2018

Задача 1. Точката е левият долен връх на безкрайна шахматна дъска. Една муха тръгва от и се движи само по страните на квадратчетата. Нека е общ връх на някои квадратчета. Казва- ме, че мухата изминава пътя между и , ако се движи само надясно и нагоре. Ако точките и са противоположни върхове на правоъгълник , да се намери броят на пътищата, свърз- ващи точките и , по които мухата може да мине, когато: а) и ; б) и ; в) и

Книжка 4
THE REARRANGEMENT INEQUALITY

Šefket Arslanagić

АСТРОИДА

Борислав Борисов, Деян Димитров, Николай Нинов, Теодор Христов

COMPUTER PROGRAMMING IN MATHEMATICS EDUCATION

Marin Marinov, Lasko Laskov

CREATING INTERACTIVE AND TRACEABLE EPUB LEARNING CONTENT FROM MOODLE COURSES

Martin Takev, Miguel Rodríguez-Artacho, Elena Somova

КОНКУРСНИ ЗАДАЧИ НА БРОЯ

Задача 1. Да се реши уравнението . Христо Лесов, Казанлък Задача 2. Да се докаже, че в четириъгълник с перпендикулярни диагонали съществува точка , за която са изпълнени равенствата , , , . Хаим Хаимов, Варна Задача 3. В правилен 13-ъгълник по произволен начин са избрани два диа- гонала. Каква е вероятността избраните диагонали да не се пресичат? Сава Гроздев, София, и Веселин Ненков, Бели Осъм

РЕШЕНИЯ НА ЗАДАЧИТЕ ОТ БРОЙ 5, 2018

Задача 1. Ако и са съвършени числа, за които целите части на числата и са равни и различни от нула, да се намери .

Книжка 3
RESULTS OF THE FIRST WEEK OF CYBERSECURITY IN ARKHANGELSK REGION

Olga Troitskaya, Olga Bezumova, Elena Lytkina, Tatyana Shirikova

DIDACTIC POTENTIAL OF REMOTE CONTESTS IN COMPUTER SCIENCE

Natalia Sofronova, Anatoliy Belchusov

КОНКУРСНИ ЗАДАЧИ НА БРОЯ

Краен срок за изпращане на решения 30 ноември 2019 г.

РЕШЕНИЯ НА ЗАДАЧИТЕ ОТ БРОЙ 4, 2018

Задача 1. Да се намерят всички тройки естествени числа е изпълнено равенството: а)

Книжка 2
ЕЛЕКТРОНЕН УЧЕБНИК ПО ОБЗОРНИ ЛЕКЦИИ ЗА ДЪРЖАВЕН ИЗПИТ В СРЕДАТА DISPEL

Асен Рахнев, Боян Златанов, Евгения Ангелова, Ивайло Старибратов, Валя Арнаудова, Слав Чолаков

ГЕОМЕТРИЧНИ МЕСТА, ПОРОДЕНИ ОТ РАВНОСТРАННИ ТРИЪГЪЛНИЦИ С ВЪРХОВЕ ВЪРХУ ОКРЪЖНОСТ

Борислав Борисов, Деян Димитров, Николай Нинов, Теодор Христов

ЕКСТРЕМАЛНИ СВОЙСТВА НА ТОЧКАТА НА ЛЕМОАН В ЧЕТИРИЪГЪЛНИК

Веселин Ненков, Станислав Стефанов, Хаим Хаимов

A TRIANGLE AND A TRAPEZOID WITH A COMMON CONIC

Sava Grozdev, Veselin Nenkov

КОНКУРСНИ ЗАДАЧИ НА БРОЯ

Христо Лесов, Казанлък Задача 2. Окръжност с диаметър и правоъгълник с диагонал имат общ център. Да се докаже, че за произволна точка M от е изпълне- но равенството . Милен Найденов, Варна Задача 3. В изпъкналия четириъгълник са изпълнени равенства- та и . Точката е средата на диагонала , а , , и са ортоганалните проекции на съответно върху правите , , и . Ако и са средите съответно на отсечките и , да се докаже, че точките , и лежат на една права.

РЕШЕНИЯ НА ЗАДАЧИТЕ ОТ БРОЙ 3, 2018

Задача 1. Да се реши уравнението . Росен Николаев, Дико Суружон, Варна Решение. Въвеждаме означението , където . Съгласно това означение разлежданото уравнение придобива вида не е решение на уравнението. Затова са възможни само случаите 1) и 2) . Разглеж- даме двата случая поотделно. Случай 1): при е изпълнено равенството . Тогава имаме:

Книжка 1
PROBLEM 6. FROM IMO’2018

Sava Grozdev, Veselin Nenkov

РЕШЕНИЯ НА ЗАДАЧИТЕ ОТ БРОЙ 2, 2018

Задача 1. Да се намери най-малкото естествено число , при което куба с целочислени дължини на ръбовете в сантиметри имат сума на обемите, рав- на на Христо Лесов, Казанлък Решение: тъй като , то не е куб на ес- тествено число и затова . Разглеждаме последователно случаите за . 1) При разглеждаме естествени числа и , за които са изпълнени релациите и . Тогава то , т.е. . Освен това откъдето , т.е. .Така получихме, че . Лесно се проверява, че при и няма естествен

КОНКУРСНИ ЗАДАЧИ НА БРОЯ

Задача 1. Да се намерят всички цели числа , за които

2018 година
Книжка 6
„ЭНЦИКЛОПЕДИЯ ЗАМЕЧАТЕЛЬНЫХ ПЛОСКИХ КРИВЫХ“ – МЕЖДУНАРОДНЫЙ СЕТЕВОЙ ИССЛЕДОВАТЕЛЬСКИЙ ПРОЕКТ В РАМКАХ MITE

Роза Атамуратова, Михаил Алфёров, Марина Белорукова, Веселин Ненков, Валерий Майер, Генадий Клековкин, Раиса Овчинникова, Мария Шабанова, Александр Ястребов

A NEW MEANING OF THE NOTION “EXPANSION OF A NUMBER”

Rosen Nikolaev, Tanka Milkova, Radan Miryanov

Книжка 5
ИТОГИ ПРОВЕДЕНИЯ ВТОРОЙ МЕЖДУНАРОДНОЙ ОЛИМПИАДЬI ПО ФИНАНСОВОЙ И АКТУАРНОЙ МАТЕМАТИКЕ СРЕДИ ШКОЛЬНИКОВ И СТУДЕНТОВ

Сава Гроздев, Росен Николаев, Мария Шабанова, Лариса Форкунова, Нина Патронова

LEARNING AND ASSESSMENT BASED ON GAMIFIED E-COURSE IN MOODLE

Mariya Gachkova, Martin Takev, Elena Somova

УЛИТКА ПАСКАЛЯ

Дарья Коптева, Ксения Горская

КОМБИНАТОРНИ ЗАДАЧИ, СВЪРЗАНИ С ТРИЪГЪЛНИК

Росен Николаев, Танка Милкова, Катя Чалъкова

Книжка 4
ЗА ПРОСТИТЕ ЧИСЛА

Сава Гроздев, Веселин Ненков

ИНЦЕНТЪР НА ЧЕТИРИЪГЪЛНИК

Станислав Стефанов

ЭПИЦИКЛОИДА

Инкар Аскар, Камила Сарсембаева

ГИПОЦИКЛОИДА

Борислав Борисов, Деян Димитров, Иван Стефанов, Николай Нинов, Теодор Христов

Книжка 3
ПОЛИНОМИ ОТ ТРЕТА СТЕПЕН С КОЛИНЕАРНИ КОРЕНИ

Сава Гроздев, Веселин Ненков

ЧЕТИРИДЕСЕТ И ПЕТА НАЦИОНАЛНА СТУДЕНТСКА ОЛИМПИАДА ПО МАТЕМАТИКА

Сава Гроздев, Росен Николаев, Станислава Стоилова, Веселин Ненков

Книжка 2
TWO INTERESTING INEQUALITIES FOR ACUTE TRIANGLES

Šefket Arslanagić, Amar Bašić

ПЕРФЕКТНА ИЗОГОНАЛНОСТ В ЧЕТИРИЪГЪЛНИК

Веселин Ненков, Станислав Стефанов, Хаим Хаимов

НЯКОИ ТИПОВЕ ЗАДАЧИ СЪС СИМЕТРИЧНИ ЧИСЛА

Росен Николаев, Танка Милкова, Радан Мирянов

Книжка 1
Драги читатели,

където тези проценти са наполовина, в Източна Европа те са около 25%, в

COMPUTER DISCOVERED MATHEMATICS: CONSTRUCTIONS OF MALFATTI SQUARES

Sava Grozdev, Hiroshi Okumura, Deko Dekov

ВРЪЗКИ МЕЖДУ ЗАБЕЛЕЖИТЕЛНИ ТОЧКИ В ЧЕТИРИЪГЪЛНИКА

Станислав Стефанов, Веселин Ненков

КОНКУРСНИ ЗАДАЧИ НА БРОЯ

Задача 2. Да се докаже, че всяка от симедианите в триъгълник с лице разделя триъгълника на два триъгълника, лицата на които са корени на урав- нението където и са дължините на прилежащите на симедианата страни на три- ъгълника. Милен Найденов, Варна Задача 3. Четириъгълникът е описан около окръжност с център , като продълженията на страните му и се пресичат в точка . Ако е втората пресечна точка на описаните окръжности на триъгълниците и , да се докаже, че Хаим Х

РЕШЕНИЯ НА ЗАДАЧИТЕ ОТ БРОЙ 2, 2017

Задача 1. Да се определи дали съществуват естествени числа и , при които стойността на израза е: а) куб на естествено число; б) сбор от кубовете на две естествени числа; в) сбор от кубовете на три естествени числа. Христо Лесов, Казанлък Решение: при и имаме . Следова- телно случай а) има положителен отговор. Тъй като при число- то се дели на , то при и имаме е естестве- но число. Следователно всяко число от разглеждания вид при деление на дава ос

2017 година
Книжка 6
A SURVEY OF MATHEMATICS DISCOVERED BY COMPUTERS. PART 2

Sava Grozdev, Hiroshi Okumura, Deko Dekov

ТРИ ИНВАРИАНТЫ В ОДНУ ЗАДА

Ксения Горская, Дарья Коптева, Асхат Ермекбаев, Арман Жетиру, Азат Бермухамедов, Салтанат Кошер, Лили Стефанова, Ирина Христова, Александра Йовкова

GAMES WITH

Aldiyar Zhumashov

SOME NUMERICAL SQUARE ROOTS (PART TWO)

Rosen Nikolaev, Tanka Milkova, Yordan Petkov

ЗАНИМАТЕЛНИ ЗАДАЧИ ПО ТЕМАТА „КАРТИННА ГАЛЕРИЯ“

Мирослав Стоимиров, Ирина Вутова

Книжка 5
ВТОРОЙ МЕЖДУНАРОДНЫЙ СЕТЕВОЙ ИССЛЕДОВАТЕЛЬСКИЙ ПРОЕКТ УЧАЩИХСЯ В РАМКАХ MITE

Мария Шабанова, Марина Белорукова, Роза Атамуратова, Веселин Ненков

SOME NUMERICAL SEQUENCES CONCERNING SQUARE ROOTS (PART ONE)

Rosen Nikolaev, Tanka Milkova, Yordan Petkov

Книжка 4
ГЕНЕРАТОР НА ТЕСТОВЕ

Ангел Ангелов, Веселин Дзивев

INTERESTING PROOFS OF SOME ALGEBRAIC INEQUALITIES

Šefket Arslanagić, Faruk Zejnulahi

PROBLEMS ON THE BROCARD CIRCLE

Sava Grozdev, Hiroshi Okumura, Deko Dekov

ПРИЛОЖЕНИЕ НА ЛИНЕЙНАТА АЛГЕБРА В ИКОНОМИКАТА

Велика Кунева, Захаринка Ангелова

СКОРОСТТА НА СВЕТЛИНАТА

Сава Гроздев, Веселин Ненков

Книжка 3
НЯКОЛКО ПРИЛОЖЕНИЯ НА ТЕОРЕМАТА НА МЕНЕЛАЙ ЗА ВПИСАНИ ОКРЪЖНОСТИ

Александра Йовкова, Ирина Христова, Лили Стефанова

НАЦИОНАЛНА СТУДЕНТСКА ОЛИМПИАДА ПО МАТЕМАТИКА

Сава Гроздев, Росен Николаев, Веселин Ненков

СПОМЕН ЗА ПРОФЕСОР АНТОН ШОУРЕК

Александра Трифонова

Книжка 2
ИЗКУСТВЕНА ИМУННА СИСТЕМА

Йоанна Илиева, Селин Шемсиева, Светлана Вълчева, Сюзан Феимова

ВТОРИ КОЛЕДЕН ЛИНГВИСТИЧЕН ТУРНИР

Иван Держански, Веселин Златилов

Книжка 1
ГЕОМЕТРИЯ НА ЧЕТИРИЪГЪЛНИКА, ТОЧКА НА МИКЕЛ, ИНВЕРСНА ИЗОГОНАЛНОСТ

Веселин Ненков, Станислав Стефанов, Хаим Хаимов

2016 година
Книжка 6
ПЕРВЫЙ МЕЖДУНАРОДНЫЙ СЕТЕВОЙ ИССЛЕДОВАТЕЛЬСКИЙ ПРОЕКТ УЧАЩИХСЯ В РАМКАХ MITE

Мария Шабанова, Марина Белорукова, Роза Атамуратова, Веселин Ненков

НЕКОТОРЫЕ ТРАЕКТОРИИ, КОТОРЫЕ ОПРЕДЕЛЕНЫ РАВНОБЕДРЕННЫМИ ТРЕУГОЛЬНИКАМИ

Ксения Горская, Дарья Коптева, Даниил Микуров, Еркен Мудебаев, Казбек Мухамбетов, Адилбек Темирханов, Лили Стефанова, Ирина Христова, Радина Иванова

ПСЕВДОЦЕНТЪР И ОРТОЦЕНТЪР – ЗАБЕЛЕЖИТЕЛНИ ТОЧКИ В ЧЕТИРИЪГЪЛНИКА

Веселин Ненков, Станислав Стефанов, Хаим Хаимов

FUZZY LOGIC

Reinhard Magenreuter

GENETIC ALGORITHM

Reinhard Magenreuter

Книжка 5
NEURAL NETWORKS

Reinhard Magenreuter

Книжка 4
АКТИВНО, УЧАСТВАЩО НАБЛЮДЕНИЕ – ТИП ИНТЕРВЮ

Христо Христов, Христо Крушков

ХИПОТЕЗАТА В ОБУЧЕНИЕТО ПО МАТЕМАТИКА

Румяна Маврова, Пенка Рангелова, Елена Тодорова

Книжка 3
ОБОБЩЕНИЕ НА ТЕОРЕМАТА НА ЧЕЗАР КОШНИЦА

Сава Гроздев, Веселин Ненков

Книжка 2
ОЙЛЕР-ВЕН ДИАГРАМИ ИЛИ MZ-КАРТИ В НАЧАЛНАТА УЧИЛИЩНА МАТЕМАТИКА

Здравко Лалчев, Маргарита Върбанова, Ирина Вутова, Иван Душков

ОБВЪРЗВАНЕ НА ОБУЧЕНИЕТО ПО АЛГЕБРА И ГЕОМЕТРИЯ

Румяна Маврова, Пенка Рангелова

Книжка 1
STATIONARY NUMBERS

Smaiyl Makyshov

МЕЖДУНАРОДНА ЖАУТИКОВСКА ОЛИМПИАДА

Сава Гроздев, Веселин Ненков

2015 година
Книжка 6
Книжка 5
Книжка 4
Книжка 3
МОТИВАЦИОННИТЕ ЗАДАЧИ В ОБУЧЕНИЕТО ПО МАТЕМАТИКА

Румяна Маврова, Пенка Рангелова, Зара Данаилова-Стойнова

Книжка 2
САМОСТОЯТЕЛНО РЕШАВАНЕ НА ЗАДАЧИ С EXCEL

Пламен Пенев, Диана Стефанова

Книжка 1
ГЕОМЕТРИЧНА КОНСТРУКЦИЯ НА КРИВА НА ЧЕВА

Сава Гроздев, Веселин Ненков

2014 година
Книжка 6
КОНКУРЕНТНОСТ, ПОРОДЕНА ОТ ТАНГЕНТИ

Сава Гроздев, Веселин Ненков

Книжка 5
ИНФОРМАТИКА В ШКОЛАХ РОССИИ

С. А. Бешенков, Э. В. Миндзаева

ОЩЕ ЕВРИСТИКИ С EXCEL

Пламен Пенев

ДВА ПОДХОДА ЗА ИЗУЧАВАНЕ НА УРАВНЕНИЯ В НАЧАЛНАТА УЧИЛИЩНА МАТЕМАТИКА

Здравко Лалчев, Маргарита Върбанова, Ирина Вутова

Книжка 4
ОБУЧЕНИЕ В СТИЛ EDUTAINMENT С ИЗПОЛЗВАНЕ НА КОМПЮТЪРНА ГРАФИКА

Христо Крушков, Асен Рахнев, Мариана Крушкова

Книжка 3
ИНВЕРСИЯТА – МЕТОД В НАЧАЛНАТА УЧИЛИЩНА МАТЕМАТИКА

Здравко Лалчев, Маргарита Върбанова

СТИМУЛИРАНЕ НА ТВОРЧЕСКА АКТИВНОСТ ПРИ БИЛИНГВИ ЧРЕЗ ДИНАМИЧЕН СОФТУЕР

Сава Гроздев, Диана Стефанова, Калина Василева, Станислава Колева, Радка Тодорова

ПРОГРАМИРАНЕ НА ЧИСЛОВИ РЕДИЦИ

Ивайло Старибратов, Цветана Димитрова

Книжка 2
ФРАКТАЛЬНЫЕ МЕТО

Валерий Секованов, Елена Селезнева, Светлана Шляхтина

Книжка 1
ЕВРИСТИКА С EXCEL

Пламен Пенев

SOME INEQUALITIES IN THE TRIANGLE

Šefket Arslanagić

2013 година
Книжка 6
Книжка 5
МАТЕМАТИЧЕСКИЕ РЕГАТЬI

Александр Блинков

Книжка 4
Книжка 3
АКАДЕМИК ПЕТЪР КЕНДЕРОВ НА 70 ГОДИНИ

чл. кор. Юлиан Ревалски

ОБЛАЧНИ ТЕХНОЛОГИИ И ВЪЗМОЖНОСТИ ЗА ПРИЛОЖЕНИЕ В ОБРАЗОВАНИЕТО

Сава Гроздев, Иванка Марашева, Емил Делинов

СЪСТЕЗАТЕЛНИ ЗАДАЧИ ПО ИНФОРМАТИКА ЗА ГРУПА Е

Ивайло Старибратов, Цветана Димитрова

Книжка 2
ЕКСПЕРИМЕНТАЛНАТА МАТЕМАТИКА В УЧИЛИЩЕ

Сава Гроздев, Борислав Лазаров

МАТЕМАТИКА С КОМПЮТЪР

Сава Гроздев, Деко Деков

ЕЛИПТИЧЕН АРБЕЛОС

Пролет Лазарова

Книжка 1
ФРАГМЕНТИ ОТ ПАМЕТТА

Генчо Скордев

2012 година
Книжка 6
ДВЕ ДИДАКТИЧЕСКИ СТЪЛБИ

Сава Гроздев, Светлозар Дойчев

ТЕОРЕМА НА ПОНСЕЛЕ ЗА ЧЕТИРИЪГЪЛНИЦИ

Сава Гроздев, Веселин Ненков

ИЗЛИЧАНЕ НА ОБЕКТИВНИ ЗНАНИЯ ОТ ИНТЕРНЕТ

Ивайло Пенев, Пламен Пенев

Книжка 5
ДЕСЕТА МЕЖДУНАРОДНА ОЛИМПИАДА ПО ЛИНГВИСТИКА

д–р Иван А. Держански (ИМИ–БАН)

ТЕОРЕМА НА ВАН ОБЕЛ И ПРИЛОЖЕНИЯ

Тодорка Глушкова, Боян Златанов

МАТЕМАТИЧЕСКИ КЛУБ „СИГМА” В СВЕТЛИНАТА НА ПРОЕКТ УСПЕХ

Сава Гроздев, Иванка Марашева, Емил Делинов

I N M E M O R I A M

На 26 септември 2012 г. след продължително боледуване ни напусна проф. дпн Иван Ганчев Донев. Той е първият професор и първият доктор на науките в България по методика на обучението по математика. Роден е на 6 май 1935 г. в с. Страхилово, В. Търновско. След завършване на СУ “Св. Кл. Охридски” става учител по математика в гр. Свищов. Тук той организира първите кръжоци и със- тезания по математика. През 1960 г. Иван Ганчев печели конкурс за асистент в СУ и още през следващата година започ

Книжка 4
Книжка 3
СЛУЧАЙНО СЪРФИРАНЕ В ИНТЕРНЕТ

Евгения Стоименова

Книжка 2
SEEMOUS OLYMPIAD FOR UNIVERSITY STUDENTS

Sava Grozdev, Veselin Nenkov

EUROMATH SCIENTIFIC CONFERENCE

Sava Grozdev, Veselin Nenkov

FIVE WAYS TO SOLVE A PROBLEM FOR A TRIANGLE

Šefket Arslanagić, Dragoljub Milošević

ПРОПОРЦИИ

Валя Георгиева

ПЪТЕШЕСТВИЕ В СВЕТА НА КОМБИНАТОРИКАТА

Росица Керчева, Румяна Иванова

ПОЛЗОТВОРНА ПРОМЯНА

Ивайло Старибратов

Книжка 1
ЗА ЕЛЕКТРОННОТО ОБУЧЕНИЕ

Даниела Дурева (Тупарова)

МАТЕМАТИКАТА E ЗАБАВНА

Веселина Вълканова

СРАВНЯВАНЕ НА ИЗРАЗИ С КВАДРАТНИ КОРЕНИ

Гинка Бизова, Ваня Лалева