Notes and additional points to gain.

This commit is contained in:
Paweł Dyda 2022-10-03 20:48:41 +02:00
parent daf780bd6e
commit 5584d7280d

View File

@ -1,6 +1,6 @@
# Zajęcia laboratoryjne z programowania grupa nr 11 studia zaoczne 2022/2023 # Zajęcia laboratoryjne z programowania grupa nr 11 studia zaoczne 2022/2023
# Cele przedmiotu ## Cele przedmiotu
Celem przedmiotu jest zapoznanie studentów z procesem pracy nad złożonym serwisem internetowym Celem przedmiotu jest zapoznanie studentów z procesem pracy nad złożonym serwisem internetowym
z uwzględnieniem różnych jego aspektów (przetwarzanie danych, współpraca z bazą danych, z uwzględnieniem różnych jego aspektów (przetwarzanie danych, współpraca z bazą danych,
@ -8,17 +8,17 @@ komunikacja sieciowa, wymiana informacji pomiędzy różnymi elementami systemu
interfejs użytkownika). W ramach przedmiotu studenci wykonują samodzielnie różne podmoduły projektu, interfejs użytkownika). W ramach przedmiotu studenci wykonują samodzielnie różne podmoduły projektu,
które ostatecznie integrują w jeden złożony serwis. które ostatecznie integrują w jeden złożony serwis.
Student otrzymuje dowolność w wyborze technologii, z której będzie korzystał w celu wykonania Student otrzymuje *dowolność w wyborze technologii*, z której będzie korzystał w celu wykonania
projektu, ale ma także możliwość wyboru ścieżki wyznaczonej przez prowadzącego. Przedmiot oceniany projektu, ale ma także możliwość wyboru ścieżki wyznaczonej przez prowadzącego. Przedmiot oceniany
jest na podstawie indywidualnych obron projektów. jest na podstawie indywidualnych obron projektów.
# Wymagania wstępne w zakresie wiedzy, umiejętności oraz kompetencji społecznych ## Wymagania wstępne w zakresie wiedzy, umiejętności oraz kompetencji społecznych
Wymagania: Znajomość zasad programowania obiektowego, wiedza z zakresu: Technologii Internetowych, Wymagania: Znajomość zasad programowania obiektowego, wiedza z zakresu: Technologii Internetowych,
Systemów Operacyjnych, Baz Danych. Umiejętność pracy z materiałami dodatkowymi, samodzielnego Systemów Operacyjnych, Baz Danych. Umiejętność pracy z materiałami dodatkowymi, samodzielnego
pozyskiwania informacji i analizy przykładów. pozyskiwania informacji i analizy przykładów.
# Zagadnienia poruszane na laboratorium ## Zagadnienia poruszane na laboratorium
1. Przygotowanie środowiska programistycznego: 1. Przygotowanie środowiska programistycznego:
- utworzenie repozytorium, - utworzenie repozytorium,
@ -81,16 +81,58 @@ oraz budowy artefaktów programistycznych za pomocą jednego polecenia),
- monitorowanie osadzonej aplikacji, - monitorowanie osadzonej aplikacji,
- debuggowanie aplikacji (patrz zdalne debuggowanie). - debuggowanie aplikacji (patrz zdalne debuggowanie).
8. Interfejs użytkownika: 8. Interfejs użytkownika i logika biznesowa:
- serwowanie plików statycznych, - serwowanie plików statycznych,
- obsługa odwołań i przekierowań, - obsługa odwołań i przekierowań,
- integracja z zewnętrznym frameworkiem. - integracja z zewnętrznym frameworkiem,
- warstwa logiki biznesowej.
9. Integracja usług sieciowych: 9. Integracja usług sieciowych:
- zabezpieczanie usług OAuth, - zabezpieczanie usług OAuth,
- autoryzacja i korzystanie z zewnętrznych usług. - autoryzacja i korzystanie z zewnętrznych usług.
# Kryteria zaliczenia ## Kryteria zaliczenia
Zaliczenie zajęć polega na (inkrementalnym!) przygotowaniu projektu, który Zaliczenie zajęć polega na (inkrementalnym!) przygotowaniu projektu, który
pokrywa zagadnienia poruszane na zajęciach. pokrywa zagadnienia poruszane na zajęciach:
- Zagadnienia 1-3 20% oceny (20 punktów do zdobycia),
- Zagadnienia 4-6 40% oceny (40 punktów do zdobycia),
- Zagadnienia 7-9 40% oceny (40 punktów do zdobycia).
### Dodatkowe punkty
Dodatkowe punkty można zyskać za:
- aktywność na zajęciach,
- prawidłową dekompozycję kodu:
- segregacja interfejsów;
- kohezja na poziomie klasy i metody;
- konsekwentną i logiczną organizację kodu w pakiety (np. zastosowanie Domain Driven Design),
- czystość kodu (ang. Clean Code):
- odpowiednie (ang. meaningful), anglojęzyczne nazwy zmiennych, metod, klas i pakietów;
- posortowanie atrybutów i metod według kolejności użycia lub wywołania;
- minimalizację liczby parametrów wywołania metod (lub funkcji);
- powstrzymanie się od korzystania z efektów ubocznych, niemutowalność;
- upewnienie się że metoda i klasa robi jedną rzecz (patrz kohezja);
- odpowiednią liczbę metod publicznych w klasie (do siedmiu);
- właściwą liczbę linii kodu w metodzie (5 +/- 2, przy czym strumienie należy liczyć jako jedną linię),
- stosowanie zasad:
- SOLID;
- YAGNI/KISS;
- DRY,
- zastosowanie wzorców projektowych nieujętych w zagadnieniach (Uwaga! Tam gdzie to ma sens),
- zastosowanie metodologii Test Driven Development, szczególnie w odmianie Behavior-Driven Development,
- zastosowanie paradygmatu funkcyjnego wszędzie gdzie się da.
### Oceny
| Punkty | Ocena |
|:------:|:-----:|
| do 50 | niedostateczny (2.0 |
| 51 do 60 | dostateczny (3.0) |
| 61 do 70 | dostateczny plus (3.5) |
| 71 do 80 | dobry (4.0) |
| 81 do 90 | dobry plus (4.5) |
| powyżej 90 | bardzo dobry (5.0) |