Subject

Client–Server Programming Paradigms

1. Course Title Client–Server Programming Paradigms
Client-server paradigms
2. Code m23_s_157
3. Study Programme
4. Organizer of the study programme (unit, institute, department or division) Faculty of Computer Science and Engineering
5. Degree level (first, second, third cycle) Second cycle
6. Academic year / semester 10 / Summer
7. Number of ECTS credits 6
8. Teacher Petre Lameski, Vladimir Trajkovic
9. Prerequisites for enrolling in the course
10. Objectives of the course programme (competences) Students will be introduced to various paradigms of client-server programming. They will be able to independently create basic client-side and server-side code based on sockets, shared memory, or web services.
11. Course content Client-server programming fundamentals. Writing server code that serves multiple clients. Writing client code. Protocols and the client-server paradigm. Fundamentals of more complex client-server distributed architectures. Creating web services. Introduction to service-oriented architectures.
12. Learning methods Lectures, homework assignments, project assignments, laboratory exercises
13. Total available time 6 ECTS x 30 hours = 180 hours
14. Distribution of available time 45 + 15 + 30 + 50 + 40 = 180 hours
15. Forms of teaching activities
15.1. Lectures - theoretical instruction 45 hours
15.2. Exercises (laboratory, auditory), seminars, teamwork 15 hours
16. Other forms of activities
16.1. Project assignments 50 hours
16.2. Independent assignments 30 hours
16.3. Home study 40 hours
17. Assessment method
17.1. Tests 45 points
17.2. Seminar paper / project (presentation: written and oral) 50 points
17.3. Activities and learning 10 points
17.4. Final exam 0 points
18. Grading criteria (points / grade)
up to 50 points5 (five) (F)
from 51 to 60 points6 (six) (E)
from 61 to 70 points7 (seven) (D)
from 71 to 80 points8 (eight) (C)
from 81 to 90 points9 (nine) (B)
from 91 to 100 points10 (ten) (A)
19. Requirement for obtaining a signature and taking the final exam completed activities
20. Language of instruction Macedonian and English
21. Method for monitoring the quality of teaching Self-evaluation and surveys
22. Literature
22.1. Required literature
1. Stevens, W. Richard | Unix Network Programming: Networking APIs: Sockets and XTI (Volume 1). | Addison Wesley | 1998
2. Varela, Carlos A., and Gul Agha | Programming Distributed Computing Systems: A Foundational Approach | MIT Press | 2013
3. Brendan Burns | Designing Distributed Systems: Patterns and Paradigms for Scalable, Reliable Services | O'Reilly | 2018
4. Maarten van Steen, Andrew S. Tanenbaum | Distributed Systems | Createspace Independent Publishing Platform | 2017
22.2. Additional literature
No. Author Title Publisher Year