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 |