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

Последна измена: октомври 25, 2019

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.    Јазик на кој се изведува наставата

Македонски и Англиски

21.    Метод на следење на квалитетот на наставата

Интерна евалуација и анкети

22.    Литература

22.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

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

Бр.

Автор

Наслов

Издавач

Година

1

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