Advanced programming

Advanced programming

1.

Subject title

Advanced programming

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

2.

Code

F23L3W140

3.

Study program

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

4.

Organizer of the study program (unit, institute, department, division)

Faculty of Information Sciences and Computer Engineering

5.

Study cycle (first, second, third)

Прв циклус

6.

Academic year / semester

3 / Зимски

7. Number of ECTS credits

6.0

8.

Instructor

проф. д-р Дејан Ѓорѓевиќ проф. д-р Ѓорѓи Маџаров ворн. проф. д-р Иван Китановски

9.

Prerequisites for enrollment

Објектно-ориентирано програмирање

10.

Subject goals and competencies:


To introduce students to the generic programming paradigm. To become familiar with abstract data types, creating template classes and functions. To develop skills in using collections of data (vectors, rows, lists, sets and dictionaries). Finally, students are expected to be able to apply the concepts of patterns for object- oriented software development in modeling a specified problem in a robust object-oriented program. Students will be introduced to software development techniques in an integrated development environment.

11.

Subject content:


Lectures: 1. Object-oriented paradigm 2. Generic programming, generic functions, generic classes - 1 3. Generic programming, generic functions, generic classes - 2 4. Generic data structures (collections) 5. Generic data structures (maps and sets) 6. Generic data structures for solving problems with special claims 7. Introduction to functional programming 8. Refactoring code 9. Introduction to competitive programming 10. Basic Concepts of Software Design Patterns 11. Software Design Patterns 1 12. Software Design Patterns 2 Exercises: 1. Object-oriented design and concepts - tasks 2. Generic programming, generic functions, generic classes - tasks 1 3. Generic programming, generic functions, generic classes - tasks 2 4. Generic data structures (collections) - tasks 5. Generic data structures (maps and sets) - tasks 6. Generic data structures - tasks 7. Introduction to functional programming - tasks 8. Code refactoring - tasks 9. Introduction to competitive programming - assignments 10. Design of software solutions with and without the use of well-known design practices - tasks 11. Software Design Patterns - Tasks 1 12. Software Design Patterns - Tasks 2

12.

Learning methods:


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

13.

Total available time fund

6.0 ECTS x 30 hours = 180 hours

14.

Time distribution

30 + 60 + 15 + 15 + 60 = 180 hours

15.

Forms of teaching activities

15.1.

Lectures - theoretical teaching

30 hours

15.2.

Exercises (laboratory, classroom), seminars, team work

60 hours

16.

Other forms of activities

16.1.

Project tasks

15 hours

16.2.

Independent tasks

15 hours

16.3.

Homework

60 hours

17.

Grading method

17.1.

Tests

10 points

17.2.

Seminar work / project (presentation: written and oral)

15 points

17.3.

Activities and learning

10 points

17.4.

Final exam

70 points

18.

Grading criteria (points / grade)

up to 50 points

5 (five) (F)

from 51 to 60 points

6 (six) (E)

from 61 to 70 points

7 (seven) (D)

from 71 to 80 points

8 (eight) (C)

from 81 to 90 points

9 (nine) (B)

from 91 to 100 points

10 (ten) (A)

19.

Condition for signature and taking final exam

Реализирани активности 15, 16

20.

Language of instruction

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

21.

Quality assurance method

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

22.

Literature

22.1.

Mandatory literature

No.

Author

Title

Publisher

Year

8500

Savitch, Walter J

Absolute Java

Addison Wesley

2012

8501

Naftalinand Philip Wadler

JAVA Generics and Collections

O`Reilly

2006

8502

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