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

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

1.

Наслов на наставниот предмет

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

Programming paradigms

2.

Код

F23L3W038

3.

Студиска програма

Примена на информациски технологии, Софтверско инженерство и информациски системи, Компјутерско инженерство, Интернет, мрежи и безбедност, Информатичка едукација, Software engineering and information systems, Примена на информациски технологии, Софтверско инженерство и информациски системи, Компјутерски науки, Компјутерско инженерство, Интернет, мрежи и безбедност, Software engineering and information systems, Стручни студии за програмирање, Стручни студии за програмирање, Компјутерски науки, Биоинформатика,

4.

Организатор на студиската програма (единица, односно институт, катедра, оддел)

Факултет за информатички науки и компјутерско инженерство

5.

Степен (прв, втор, трет циклус)

Прв циклус

6.

Академска година / семестар

4 / Зимски

7. Број на ЕКТС кредити

6.0

8.

Наставник

доц. д-р Емил Станков проф. д-р Кире Триводалиев проф. д-р Миле Јованов

9.

Предуслови за запишување на предметот

Алгоритми и податочни структури или Примена на алгоритми и податочни структури

10.

Цели на предметната програма (компетенции):


Целта на овој курс е запознавање на студентите со програмски парадигми различни од императивната и објектно-ориентираната, со фокус на декларативната и функционалната програмска парадигма. По завршувањето на курсот студентите треба да бидат способни да: Споредуваат различни програмски парадигми и да изберат соодветна за даден проблем, Користат логички програмски јазик за имплементација на ефикасни алгоритми, Користат логички програмски јазик за репрезентација и манипулација со знаење, Користат функционален програмски јазик за пишување на програми без странични ефекти, Разбираат и користат функции од прв и повисок ред, функционални затворања, мрзлива евалуација и апстракција на секвенци, Разбираат и пишуваат едноставни конкурентни програми

11.

Содржина на предметната програма:


Предавања: 1. Преглед и споредба на императивна, објектно-ориентирана, декларативна и функционална програмска парадигма. 2. Вовед во декларативна програмска парадигма. Исказно сметање. Предикатна логика од прв ред. 3. Основи на логички програмски јазик. Унификација. Пребарување со враќање наназад. 4. Клаузална репрезентација на податочни структури и алгоритми. Рекурзија. Прекини. Негација. 5. Претставување и манипулација со знаење со логички програмски јазик. 6. Вовед во функционална програмска парадигма. Програмирање без странични ефекти. 7. Структурирани податочни типови и нивно процесирање. 8. Функции како објекти од прв ред. Анонимни функции. 9. Функции од повисок ред. Функционални затворања. Карринг. Парцијални функции. 10. Мрзлива евалуација. Бесконечни секвенци. Апстракција на секвенци. 11. Конкурентност и паралелизам 1 12. Конкурентност и паралелизам 2

12.

Методи на учење:


Предавања со користење на презентации, интерактивни предавања, вежби (користење на опрема и софтверски пакети), тимска работа, пример случаи, поканети гости предавачи, самостојна изработка и одбрана на проектна задача и семинарска работа.

13.

Вкупен расположив фонд на време

6.0 ЕКТС x 30 часа = 180 часа

14.

Распределба на расположивото време

30 + 45 + 15 + 15 + 75 = 180 часа

15.

Форми на наставните активности

15.1.

Предавања- теоретска настава

30 часови

15.2.

Вежби (лабораториски, аудиториски), семинари, тимска работа

45 часови

16.

Други форми на активности

16.1.

Проектни задачи

15 часови

16.2.

Самостојни задачи

15 часови

16.3.

Домашно учење

75 часови

17.

Начин на оценување

17.1.

Тестови

10 бодови

17.2.

Семинарска работа/ проект ( презентација: писмена и усна)

15 бодови

17.3.

Активности и учење

10 бодови

17.4.

Завршен испит

70 бодови

18.

Критериуми за оценување (бодови/ оценка)

до 50 бода

5 (пет) (F)

од 51 до 60 бода

6 (шест) (E)

од 61 до 70 бода

7 (седум) (D)

од 71 до 80 бода

8 (осум) (C)

од 81 до 90 бода

9 (девет) (B)

од 91 до 100 бода

10 (десет) (A)

19.

Услов за потпис и полагање на завршен испит

Реализирани активности 15.2 и 16.1

20.

Јазик на кој се изведува наставата

Македонски и англиски

21.

Метод на следење на квалитетот на наставата

механизам на интерна евалуација и анкети

22.

Литература

22.1.

Задолжителна литература

Ред.бр.

Автор

Наслов

Издавач

Година

4656

John C. Mitchell

Concepts in Programming Languages

Cambridge University Press

2002

4657

Maurizio Gabbrielli and Simone Martini

Programming Languages: Principles and Paradigms (Undergraduate Topics in Computer Science)

Springer

2010

4658

Neal Ford

Functional Thinking: Paradigm Over Syntax

O`Reilly Media

2014

4659

Ivan Bratko

Prolog Programming for Artificial Intelligence, 4/E

Pearson Education

2011

22.2.

Дополнителна литература

Ред.бр.

Автор

Наслов

Издавач

Година