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

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

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

Детална содржина по поглавја и единици

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

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


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

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

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

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

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

Датотеки

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

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

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

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

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

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

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

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




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

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

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

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

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

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

● Контејнери

● Вектори

● Итератори

● Алгоритми

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

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

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

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

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

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

Методи на настава

Теоретска настава, аудиториски практични активности, лабораториски персонализирани самостојни активности, работа со едуктивни онлајн ресурси, преку акаунти со дефинирани права и привилегии на пристап, решавање на програмски задачи, изработка на самостојни проекти, онлајн верификација.
Неделни часови 5 часови
Вкупен фонд 150 часови
Услови за потпис Редовно следења на наставата

Наставни активности

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

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

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

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

писмено

Компоненти на оценување

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

Скала на оценување

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

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

Ред.АвториНасловИздавачГодина
1Јолевски, Маркоска“Збирка задачи по Вовед во програмирање 2“ (автор) *) и onlineISBN 978-9989-57-691-12011
2Pol Pol & Harvi Deitel“С++ Deitel, како се програмира” **) и online 20102010
3W3school C++ online web tutorialshttp://w3school.com
4C++ networkhttps://cplusplus.com/

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

Ред.АвториНасловИздавачГодина
1Рамона Маркоска*) достапна на www.ramona-markoska.info, и линкови до содржини за предметотCreative Commons Attribution-NonCommercial-NoDerivatives 4.02010
2Рамона МаркоскаОблак ресурс за онлајн практична работа во C++, достапен и преку http://ramona-markoska.infohttps://cpp-cloud.blogspot.com/
3Рамона МаркоскаНапредно програмирање google classroomДостапно преку http://ramona-markoska.info, на покана преку факултетски е-маил адреси