Форум Поща Карта на сайта Търсене Връзки Контакти
Начало Обучение Избираеми дисциплини Oбщ списък на избираемите дисциплини и практикуми Функционално програмиране    English
Факултет по математика и информатика - Функционално програмиране
Лектори

проф. д-р Елена Сомова,
Dr. Viktória Zsók

Анотация

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

Предварителни изисквания
Не се изискват специални основни познания, но някои вече съществуващи умения за програмиране биха били полезни, тъй като курсът се фокусира особено върху елементи на функционалния стил на програмиране.
КОМПЕТЕНТНОСТИ
 
: Успешно завършилите обучението по тази учебна дисциплина:
1. Ще знаят:
         основните понятия и концепции в предметната област на дисциплината;
         ключовите механизми за функционално програмиране;
         спецификата на функционалния подход, вкл. концепцията за lazy evaluation;
         функционалния подход за програмиране чрез Haskell.
2. Ще могат:
         да прилагат концепциите на функционалното програмиране;
         да дефинират различните видове функции;
         да използват различните видове структури от данни;
         да създават алгоритми във функционален стил на програмиране;
         да програмират на Haskell.
3. Ще придобият следните компетентности:
         способност за логическо мислене;
         способност за самостоятелно търсене на информация и натрупване на допълнителни знания.
ТЕХНИЧЕСКО ОСИГУРЯВАНЕ НА ОБУЧЕНИЕТО
Студентите могат да ползват електронни материали за задължително изучаване, както и за допълнително преглеждане. Всички лекции се представят в зала, оборудвана с мултимедийна техника и с осигурен (вкл. и безжичен) Интернет-достъп. За самостоятелна работа студентите могат да ползват и компютърна зала със свободен достъп. Студентите имат възможност да получат консултации като се срещат лично с преподавателите в определени часове на всяка седмица, или виртуално – по всяко време в рамките на 24 часа, използвайки университетската компютърна мрежа.
ТЕМАТИЧНО СЪДЪРЖАНИЕ НА УЧЕБНАТА ДИСЦИПЛИНА
А) Лекции
1.         Дефиниране на функции (охранители, шаблони, рекурсивни функции, композиции, приоритети и обработка на ламбда изрази). (5 часа)
2.         Структури от данни (списъци). Функции от по-висок ред, сортиращи списъци и разбиране на списъци. (5 часа)
3.         Структури от данни (кортежи, записи), специфични типове и преобразуване на типове. (5 часа)
4.         Алгебрични типове и дървета. Алгоритми, модули и класове. Теми и предизвикателства за изследване в функционалното програмиране. (5 часа)
УЧЕБНИ ДЕЙНОСТИ, МЕТОДИ И ФОРМИ НА ПРЕПОДАВАНЕ:
•           Лекции;
•           Практически упражнения.
ОПИСАНИЕ НА ИЗВЪНАУДИТОРНАТА ЗАЕТОСТ
•           Дават се домашни работи и курсов проект по темите за самостоятелно разработване.  (60 ча-са)
•           Студентите разширяват знанията си чрез ползване на е-курс, предложената литература и ин-тернет сайтове. (25 часа)
НАЧИН НА ПРОВЕЖДАНЕ НА ИЗПИТА И ОТЧИТАНЕ НА ТЕКУЩОТО ОЦЕНЯВАНЕ
•           По време на занятията се провежда текущо оценяване на базата на участие в дискусион-ния процес и реализирането на учебните задачи (50% от крайната оценка), както и на представяне на самостоятелна курсова работа (50% от крайната оценка). Оформената оценка се мотивира пред студента и се вписва в изпитния протокол и студентската книжка.
•           Неполучилите положителна оценка се явяват на поправителен изпит, който се провежда при същите правила.
•           Ако и на поправката студентът не успее да издържи изпита, се явява на ликвидационен изпит.
ЛИТЕРАТУРА

1.         Viktória Zsók, E-learning resourses for students, 2026.
2.         Graham Hutton, Programming in Haskell 2nd Edition, Cambridge University Press, 2016.
3.         Haskell, https://www.haskell.org/, достъп: 2026.
4.         Learn You a Haskell for Great Good!, https://learnyouahaskell.github.io/chapters.html, , достъп: 2026.
5.         Learning Haskell, https://wiki.haskell.org/Learning_Haskell, достъп: 2026.

Актуално
Още новини
Архив на новините
© 2026 ФМИ