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

Објавено: октомври 12, 2018

1.    Наслов на наставниот предмет

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

2.    Код

3ФЕИТ12З011

3.    Студиска програма

КТИ, ТКИИ

4.    Организатор на студиската програма

Факултет за електротехника и информациски технологии

5.    Степен

Прв циклус студии

6.    Академска година/семестар

III/5, IV/7

7.    Број на ЕКТС

6.00

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

R. Stevens, B. Fenner, A. Rudoff UNIX Network Programming, Volume 1, The Sockets Networking API, 3rd ed. Addison Wesley 2004

2

B. Rhodes, J. Goerzen Foundations of Python Network Programming, 3rd Еd. Apress 2014

3

Dr. M.O.F. Sarker, S. Washington Learning Python Network Programming Packt Publishing 2015

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

Бр.

Автор

Наслов

Издавач

Година

1

N. Yocom, J. Turner, K. Davis The Definitive Guide to Linux Network Programming Apress 2004