Uniwersytet Marii Curie-Skłodowskiej w Lublinie - Centralny System Uwierzytelniania
Strona główna

Programowanie współbieżne i rozproszone

Informacje ogólne

Kod przedmiotu: MFI-I.2S.164
Kod Erasmus / ISCED: (brak danych) / (brak danych)
Nazwa przedmiotu: Programowanie współbieżne i rozproszone
Jednostka: Wydział Matematyki, Fizyki i Informatyki
Grupy:
Punkty ECTS i inne: 7.00 Podstawowe informacje o zasadach przyporządkowania punktów ECTS:
  • roczny wymiar godzinowy nakładu pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się dla danego etapu studiów wynosi 1500-1800 h, co odpowiada 60 ECTS;
  • tygodniowy wymiar godzinowy nakładu pracy studenta wynosi 45 h;
  • 1 punkt ECTS odpowiada 25-30 godzinom pracy studenta potrzebnej do osiągnięcia zakładanych efektów uczenia się;
  • tygodniowy nakład pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się pozwala uzyskać 1,5 ECTS;
  • nakład pracy potrzebny do zaliczenia przedmiotu, któremu przypisano 3 ECTS, stanowi 10% semestralnego obciążenia studenta.
Język prowadzenia: polski
Wymagania wstępne:

Umiejętność programowania w językach Java i C

Podstawowa znajomość współczesnych architektur komputerowych i systemów operacyjnych

Godzinowe ekwiwalenty punktów ECTS:

Godziny realizowane z udziałem nauczyciela:

- wykład: 30 godz.

- laboratorium: 30 godz.

Łącznie z udziałem nauczyciela: 60 godz. / 2,4 pkt ECTS


Praca indywidualna studenta, potrzebna do zaliczenia przedmiotu (studiowanie literatury, realizacja zadań, przygotowanie się do laboratorium, przygotowanie się do egzaminu): 115 godz. / 4,6 pkt ECTS


Łącznie: 175 godz. / 7 pkt ECTS

Sposób weryfikacji efektów kształcenia:

- ćwiczenia praktyczne/laboratoryjne - U1, W1

- egzamin pisemny - W1, W2, U2, K1

- realizacja projektu - W1, W3, U1, K1, K2

- pisemne testy kontrolne - W1, U2

Pełny opis:

Celem przedmiotu jest zaznajomienie słuchaczy z teoretycznymi podstawami i praktyką rozwiązywania problemów informatycznych w postaci programów współbieżnych oraz metodami tworzenia systemów rozproszonego przetwarzania informacji. W szczególności omówione zostaną następujące zagadnienia:

1. Podstawowe pojęcia dotyczące współbieżności

2. Poprawność programów współbieżnych

3. Semafory (problem producent - konsument, problem ucztujących filozofów, problem wzajemnego wykluczania)

4. Monitory, problem czytelników i pisarzy

5. Wybrane mechanizmy programowania współbieżnego (blokady, operacje RMW)

6. Implementacja wybranych mechanizmów realizujących współbieżność

7. Teoretyczne zagadnienia związane z programowaniem współbieżnym

8. Realizacja współbieżności w języku Ada oraz C+PTHREADS

9. Tworzenie systemów rozproszonych w oparciu o Remote Method Invocation (RMI), standard CORBA, RMI-IIOP, protokół MQTT

Wykład jest prowadzony zdalnie przy użyciu platformy MS Teams.

Literatura:

Stpiczyński, P., and Brzuszek, M. Programowanie współbieżne i rozproszone w jezyku Java. Uniwersytet Marii Curie-Sklodowskiej w Lublinie, 2012, https://stpiczynski.umcs.pl/books/stpiczynski_wsp.pdf

Oracle Corporation, The Java Tutorial - Concurrency (ver. 2024) https://docs.oracle.com/javase/tutorial/essential/concurrency/

J. Manner, S. Bohm: Lecture Notes: Concurrency Topics in Java (April 2022), https://www.researchgate.net/profile/Johannes-Manner/publication/360473694_Lecture_Notes_Concurrency_Topics_In_Java/links/62792e893a23744a7270446f/Lecture-Notes-Concurrency-Topics-In-Java.pdf

M. Herlihy, N. Shavit. Sztuka programowania wieloprocesorowego. Wydawnictwo naukowe PWN, 2010

M. Ben-Ari. Podstawy programowania współbieżnego i rozproszonego. Wydawnictwa Naukowo-Techniczne, 2009

Efekty uczenia się:

W1: Student zna języki programowania współbieżnego i rozproszonego oraz ma wiedzę dotyczącą ich wykorzystania w rozwiązywaniu problemów - K_W01, K_W03

W2: Student ma rozszerzoną wiedzę na temat realizacji współbieżności we współczesnych systemach komputerowych - K_W05

W3: Student ma wiedzę dotyczącą specyfikacji testowania oraz wdrażania systemów ze współbieżnością K_W04

U1: Student umie tworzyć systemy o dużym stopniu komplikacji i specjalistycznym przeznaczeniu i weryfikować hipotezy odnośnie ich poprawności - K_U01

U2: Student umie dokonać implementacji algorytmu współbieżnego wykorzystując gotowe narzędzia (biblioteki i konstrukcje języków programowania) - K_U03

K1: Student odpowiedzialnie korzysta z literatury w celu rozwiązywania problemów inżynierskich/badawczych. - K_K01

K2: Student dostrzega znaczenia korzystania z opinii ekspertów przy rozwiązywaniu skomplikowanych problemów aplikacyjnych K_K02

Zajęcia w cyklu "Semestr letni 2024/2025" (zakończony)

Okres: 2025-02-25 - 2025-09-30
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin więcej informacji
Wykład, 30 godzin więcej informacji
Koordynatorzy: Przemysław Stpiczyński
Prowadzący grup: Monika Piekarz, Przemysław Stpiczyński
Lista studentów: (nie masz dostępu)
Zaliczenie: Przedmiot - Egzamin
Laboratorium - Zaliczenie na ocenę
Wykład - Egzamin

Zajęcia w cyklu "Semestr letni 2025/2026" (w trakcie)

Okres: 2026-02-25 - 2026-06-21
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin więcej informacji
Wykład, 30 godzin więcej informacji
Koordynatorzy: Przemysław Stpiczyński
Prowadzący grup: Monika Piekarz, Przemysław Stpiczyński
Lista studentów: (nie masz dostępu)
Zaliczenie: Przedmiot - Egzamin
Laboratorium - Zaliczenie na ocenę
Wykład - Egzamin
Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Uniwersytet Marii Curie-Skłodowskiej w Lublinie.
kontakt deklaracja dostępności mapa serwisu USOSweb 7.3.0.0-d0cb783bbf (2026-04-08)