- Code
- CMP 503
- Name
- Advanced Distributed Programming
- Semester
- 3
- Lecture hours
- 3.00
- Seminar hours
- 1.00
- Laborator hours
- 0.00
- Credits
- 3.50
- ECTS
- 6.00
- Description
-
Në këtë lëndë, studentët do të njihen me programimin dhe platformat që realizojnë programimin në ambjent të shpërndarë. Do të njihen me paralelizmin e thredeve dhe si bëhet komunikimi i thredeve duke shmangur deadlock.
- Objectives
-
Provides advanced knowledge of concepts and architectures of distributed systems. Uses Python for building distributed and scalable applications. Teaches parallel and distributed programming techniques, utilizing processes, threads, and asynchrony.
- Java
- Tema
- 1
- Hyrje ne sistemet e shperndara
- 2
- Organizimi i memories: SISD, SIMD, MISD, MIMD Hyrja ne Python • Sintaksat • Llojet e datave • Kontrolli i rrjedhes...etj (Lit, fq 24-46)
- 3
- Vazhdim Python •. Klasat & Objektet •. Exceptions handling
- 4
- Paralelizmi me threde • Moduli i python per thredet. • Caktimi i thredeve • Caktimi i një nënklase threadi (Lit., fq. 47 – 61)
- 5
- Sinkronizimi i thredeve • Sinkronizimi me kycje • Sinkronizimi me kycje R (Lit., fq. 62 – 68)
- 6
- Sinkronizimi i thredeve • Sinkronizimi me semaforë • Sinkronizimi me kushte • Sinkronizimi me evente
- 7
- Paralelizmi i bazuar në procese • Moduli i python per multi-procese • Emerimi i proceseve • Proceset ne background • Asgjesemi i proceseve • Nënklasat e proceseve dhe shkëmbimi i të dhënave (Lit, fq. 87-115)
- 8
- Midterm
- 9
- Kalimi i mesazheve • Struktura mpi dhe moduli mpi i python • Komunikimi point-to-point • Shmangja e deadlocks (Lit, fq. 116 – 130)
- 10
- Komunikimi • Komunikimi me broadcast • Komunikimi me funksionin scatter • Komunikim duke përdorur funksion mbledhës • Komuniki “all-to-all” • Optimizimi i komunikimit (Lit, fq. 131-152)
- 11
- Programim asinkron • Module të tjera python • Menaxhimi i loops • Asyncio (Lit.1, fq. 153 – 181)
- 12
- Distributed Python • Programim i shpërndarë në aplikacione të shpërndara • Moduli Socket i Python • Përdorimi i Celery për menaxhimin e punëve • RMI Pyro4 (Lit, fq. 182-210)
- 13
- Cloud Computing • Arkitektura dhe modelet e shërbimeve • Zhvillimi i aplikacioneve web me PythonAnywhere • Computing pa server (Lit, fq. 211 – 249)
- 14
- Testimi i aplikacioneve dhe sherbimeve • Teste interaktive • Pdb • debug (Lit, fq. 302 – 333)
- 15
- Prezantim Projektesh
- 16
- Final Exam
- 1
- Në fund të lëndës pritet që studentët të njohin konceptet programimit të shpërndarë.
- 2
- Të jenë të aftë të njohin modelet e shërbimeve IaaS, PaaS, SaaS.
- 3
- Studentët do të njihen me serverat në mjedis cloud dhe si u shëebejnë klientëve.
- 4
- Studentët do të zotërojnë njohuri mbi programimin heterogjen.
- 5
- Në fund të lëndës studentët do të jenë të familjarizuar me gjuhën Python dhe modulet e tij.
- 6
- Studentët do të jenë të aftë të shqyrtojnë algoritmet CUDA dhe OpenCL.
- Quantity Percentage Total percent
- Midterms
- 1 25% 25%
- Quizzes
- 0 0% 0%
- Projects
- 1 30% 30%
- Term projects
- 0 0% 0%
- Laboratories
- 1 15% 15%
- Class participation
- 0 0% 0%
- Total term evaluation percent
- 70%
- Final exam percent
- 30%
- Total percent
- 100%
- Quantity Duration (hours) Total (hours)
- Course duration (including exam weeks)
- 16 4 64
- Off class study hours
- 14 4 56
- Duties
- 1 10 10
- Midterms
- 1 8 8
- Final exam
- 1 12 12
- Other
- 0 0 0
- Total workLoad
- 150
- Total workload / 25 (hours)
- 6.00
- ECTS
- 6.00