Subject

Напредно програмирање

1. Course Title Напредно програмирање
Advanced programming
2. Code F23L3W140
3. Study Programme Software engineering and information systems, Софтверско инженерство и информациски системи, Компјутерски науки, Софтверско инженерство
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 5 / Зимски
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 Предавања:
1. Објектно-ориентиранa парадигмa
2. Генеричко програмирање, генерички функции, генерички класи - 1
3. Генеричко програмирање, генерички функции, генерички класи - 2
4. Генерички податочни структури (колекции)
5. Генерички податочни структури (мапи и множества)
6. Генерички податочни структури за решавање на проблеми со специјални побарувања
7. Вовед во функционално програмирање
8. Рефакторирање на код
9. Вовед во конкурентно програмирање
10. Основни концепти на шаблони за дизајн на софтвер
11. Шаблони за дизајн на софтвер 1
12. Шаблони за дизајн на софтвер 2

Вежби:
1. Објектно-ориентиран дизајн и концепти - задачи
2. Генеричко програмирање, генерички функции, генерички класи - задачи 1
3. Генеричко програмирање, генерички функции, генерички класи - задачи 2
4. Генерички податочни структури (колекции) - задачи
5. Генерички податочни структури (мапи и множества) - задачи
6. Генерички податочни структури - задачи
7. Вовед во функционално програмирање - задачи
8. Рефакторирање на код - задачи
9. Вовед во конкурентно програмирање - задачи
10. Дизајн на софтверско решени со и без употреба на добро познати дизајнерски практики - задачи
11. Шаблони за дизајн на софтвер - задачи 1
12. Шаблони за дизајн на софтвер - задачи 2
12. Learning methods Предавања поддржани со презентации преку слајдови, интерактивни предавања, вежби (користење на опрема и софтверски пакети), тимска работа, пример случаи, поканети гости предавачи, самостојна изработка и одбрана на проектна задача и семинарска работа, учење во електронско опкружување (форуми, консултации).
13. Total available time 6 ECTS x 30 hours = 180 hours
14. Distribution of available time 30 + 60 + 15 + 15 + 60 = 180 часа
15. Forms of teaching activities
15.1. Lectures - theoretical instruction 30 hours
15.2. Exercises (laboratory, auditory), seminars, teamwork 60 hours
16. Other forms of activities
16.1. Project assignments 15 часови
16.2. Independent assignments 15 часови
16.3. Home study 60 hours
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, 16
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
1. Savitch, Walter J | Absolute Java | Addison Wesley | 2012
2. Naftalinand Philip Wadler | JAVA Generics and Collections | O`Reilly | 2006
3. Alan Mycroft, Mario Fusco | Java 8 in Action: Lambdas, Streams, and Functional-style Programming | Manning Publication | 2015
22.2. Additional literature
No. Author Title Publisher Year