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):

  1. Snake - Sterowanie klawiszami, zjadanie punktów
  2. Pong - Dwie paletki, piłka, kolizje, przeciwnik
  3. Animacja sprite-ów w mode 13h - Sprite poruszający się po ekranie, kolizje ze ścianami, kilka klatek animacji (jak wygaszacz DVD)
  4. Kalkulator RPN - Stos, operacje + - * /, wejście z klawiatury, liczby zmiennoprzecinkowe
  5. Gra Labirynt - Generowanie labiryntu i poruszanie się w nim (marker pozycji)
  6. Arkanoid / Breakout - Sterowanie paletką, odbijanie piłki, kasowanie klocków
  7. Tetris - Spadające klocki, obracanie, kasowanie linii, przyśpieszanie, punktacja
  8. Edytor tekstu - Wpisywanie tekstu, obsługa kursorem, zapisywanie/wczytywanie plików
  9. Kompresor plików - Algorytm kompresji (np. RLE), kompresja i dekompresja
  10. Gra w życie Conway’a - Automat komórkowy, wizualizacja, edycja stanu, animacja
  11. 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)
    1. Przykładowo - podzbiór instrukcji procesora 6502 i tryb tekstowy. Prosty parser do asemblera i uruchamianie testowych programów.
    2. 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 terminiedo tyg. późniejdo dwóch tyg. późniejdo trzech tyg. później
7410

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