Subject

Програмски парадигми

1. Course Title Програмски парадигми
Programming paradigms
2. Code F18L3W038
3. Study Programme Computer Science
4. Organizer of the study programme (unit, institute, department or division) Faculty of Computer Science and Engineering
5. Degree level (first, second, third cycle) Прв циклус
6. Academic year / semester 7 / Зимски
7. Number of ECTS credits 6
8. Teacher
9. Prerequisites for enrolling in the course Алгоритми и податочни структури
10. Objectives of the course programme (competences) Целта на овој курс е запознавање на студентите со програмски парадигми различни од императивната и објектно-ориентираната, со фокус на декларативната и функционалната програмска парадигма. По завршувањето на курсот студентите треба да бидат способни да: Споредуваат различни програмски парадигми и да изберат соодветна за даден проблем, Користат логички програмски јазик за имплементација на ефикасни алгоритми, Користат логички програмски јазик за репрезентација и манипулација со знаење, Користат функционален програмски јазик за пишување на програми без странични ефекти, Разбираат и користат функции од прв и повисок ред, функционални затворања, мрзлива евалуација и апстракција на секвенци, Разбираат и пишуваат едноставни конкурентни програми
11. Course content Преглед и споредба на императивна, објектно-ориентирана, декларативна и функционална програмска парадигма. Вовед во декларативна програмска парадигма. Исказно сметање. Предикатна логика од прв ред. Основи на логички програмски јазик. Унификација. Пребарување со враќање наназад. Клаузална репрезентација на податочни структури и алгоритми. Рекурзија. Прекини. Негација. Претставување и манипулација со знаење со логички програмски јазик. Вовед во функционална програмска парадигма. Програмирање без странични ефекти. Структурирани податочни типови и нивно процесирање. Функции како објекти од прв ред. Анонимни функции. Функции од повисок ред. Функционални затворања. Карринг. Парцијални функции. Мрзлива евалуација. Бесконечни секвенци. Апстракција на секвенци. Конкурентност и паралелизам
12. Learning methods Предавања со користење на презентации, интерактивни предавања, вежби (користење на опрема и софтверски пакети), тимска работа, пример случаи, поканети гости предавачи, самостојна изработка и одбрана на проектна задача и семинарска работа.
13. Total available time 6 ECTS x 30 hours = 180 hours
14. Distribution of available time 30 + 45 + 15 + 15 + 75 = 180 часа
15. Forms of teaching activities
15.1. Lectures - theoretical instruction 30 hours
15.2. Exercises (laboratory, auditory), seminars, teamwork 45 hours
16. Other forms of activities
16.1. Project assignments 15 часови
16.2. Independent assignments 15 часови
16.3. Home study 75 часови
17. Assessment method
17.1. Tests 10 бодови
17.2. Seminar paper / project (presentation: written and oral) 15 бодови
17.3. Activities and learning 10 бодови
17.4. Final exam 70 бодови
18. Grading criteria (points / grade)
up to 50 points5 (five) (F)
from 51 to 60 points6 (six) (E)
from 61 to 70 points7 (seven) (D)
from 71 to 80 points8 (eight) (C)
from 81 to 90 points9 (nine) (B)
from 91 to 100 points10 (ten) (A)
19. Requirement for obtaining a signature and taking the final exam Реализирани актибвности 15.2 и 16.1
20. Language of instruction Macedonian and English
21. Method for monitoring the quality of teaching internal evaluation and survey mechanism
22. Literature
22.1. Required literature
No. Author Title Publisher Year
22.2. Additional literature
No. Author Title Publisher Year