Лични алати
Пријави се

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

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