Zasady wspólnej pracy
Maksymalna liczba punktów: 50
Rozkład punktów:
- Obecność: 10 punktów (2 punkty za każde zajęcia)
- Realizacja zadań/projektu: 40 punktów
Nowy Rok Akademicki 2025/2026
Zgodnie z obowiązkami określonymi przez Pana Dziekana Jerzego Choroszczaka:
Podczas zajęć ćwiczeniowych/laboratoryjnych studenci mają obowiązek uczestniczenia w nich z włączonymi kamerkami. Brak włączonej kamerki jest równoznaczny z brakiem obecności na zajęciach.
Wybór ścieżki realizacji
Na pierwszych zajęciach (Lab 01) należy wybrać jedną z dwóch ścieżek:
- Ścieżka A: Projekt zespołowy (2 osoby)
- Ścieżka B: Zadania indywidualne
Brak wyboru na Lab 01 oznacza automatyczne przypisanie do Ścieżki B.
Zmiana ścieżki jest możliwa w trakcie semestru (A - B), jednak wiąże się ze wszystkimi konsekwencjami dotyczącymi punktacji i terminów (zadania/projekt muszą być uzupełnione zgodnie z zasadami opóźnień).
Ścieżka A (Projekt zespołowy)
Punktacja
- Prezentacja postępów (5 spotkań po 5 pkt): 25 punktów
- Jakość kodu i dokumentacji: 10 punktów (finalnie)
- Finalna funkcjonalność projektu: 5 punktów (finalnie)
Ważne: Oceniane jest zaangażowanie i proces pracy, nie tylko końcowy efekt. Program nie musi działać w 100%, aby otrzymać punkty. Liczy się systematyczna praca, dokumentowanie problemów i prób ich rozwiązania.
Wymagania
- Zespoły: 2 osoby
- Podział pracy: równy, bez oceniania indywidualnego wkładu
- Minimalne wymagania:
- Projekt musi przypominać wybrany temat
- Musi posiadać dokumentację
- Należy być przygotowanym na pytania: “Dlaczego tak, a nie inaczej?”
- Środowisko: Projekt musi działać w 16-bit DOS, uruchamiany w DOSBox
- Środowisko na ostatnie zajęcia (nr 5): Dowolne środowisko z kompilatorem C++
Tematy projektów
Każdy projekt może być realizowany w trybie tekstowym lub graficznym (assembler):
- Snake - Sterowanie klawiszami, zjadanie punktów
- Pong - Dwie paletki, piłka, kolizje, przeciwnik
- Animacja sprite-ów w mode 13h - Sprite poruszający się po ekranie, kolizje ze ścianami, kilka klatek animacji (jak wygaszacz DVD)
- Kalkulator RPN - Stos, operacje
+ - * /, wejście z klawiatury, liczby zmiennoprzecinkowe - Gra Labirynt - Generowanie labiryntu i poruszanie się w nim (marker pozycji)
- Arkanoid / Breakout - Sterowanie paletką, odbijanie piłki, kasowanie klocków
- Tetris - Spadające klocki, obracanie, kasowanie linii, przyśpieszanie, punktacja
- Edytor tekstu - Wpisywanie tekstu, obsługa kursorem, zapisywanie/wczytywanie plików
- Kompresor plików - Algorytm kompresji (np. RLE), kompresja i dekompresja
- Gra w życie Conway’a - Automat komórkowy, wizualizacja, edycja stanu, animacja
- Symulator dowolnej wybranej architektury - symulator procesora i ew. peryferiów (to rozwiązanie może być realizowane w C++, Python, C# lub inny popularny język)
- Przykładowo - podzbiór instrukcji procesora 6502 i tryb tekstowy. Prosty parser do asemblera i uruchamianie testowych programów.
- Ważne aby implementacja miała instrukcje dostępu do rejestrów, pamięci, można było wykonywać pętle i pisać po ekranie.
Zasada takiego projektu - na tyle powinien być rozbudowany, aby na każdych zajęciach można było prezentować postęp pracy. Należy również uwzględnić odpowiedni zakres w przypadku grupy (2 osoby).
Prezentacja
Każda grupa przedstawia na zajęciach numer 2, 3, 4
- Pokaz działania - uruchomienie programu w DOSBox, demonstracja funkcjonalności
- Omówienie zastosowanych rozwiązań - architektura kodu, kluczowe procedury
- Napotkane problemy - trudności techniczne, błędy, sposób ich rozwiązania
- Liczy się systematyczna praca, dokumentowanie problemów i prób ich rozwiązania
- Odpowiedzi na pytania prowadzącego o ile będą
- Czas prezentacji: maksymalnie kilka minut
Forma oddawania zadań
Paczka ZIP przesłana do CloudA zawierająca:
- Kod źródłowy (.asm)
- Skompilowany program (.exe lub .com)
- Dokumentacja/sprawozdanie (PDF/MD)
- Dodatkowo mile widziany link do publicznego repozytorium jeśli tam znajduje się kod
Ścieżka B (zadania indywidualne)
Punktacja
- Blok 1 (zadania 1-5): 7 punktów (do 12.12.2025)
- Blok 2 (zadania 6-10): 8 punktów (do 02.01.2026)
- Blok 3 (zadania 11-15): 12 punktów (do 09.01.2026)
- Blok 4 (zadania 16-20): 13 punktów (do 23.01.2026)
Wymagania
- Praca indywidualna
- Środowisko: 16-bit DOS (DOSBox)
- Środowisko na ostatnie zajęcia (nr 5): Dowolne środowisko z kompilatorem C++
Omawianie rozwiązań
Na zajęciach numer 2,3,4 rozwiązania zadań wybranych osób
- Pokaz działania - uruchomienie programu w DOSBox
- Napotkane problemy - trudności techniczne, błędy, sposób ich rozwiązania
- Odpowiedzi na pytania prowadzącego o ile będą
Tematy
BLOK 1: Podstawy I/O i operacje na danych (Zadania 1-5)
- Zadanie 1: Hello World Wyświetl na ekranie swoje imię i nazwisko, zakończ program.
- Zadanie 2: Wczytaj i wyświetl znak Wczytaj wyłącznie cyfry z klawiatury i wyświetl je na ekranie. Znaki pomijaj.
- Zadanie 3: Suma dwóch liczb jednocyfrowych Wczytaj dwie cyfry (znaki ‘0’-‘9’), oblicz ich sumę i wyświetl wynik jako znak (od A do Z). - tablica kodów ASCII (ASCII – Wikipedia, wolna encyklopedia)
- Zadanie 4: Konwersja małe/wielkie litery Wczytaj znak. Jeśli to mała litera, zamień na wielką. Jeśli wielka, zamień na małą. Wyświetl wynik.
- Zadanie 5: Wyświetlanie ciągu znaków w pętli Wyświetl 10 razy znak ‘*’ w jednej linii, używając pętli z rejestrem CX.
BLOK 2: Tablice i łańcuchy (Zadania 6-10)
zostaną podane na zajęciach numer 2
BLOK 3: Procedury, arytmetyka i logika (Zadania 11-15)
zostaną podane na zajęciach numer 3
BLOK 4: Wielowątkowość (Zadania 16-20)
zostaną podane na zajęciach numer 3
Zasady wspólne
- Współpraca jest wskazana - konsultacje, wymiana pomysłów, dyskusje techniczne
- Niedozwolone: oddawanie identycznych rozwiązań
- Dozwolone: wspólne procedury pomocnicze (np. wyświetlanie, konwersje)
- Wymagane: główna logika programu musi być własna
- Na każdych zajęciach:
- prezentuję przykładowy kod,
- omawiam go,
- mamy czas na pytania
- następnie pozostawiam czas na realizację zadań z bloku, lub pracę na projektem.
Terminy
- Lab 01: Wybór ścieżki realizacji, utworzenie repozytoriów/setup środowiska
- Lab 02-04: Systematyczna praca nad projektem/zadaniami,
- postępy prac zespołów ze ścieżki A
- omówienie zadań ze ścieżki B
- Lab 05: Finalne prezentacje projektów i oddanie ostatnich zadań
- Zadania należy oddać do piątku przed zajęciami.
- Każdy tydzień opóźnienia obniża punktację o 3
Przykładowo
| w terminie | do tyg. później | do dwóch tyg. później | do trzech tyg. później |
|---|---|---|---|
| 7 | 4 | 1 | 0 |
Nieobecności
- W przypadku nieobecności należy skontaktować się z prowadzącym
- Oddanie zadań nadal obowiązuje, należy uzupełnić braki
Forma oddawania zadań
Paczka ZIP przesłana do CloudA zawierająca:
- Kod źródłowy (.asm)
- Skompilowany program (.exe lub .com)
- Dokumentacja/sprawozdanie (PDF/MD)
- Dodatkowo mile widziany link do publicznego repozytorium jeśli tam znajduje się kod
Kontakt z prowadzącym
Wszelkie pytania, sprawy organizacyjne i oddawanie prac poprzez system CloudA