sk2:projekt
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revision | |||
| sk2:projekt [2025/11/07 12:39] – [Terminy] jkonczak | sk2:projekt [2026/10/29 23:32] (current) – jkonczak | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== SK2 – projekt zaliczeniowy z programowania (2025/2026) ====== | + | ====== SK2 – projekt zaliczeniowy z programowania (2026/2027) ====== |
| Do zaliczenia pierwszej części laboratoriów (programowanie) należy zrealizować projekt __ustalony z prowadzącym__. | Do zaliczenia pierwszej części laboratoriów (programowanie) należy zrealizować projekt __ustalony z prowadzącym__. | ||
| Line 5: | Line 5: | ||
| __Przykładowe__ tematy projektów: | __Przykładowe__ tematy projektów: | ||
| - | < | ||
| - Wieloosobowa gra czasu rzeczywistego – dowolna gra w którą da się grać w więcej niż dwie osoby. Przykłady gier na których można się wzorować: [[https:// | - Wieloosobowa gra czasu rzeczywistego – dowolna gra w którą da się grać w więcej niż dwie osoby. Przykłady gier na których można się wzorować: [[https:// | ||
| - " | - " | ||
| Line 15: | Line 14: | ||
| - Grupowy edytor grafiki wektorowej – serwer i klient programu, który pozwoli kilku osobom naraz pracować nad grafiką wektorową. Współbieżne operacje na tym samym obiekcie (np. zmiana rozmiaru i zmiana koloru) mają być sensownie obsłużone. | - Grupowy edytor grafiki wektorowej – serwer i klient programu, który pozwoli kilku osobom naraz pracować nad grafiką wektorową. Współbieżne operacje na tym samym obiekcie (np. zmiana rozmiaru i zmiana koloru) mają być sensownie obsłużone. | ||
| - Radio internetowe – serwer ma kolejkę plików dźwiękowych, | - Radio internetowe – serwer ma kolejkę plików dźwiękowych, | ||
| - | - Ciągła synchronizacja katalogów – program który dba o to, by zawartość katalogu (rekurencyjnie) u wszystkich klientów była taka sama. Zmiany są wykrywane natychmiastowo. Współbieżne zmiany są wykrywane i właściwie obsłużone. W tym projekcie można nie robić GUI. | + | - Ciągła synchronizacja katalogów – program który dba o to, by zawartość katalogu (rekurencyjnie) u wszystkich klientów była taka sama. Zmiany są wykrywane natychmiastowo |
| - Job scheduler – prosty system kolejkowy: w serwerze rejestrują się węzły obliczeniowe, | - Job scheduler – prosty system kolejkowy: w serwerze rejestrują się węzły obliczeniowe, | ||
| - Reliable UDP multicast – biblioteka / protokół do realizacji niezawodnego przesyłania danych z użyciem UDP multicastu i użycie jej do budowy przykładowego programu (np. wysyłanie pliku). W tym projekcie można nie robić GUI. | - Reliable UDP multicast – biblioteka / protokół do realizacji niezawodnego przesyłania danych z użyciem UDP multicastu i użycie jej do budowy przykładowego programu (np. wysyłanie pliku). W tym projekcie można nie robić GUI. | ||
| - Publish–subscribe message queue. Tutaj trzeba napisać trzy składniki – message broker (serwer), [[https:// | - Publish–subscribe message queue. Tutaj trzeba napisać trzy składniki – message broker (serwer), [[https:// | ||
| - | - HTTP(S) caching proxy – proxy serwujące najczęściej pobierane strony z własnej pamięci (przykład programu – [[http:// | ||
| - Inny projekt, uzgodniony z prowadzącym. | - Inny projekt, uzgodniony z prowadzącym. | ||
| Line 29: | Line 27: | ||
| * http:// | * http:// | ||
| * [[https:// | * [[https:// | ||
| - | * http:// | + | * [[https:// |
| * http:// | * http:// | ||
| </ | </ | ||
| Line 47: | Line 45: | ||
| * Projekty są pisane w 2 osoby, chyba że uzgodniono inaczej z prowadzącym. | * Projekty są pisane w 2 osoby, chyba że uzgodniono inaczej z prowadzącym. | ||
| * **Uzgodnieniu projektu = mail do mnie z opisem projektu + moja odpowiedź OK.** | * **Uzgodnieniu projektu = mail do mnie z opisem projektu + moja odpowiedź OK.** | ||
| - | * Opis projektu najlepiej zrobić w postaci krótkiego przypadku użycia (use case [[https:// | + | * Opis projektu najlepiej zrobić w postaci krótkiego przypadku użycia (use case [[https:// |
| * Tematy projektów mogą się powtarzać. Każda grupa musi przygotować własny opis projektu. | * Tematy projektów mogą się powtarzać. Każda grupa musi przygotować własny opis projektu. | ||
| - | * Około miesiąc przed terminem oddania projektu (datę podam później) będę przeglądał kod źródłowy projektów. Przegląd kodu ma pomóc w poprawieniu jakości kodu i eliminacji błędów które się w nim zdążyły pojawić. | ||
| ===== Wymagania ===== | ===== Wymagania ===== | ||
| Line 66: | Line 63: | ||
| Sieć i liczba użytkowników: | Sieć i liczba użytkowników: | ||
| < | < | ||
| - | * **Program ma działać w sieciach rozległych (przez internet) – czyli obsługiwać opóźnienia, brak informacji zwrotnej z funkcji '' | + | * **Program ma działać w sieciach rozległych (przez internet) – czyli sensownie działać mimo opóźnień, braku informacji zwrotnej z funkcji '' |
| * **Zaimplementowana logika ma uwzględniać że użytkownicy mogą się dowolnie łączyć, rozłączać (np. w trakcie kiedy serwer wykonuje na ich rzecz działanie), | * **Zaimplementowana logika ma uwzględniać że użytkownicy mogą się dowolnie łączyć, rozłączać (np. w trakcie kiedy serwer wykonuje na ich rzecz działanie), | ||
| * Komunikacja klient-serwer ma odbywać się z wykorzystaniem protokołu TCP, chyba że temat projektu stanowi inaczej lub uzgodniono z prowadzącym użycie innych protokołów. | * Komunikacja klient-serwer ma odbywać się z wykorzystaniem protokołu TCP, chyba że temat projektu stanowi inaczej lub uzgodniono z prowadzącym użycie innych protokołów. | ||
| - | * Serwer musi nasłuchiwać na dowolnym adresie IP, a klient musi mieć możliwość wyboru adresu IP serwera bez ponownej kompilacji. | + | |
| + | | ||
| * Liczba klientów nie może być sztucznie ograniczona. Jeśli np. liczba graczy jest ograniczona przez zasady gry, to należy umożliwić wiele gier na serwerze. (Po uzgodnieniu z prowadzącym można uchylić to wymaganie, np. dla gier czasu rzeczywistego.) | * Liczba klientów nie może być sztucznie ograniczona. Jeśli np. liczba graczy jest ograniczona przez zasady gry, to należy umożliwić wiele gier na serwerze. (Po uzgodnieniu z prowadzącym można uchylić to wymaganie, np. dla gier czasu rzeczywistego.) | ||
| | | ||
| Rozwój oprogramowania: | Rozwój oprogramowania: | ||
| * **Kod ma być rozwijany na repozytorium** https:// | * **Kod ma być rozwijany na repozytorium** https:// | ||
| - | * **Projekt musi dać się łatwo zbudować | + | * **Wymagane jest przygotowanie plików** (wybranego przez was) **systemu budowania pozwalające |
| - | * Programy powinny kompilować się bez ostrzeżeń (np. dla kodu w C/C%%++%% z flagami kompilatora '' | + | * Programy powinny kompilować się bez ostrzeżeń (np. dla kodu w C/C%%++%% z flagami kompilatora '' |
| * Kod będzie testowany analizatorami statycznymi (np. cppcheck, [[https:// | * Kod będzie testowany analizatorami statycznymi (np. cppcheck, [[https:// | ||
| Line 85: | Line 83: | ||
| Projekt jest wstępnie oceniany na: | Projekt jest wstępnie oceniany na: | ||
| - | < | ||
| * 5.0 jeśli stworzone programy działają poprawnie w każdych warunkach sieciowych i realizują wszystkie aspekty zawarte w opisie projektu | * 5.0 jeśli stworzone programy działają poprawnie w każdych warunkach sieciowych i realizują wszystkie aspekty zawarte w opisie projektu | ||
| * 4.0 jeśli stworzone programy działają poprawnie przynajmniej w typowej sieci lokalnej i realizują wszystkie aspekty zawarte w opisie projektu | * 4.0 jeśli stworzone programy działają poprawnie przynajmniej w typowej sieci lokalnej i realizują wszystkie aspekty zawarte w opisie projektu | ||
| * 3.0 jeśli pojawiają się błędy w działaniu programów lub nie zostały zrealizowane fragmenty opisu projektu | * 3.0 jeśli pojawiają się błędy w działaniu programów lub nie zostały zrealizowane fragmenty opisu projektu | ||
| - | Następnie ocena jest zwiększana / zmniejszana w zależności od: | ||
| < | < | ||
| + | Następnie ocena jest zwiększana / zmniejszana w zależności od: | ||
| * przyjętych rozwiązań aspektów sieciowych | * przyjętych rozwiązań aspektów sieciowych | ||
| * jakości kodu | * jakości kodu | ||
| * błędów kompilacji, błędów zarządzania pamięcią, błędnej synchronizacji między wątkami, etc. | * błędów kompilacji, błędów zarządzania pamięcią, błędnej synchronizacji między wątkami, etc. | ||
| * braku spełnienia zasad opisanych na tej stronie (np. terminy, brak plików systemu budowania, brak repozytorium etc.) | * braku spełnienia zasad opisanych na tej stronie (np. terminy, brak plików systemu budowania, brak repozytorium etc.) | ||
| + | |||
| + | **W trakcie prezentacji działającego projektu w laboratorium prowadzący będzie | ||
| + | wypytywać wyrywkowo o działanie kodu.** Przykładowo: | ||
| + | zapyta co one robią, albo poprosi o wskazanie który fragment kodu odpowiada | ||
| + | za konkretne rzeczy. **Brak udzielenia odpowiedzi, wyjaśnienia niepasujące do | ||
| + | kodu, wymijające odpowiedzi, problemy ze wskazaniem które linie w kodzie | ||
| + | odpowiadają za podane działania znacznie obniżą ocenę z projektu.** | ||
| + | Proszę się przygotować że będę wymagać od was przy prezentacji projektu | ||
| + | znajomości kodu waszych programów. | ||
| + | |||
| Często powtarzające się błędy które prawie zawsze skutkują obniżeniem oceny: | Często powtarzające się błędy które prawie zawsze skutkują obniżeniem oceny: | ||
| - | < | ||
| * aktywne czekanie (nieważne czy dla synchronizacji wątków, czy do obsługi sieci) | * aktywne czekanie (nieważne czy dla synchronizacji wątków, czy do obsługi sieci) | ||
| * brak dzielenia przychodzących strumieniem TCP danych na logiczne komunikaty | * brak dzielenia przychodzących strumieniem TCP danych na logiczne komunikaty | ||
| Line 103: | Line 109: | ||
| ===== Terminy ===== | ===== Terminy ===== | ||
| - | * **Tematy projektów należy uzgodnić nie później niż do 30.11.2025.** \\ Przekroczenie tego terminu skutkuje obniżeniem oceny o 0.5. | + | * **Tematy projektów należy uzgodnić nie później niż do 28.11.2026.** \\ Przekroczenie tego terminu skutkuje obniżeniem oceny o 0.5. |
| * O skończeniu projektu należy poinformować prowadzącego mailowo. Do tego czasu opis projektu musi być zaakceptowany przez prowadzącego i prowadzący musi mieć dostęp do kodu źródłowego. | * O skończeniu projektu należy poinformować prowadzącego mailowo. Do tego czasu opis projektu musi być zaakceptowany przez prowadzącego i prowadzący musi mieć dostęp do kodu źródłowego. | ||
| - | * **Mail z informacją o skończeniu projektu należy wysłać najpóźniej | + | * **Mail z informacją o skończeniu projektu należy wysłać najpóźniej |
| - | * **Działający projekt należy zaprezentować w laboratorium przed końcem okresu zajęć dydaktycznych semestru zimowego (tj. najpóźniej | + | * **Działający projekt należy zaprezentować w laboratorium przed końcem okresu zajęć dydaktycznych semestru zimowego (tj. najpóźniej |
| * Wysłanie maila z informacją o skończeniu projektu a zaprezentowanie projektu w laboratorium muszą dzielić przynajmniej 2 dni (na przejrzenie kodu przez prowadzącego). | * Wysłanie maila z informacją o skończeniu projektu a zaprezentowanie projektu w laboratorium muszą dzielić przynajmniej 2 dni (na przejrzenie kodu przez prowadzącego). | ||
| - | * Zaprezentowanie | + | * Na zaprezentowanie |
| * Do zaliczenia przedmiotu konieczna jest pozytywna ocena z projektu. | * Do zaliczenia przedmiotu konieczna jest pozytywna ocena z projektu. | ||
sk2/projekt.txt · Last modified: by jkonczak