Network Programming
Code | Completion | Credits | Range | Language |
---|---|---|---|---|
BI-SIP.21 | Z | 5 | 2P+2C | Czech |
- Garant předmětu:
- Jan Fesl
- Lecturer:
- Jan Fesl
- Tutor:
- Jan Fesl, Michal Polák, Daniel Sedlák
- Supervisor:
- Department of Computer Systems
- Synopsis:
-
The course covers fundamental topics of programming network applications. It consists of 4 parts. The introductory part is focused on low-level programming using BSD sockets. The second part is devoted to designing communication protocols and their verification. The third part introduces the principles and applications of middleware technologies. The final part introduces basic modern models of distributed computing - P2P and blockchain. All topics will be first explained theoretically and then practices in computer labs using a chosen programming language environment.
- Requirements:
- Syllabus of lectures:
-
1. Network interface programming - protocols TCP and UDP.
2. Network interface programming - blocking and nonblocking operations.
3. Network interface programming - group-oriented communications.
4. Secure network applications - protocols SSL and TLS.
5. Best practices for programming of secure networks applications.
6. Design and implementation of network protocols.
7. Prototyping and verification of network protocols.
8. Middleware technologies - remote procedure calls.
9. Middleware technologies - producer/consumer concept.
10. Implementation of network applications, debugging and best practices for their implementation.
11. Design and implementation of peer-to-peer network applications.
12. The blockchain model and its application for programming of network applications.
13. Debugging of distributed network applications.
- Syllabus of tutorials:
-
The exercises correlate with the syllabus of lectures and demonstrate the current topic practically.
1. Network interface programming - protocols TCP and UDP.
2. Network interface programming - blocking and nonblocking operations.
3. Network interface programming - group-oriented communications.
4. Secure network applications - protocols SSL and TLS.
5. Best practices for programming of secure networks applications.
6. Design and implementation of network protocols.
7. Prototyping and verification of network protocols.
8. Middleware technologies - remote procedure calls.
9. Middleware technologies - producer/consumer concept.
10. Implementation of network applications, debugging and best practices for their implementation.
11. Design and implementation of peer-to-peer network applications.
12. The blockchain model and its application for programming of network applications.
13. Debugging of distributed network applications.
- Study Objective:
- Study materials:
-
1. Stevens R. W. et al : Unix Network Programming, Volume 1: The Sockets Networking API (3rd Edition). Addison-Wesley, 2004. ISBN 978-0131411555.
2. Stevens R. W. : Unix Network Programming, Volume 2: Interprocess Communications (2nd Edition). Addison-Wesley, 1998. ISBN 978-0132974295.
3. Raval S. : Decentralized Applications: Harnessing Bitcoin's Blockchain Technology. OReilly, 2016. ISBN 978-1491924549.
4. Colouris G. : Distributed Systems: Concepts and Design (5th Edition). Addison-Wesley, 2011. ISBN 978- 0132143011.
- Note:
- Further information:
- Courses
- Time-table for winter semester 2024/2025:
- Time-table is not available yet
- Time-table for summer semester 2024/2025:
- Time-table is not available yet
- The course is a part of the following study plans:
-
- Bachelor specialization Information Security, in Czech, 2021 (elective course)
- Bachelor specialization Management Informatics, in Czech, 2021 (elective course)
- Bachelor specialization Computer Graphics, in Czech, 2021 (elective course)
- Bachelor specialization Computer Engineering, in Czech, 2021 (elective course)
- Bachelor program, unspecified specialization, in Czech, 2021 (VO)
- Bachelor specialization Web Engineering, in Czech, 2021 (elective course)
- Bachelor specialization Artificial Intelligence, in Czech, 2021 (elective course)
- Bachelor specialization Computer Science, in Czech, 2021 (elective course)
- Bachelor specialization Software Engineering, in Czech, 2021 (elective course)
- Bachelor specialization Computer Systems and Virtualization, in Czech, 2021 (elective course)
- Bachelor specialization Computer Networks and Internet, in Czech, 2021 (PS)
- Bachelor specialization Information Security, in Czech, 2024 (elective course)
- Bachelor program, unspecified specialization, in Czech, 2024 (VO)
- Bachelor specialization Management Informatics, in Czech, 2024 (elective course)
- Bachelor specialization Computer Graphics, in Czech, 2024 (elective course)
- Bachelor specialization Software Engineering, in Czech, 2024 (elective course)
- Bachelor specialization Web Engineering, in Czech, 2024 (elective course)
- Bachelor specialization Computer Networks and Internet, in Czech, 2024 (PS)
- Bachelor specialization Computer Engineering, in Czech, 2024 (elective course)
- Bachelor specialization Computer Systems and Virtualization, in Czech, 2024 (elective course)
- Bachelor specialization Artificial Intelligence, in Czech, 2024 (elective course)
- Bachelor specialization Computer Science, in Czech, 20214 (elective course)