University of Belgrade, Faculty of organizational sciences

Department for e-business

Concurrent and distributed programming in Python programming language

Course content:

1.Python programming language

Introduction to the Python programming language. Basic syntax. Flow control. Data structures in Python. Functions. Entrance and exit. Working with files. Error and exception management. Packages and modules. Object-oriented Python. Working with databases.

Literature: Materials in electronic form, available at

2.Concurrent and distributed programming

Basic concepts of concurrent and distributed programming. Processes. Nor. Communication and process synchronization problems. Signaling. System tools for communication and process synchronization. Monitors. Coordination and synchronization of processes in distributed computer systems. Manage processes, memory, and devices in a distributed environment. Event, service and process based programming. Process and service oriented architectures based on distributed messaging. Application examples: P2P networks, distributed file systems, distributed databases, business analytics, blockchain technologies.

Literature: Materials in electronic form, available at

3.Python libraries and programming concurrent applications

Concurrent programming in Python. Global interpreter lock. Using Python libraries when developing competing applications. Development of concurrent applications.

Literature: Materials in electronic form, available at

Attendance of the course is free for all participants. Classes will be organized online, using the Moodle platform and video conferencing. During the work on the mentioned topics, the participants of the course will work on the realization of the project on the given topic.

Each participant who attends the classes and successfully completes the final project receives a certificate at the end of the course. For students or future students of Faculty of Organizational Sciences, the part of pre-exam obligations on one of the Elab subjects (depends on level of study) will be considered as completed, based on received certificate:

  • Internet technologies – undergraduate studies
  • Internet technologies and systems – master studies
  • Internet technologies and systems – selected chapters – particular postgraduate studies
  • Internet technologies – selected chapters – PhD studies