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

Цели на предметната програма (компетенции): Запознавање со концептите на напредно програмирање преку изучување на разните стандардизации библиотеки на програмскиот јазик C++ ., со акцент на STL, односно стандардната библиотека на шаблони. Користење на библиотечни и креирање на сопствени сложени типови на податоци, како покажувачи и референци, енумерации, уни,структури, и почетно појаснување на концептите на објектно програмирање во C++, воведување на елементи на случајност во програмирање, организација на влез/излез преку датотеки, користење на итератори, темплејти, алгоритми. Теориска и практична разработка на концептите на мемориска алокација.

Цели на предметната програма (компетенции): Запознавање со концептите на напредно програмирање преку изучување на разните стандардизации библиотеки на програмскиот јазик C++ ., со акцент на STL, односно стандардната библиотека на шаблони. Користење на библиотечни и креирање на сопствени сложени типови на податоци, како покажувачи и референци, енумерации, уни,структури, и почетно појаснување на концептите на објектно програмирање во C++, воведување на елементи на случајност во програмирање, организација на влез/излез преку датотеки, користење на итератори, темплејти, алгоритми. Теориска и практична разработка на концептите на мемориска алокација.
Резултати од учењето: Стекнување на применети знаења и вештини од областа на креирање на сопствени програми, (ре)искористување на постоечки код, и изработка на напредни програми со користење на дополнителните библиотеки.

Detailed syllabus by chapters and units

Воведни напомени • Значење на стандардизацијата на програмските јазици во контекст на нивната актуелност и конкурентност, преглед на библиотеките, појаснување на концептите на податочни формати како дел од библиотеките, Запознавање со сложените типови на податоци и образците за нивно креирање. резултати од учењето: запознавање со логиката и користењето на понапредни форми и алатки на програмирање

Интегрирани развојни околини за практична работа


● Работни практични концепти како надополнување на посточеките- облак активности во GitHub, и опционо MS Visual Studio за работа во C++, како изборна алтернатива на Dev C++ и Code::Blocks.

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

Сложени типови на податоци

● Енумерации ● Унии ● Структури ● Референци ● Покажувачи ● Објекти и класи – надоградба на C во C++ ● Компатибилност, комплементарност и правила на практично користење на сложените типови на податоци ● Сложените тпови на податоци како основа за креирање на сопствени кориснички податоци ● Поврзување на сложените типови на податоци со библиотечни и кориснички функции

резултати од учењето: запознавање на ниво на имплелментација на сложените типови на податоци

Датотеки

● Дефиниција, значење, примена, ● Видови на датотеки ● Семантика и синтакса при работа со датотеки на ниво на програмскиот јазик C++, работни чекори и процедури на процерка на грешка ● Библиотека за поддршка на работата со датотеки ● Организација на влез/излез на ниво на датотека

резултати од учењето: запознавање со датотеки и нивно користење, како дополнителен начин на организација на влез и излез

Референци на стандардната C/C++ библиотека- избрани компоненти и функции

● Библиотека со податочни формати и функции за работа со време, и геенрирање на елементи на случајност ● Библиотека за работа со стрингови ● Библиотека за работа со датотеки

резултати од учењето: проучување и примена на наменски библиотеки од C/C++

Мемориски менаџмент

● Видови на мемориски менаџмент и неговото

практично значење




● Динамичка алокација на меморија

● Разлики меѓу класичен начин на работа и користење на динамичка алокација

● Практични примери за користење на мемориски менаџмент

Резултати од учењето: примена и значење на мемориски менаџмент

Стандардна библиотека за работа со шаблони

● Содржини, начин на користење и дополнителни можности кои ги дава STL- стандардната библиотека со шаблони

● Контејнери

● Вектори

● Итератори

● Алгоритми

Резултати од учењето: практично користење на составните делови на СТЛ

Споредба на програмски решенија без и со користење на стандардната библиотека на шаблони

● Решавање на задачи со менија и датотеки, и нивна преработка со елементите и можностите на STL

резултати од учењето: интегрално усвојување и имплементација на презентираните концепти низ пизирот на користење на СТЛ

Паралелно со секоја од целините се организирани аудиториски појаснувања со практична презентација преку примери, и се израбoтуваат индивидуални практични примери. Заради потребата од интегрирана примена на стекнатите знаења, при секоја наредна практична активност, новите поими и концепти ги прошируваат и во себе вклучувааат претходните основни познавања.

Во напредно програмирање, акцентот е на практична примена на напредните алатки и библиотеки, како и на начините на напредна организаија на податоците, што е суштина на ефективноста и ефикаснноста на С++.

Teaching methods

Теоретска настава, аудиториски практични активности, лабораториски персонализирани самостојни активности, работа со едуктивни онлајн ресурси, преку акаунти со дефинирани права и привилегии на пристап, решавање на програмски задачи, изработка на самостојни проекти, онлајн верификација.
Weekly contact hours 5 hours
Total workload 150 hours
Attendance requirements Редовно следења на наставата

Teaching activities

CodeActivityHours
16.1Предавања- теоретска настава: 450
16.2Вежби (лабораториски, аудиториски), семинари, тимска работа: часови30
16.3Пракса: часови0

Other activities

CodeActivityHours
17.1Проектни задачи: часови45
17.2Самостојни задачи: часови30
17.3Домашно учење - задачи0

Assessment method

писмено

Assessment components

CodeComponentPoints
19.1Тестови: бодови40
19.2Семинарска работа/проект, презентација писмена и усна: бодови20
19.3Завршен испит: бодови40

Grading scale

Points rangeGrade
до 50 бода5 (пет) (F)
од 51 до 60 бода6 (шест) (E)
од 61 до 70 бода7 (седум) (D)
од 71 до 80 бода8 (осум) (C)
од 81 до 90 бода9 (девет) (B)
од 91 до 100 бода10 (десет) (A)
Самоевалуација

Additional literature

No.AuthorsTitlePublisherYear
1Рамона Маркоска*) достапна на www.ramona-markoska.info, и линкови до содржини за предметотCreative Commons Attribution-NonCommercial-NoDerivatives 4.02010