Wstęp do programowania - projekt
Prowadzący: mgr inż. Krzysztof Wróbel
Zasady ogólne
-
Zespoły projektowe:
- Projekty muszą być realizowane w zespołach 2-3 osobowych.
- Każdy członek zespołu musi mieć jasno określony zakres odpowiedzialności i wkład w projekt.
-
Wybór i zatwierdzenie tematu:
- Zakres projektu musi być uzgodniony z prowadzącym nie później niż do 3. tygodnia zajęć.
- Zespół przygotowuje wstępny konspekt projektu (1-2 strony) i przedstawia go prowadzącemu do zatwierdzenia.
-
Zaliczenie przedmiotu:
- Warunkiem zaliczenia jest stworzenie działającego programu w języku C/C++ spełniającego ustalone wymagania wraz z kompletną dokumentacją.
- Kod źródłowy musi być samodzielną pracą zespołu.
Monitorowanie postępów
-
Obowiązkowe prezentacje postępów:
- Co 2 tygodnie każdy zespół prezentuje postępy w pracy nad projektem (15-20 minut).
- Każdy członek zespołu musi aktywnie uczestniczyć w prezentacji.
- W trakcie prezentacji członkowie zespołu mogą otrzymać pytania dotyczące szczegółów implementacji.
-
Śledzenie postępów:
- Opcja A: Regularne przesyłanie archiwum z kodem źródłowym i dokumentacją (ZIP) do prowadzącego po każdej prezentacji postępów.
- Opcja B: Dla chętnych - użycie systemu kontroli wersji (Git), co będzie dodatkowo punktowane.
- Niezależnie od wybranej opcji, historia zmian musi odzwierciedlać regularną pracę i wkład poszczególnych członków zespołu.
- Zespół musi prowadzić dziennik zmian, dokumentujący wprowadzane modyfikacje i postępy prac.
-
Indywidualna weryfikacja wiedzy:
- Na zakończenie projektu każdy członek zespołu przechodzi indywidualną rozmowę z prowadzącym.
- Podczas rozmowy konieczne jest wykazanie się szczegółową znajomością całego kodu (również części pisanych przez innych członków zespołu).
- Prowadzący może poprosić o wyjaśnienie dowolnego fragmentu kodu, wskazanie potencjalnych problemów lub wprowadzenie drobnych modyfikacji na miejscu.
Wymagania dotyczące kodu
-
Język programowania:
- Wszystkie projekty muszą być zrealizowane w języku C/C++.
-
Jakość kodu:
- Przejrzyste formatowanie zgodne z konwencjami języka C/C++.
- Znaczące i konsekwentne nazewnictwo zmiennych, funkcji, struktur, itp.
- Komentarze w kluczowych miejscach (nie nadużywać - kod powinien być samoopisujący się).
- Modularność i organizacja kodu, unikanie redundancji.
-
Testowanie:
- Projekt musi zawierać co najmniej podstawowe testy dla kluczowych funkcjonalności.
- Dokumentacja powinna zawierać opis przeprowadzonych testów i ich wyników.
- Należy uwzględnić obsługę sytuacji wyjątkowych i błędów użytkownika.
Wymagania dotyczące dokumentacji
-
Struktura dokumentacji:
- Strona tytułowa: nazwa projektu, autorzy, data, przedmiot
- Spis treści
-
Opis projektu:
- Cel projektu i problemy, które rozwiązuje
- Docelowi użytkownicy
- Kontekst i uzasadnienie projektu
-
Specyfikacja techniczna:
- Architektura programu (można użyć diagramów)
- Szczegółowy opis najważniejszych algorytmów i struktur danych
- Opis interfejsu użytkownika (jeśli dotyczy)
-
Dziennik prac:
- Chronologiczny opis etapów projektu
- Napotkane problemy i ich rozwiązania
- Decyzje projektowe i ich uzasadnienie
-
Instrukcja użytkownika:
- Wymagania systemowe
- Kompilacja i uruchomienie
- Szczegółowy opis funkcjonalności z ilustracjami
- Opis indywidualnego wkładu każdego członka zespołu
- Załączniki: (fragmenty kodu, screenshoty, itp.)
-
Format dokumentacji:
- Dokument PDF
- Diagramy i ilustracje powinny być czytelne i podpisane
- Bibliografia zawierająca wykorzystane źródła
Ocena projektu
-
Kryteria oceny:
- Funkcjonalność i zgodność z wymaganiami (30%)
- Jakość i organizacja kodu (25%)
- Kompletność i jakość dokumentacji (20%)
- Regularność pracy i postępy w trakcie semestru (15%)
- Indywidualny wkład i znajomość całego projektu (10%)
-
Ocena indywidualna:
- Każdy członek zespołu otrzymuje indywidualną ocenę uwzględniającą jego wkład i znajomość projektu.
- Różnice w ocenach członków tego samego zespołu są możliwe i zależą od indywidualnego zaangażowania.