Network Programming

Објавено: June 28, 2022
1. Course Title Network Programming
2. Code 4ФЕИТ12З008
3. Study program ТКИИ,КТИ
4. Organizer of the study program (unit, institute, department) Faculty of Electrical Engineering and Information Technologies
5. Degree (first, second, third cycle) First cycle
6. Academic year/semester IV/7 7. Number of ECTS credits 6
8. Lecturer D-r Marija Kalendar, D-r Marko Porjazoski
9. Course Prerequisites Passed: Programming and Аlgorithms
10. Course Goals (acquired competencies): TCP and UDP socket programming and implementation of network applications in Python.
11. Course Syllabus: Architecture of the Internet. TCP/IP protocol stack. Introduction to Python network programming.
Introduction to Socket Concepts. Types of sockets. Block diagram of TCP and UDP socket calls. Python Socket Module. Client/server programming. TCP and UDP client and server. Using the DNS system in network programming. Multiplexing of Socket I/O. Routines for event processing. Twisted framework for Python. Working with network interfaces. IPv4. IPv6. IPv4 collaboration with IPv6.
Using application level libraries to work with the Web, e-mail, ftp. Working with HTTP protocol: httplib () and urllib (). Working with e-mail protocols and FTP. Using ftplib (); Working with SMTP, POP, and IMAP protocols. Using smtplib, Poplib. IMAPClient. Programming with CGI and CGI applications. Security issues with CGI applications. Using the API from a web site. Screen scraping versus the offered API; Security and network programming. Security with SSL and TLS; Working with custom certificates and OpenSSL. Network monitoring and security. Undefined (raw) sockets and sniffing network packets.
12. Learning methods: Lectures, tasks and exercises and laboratory practice
13. Total number of course hours 2 + 2 + 1 + 0
14. Distribution of course hours 180
15. Forms of teaching 15.1. Lectures-theoretical teaching 30
15.2. Exercises (laboratory, practice classes), seminars, teamwork 45
16. Other course activities 16.1. Projects, seminar papers 25
16.2. Individual tasks 20
16.3. Homework and self-learning 60
17. Grading 17.1. Exams 10
17.2. Seminar work/project (presentation: written and oral) 10
17.3. Activity and participation 0
17.4. Final exam 80
18. Grading criteria (points) up to 50 points 5 (five) (F)
from 51to 60 points 6 (six) (E)
from 61to 70 points 7 (seven) (D)
from 71to 80 points 8 (eight) (C)
from 81to 90 points 9 (nine) (B)
from 91to 100 points 10 (ten) (A)
19. Conditions for acquiring teacher’s signature and for taking final exam Finishing laboratory exercises and a project
20. Forms of assessment Two partial exams during the semester lasting 120 minutes each or one written exam in an appropriate exam session lasting 120 minutes and preparation of a practical project task.
The final grade includes exam points, project assignment points, homework points and laboratory exercise points.
It is not allowed to use books, scripts, manuscripts or notes of any kind during the exam, as well as a calculator, mobile phone, tablet or any other electronic device.
21. Language Macedonian
22. Method of monitoring of teaching quality Internal evaluation and surveys
23. Literature
23.1. Required Literature
No. Author Title Publisher Year
1 Brandon Rhodes, John Goerzen Foundations of Python Network Programming Apress 2014