Мрежно програмирање

Објавено: јуни 28, 2022
1. Наслов на наставниот предмет Мрежно програмирање
2. Код 4ФЕИТ12З008
3. Студиска програма ТКИИ,КТИ
4. Организатор на студиската програма Факултет за електротехника и информациски технологии
5. Степен Прв циклус студии
6. Академска година / семестар IV/7 7. Број на ЕКТС 6
8. Наставник Д-р Марија Календар, Д-р Марко Порјазоски
9. Предуслов за запишување на предметот Положен: Програмирање и алгоритми
10. Цели на предметната програма (компетенции). Програмирање на TCP и UDP сокети и имплементација на мрежни апликации во Python.
11. Содржина на програмата: Архитектура на Интернет мрежата. TCP/IP протоколен стек. Вовед во мрежно програмирање во Python.
Вовед во концепти на сокети. Типови на сокети. Блок дијаграм на повици на TCP и UDP сокети. Модул за сокети во Python. Клиент/сервер програмирање. TCP i UDP клиент и сервер. Користење на DNS системот во мрежно програмирање. Мултиплексирање на сокетски I/O. Рутини за обработка на настани. Twisted framework за Python. Работа со мрежни интерфејси. IPv4. IPv6. Соработка IPv4 со IPv6.
Користење на библиотеки на апликациско ниво за работа со Web, e-mail, ftp. Работа со HTTP протокол: httplib() и urllib(). Работа со e-mail протоколи и FTP. Користење ftplib(); Работа со SMTP, POP и IMAP протоколи. Користење smtplib, Poplib. IMAPClient. Програмирање со CGI и CGI апликаци. Безбедносни проблеми со CGI апликации. Користење на API од web страна. Земање податоци од екран (screen scraping) наспроти понудено API; Безбедност и мрежно програмирање. Безбедност со SSL и TLS; Работа со сопствени сертификати и OpenSSL. Мониторирање на мрежа и сигурност. Недефинирани (raw) сокети и прислушкување пакети од мрежа.
12.Методи на учење Предавања, аудиториски и лабораториски вежби
13. Вкупен расположив фонд на часови 2 + 2 + 1 + 0
14. Распределба на расположивото време 180
15. Форми на наставните активности 15.1. Предавања – теоретска настава 30
15.2. Вежби, семинари, тимска работа 45
16. Други форми на активност 16.1. Проектни задачи 25
16.2. Самостојни задачи 20
16.3. Домашно учење 60
17. Начини на оценување 17.1. Тестови 10
17.2. Семинарска работа/проект 10
17.3. Активност и учење 0
17.4. Завршен испит 80
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. Услов за потпис и полагање на завршен испит Лабораториски вежби и проект
20. Начин на полагање на испитот Два парцијални испити во текот на семестарот во времетраење од по 120 минути или еден писмен испит во соодветна испитна сесија во времетраење од 120 минути и изработка на практична проектна задача.
Во конечната оценка влагуваат поените од испитите, поените од проектната задача, поените од домашните задачи и поените од лабораториските вежби.
За време на испитот не е дозволено користење книги, скрипти, ракописи или белешки од кој било вид, како и калкулатор, мобилен телефон, таблет или кој било друг електронски уред.
21. Јазик на кој се изведува наставата Македонски и Англиски
22. Метод на следење на квалитетот на наставата Интерна евалуација и анкети
23. Литература
23.1. Задолжителна литература
Бр. Автор Наслов Издавач Година
1 Brandon Rhodes, John Goerzen Foundations of Python Network Programming Apress 2014