Nauka algorytmów z pomocąAR

O projekcie

Poznaj algorytmy w nowym wymiarze

Nasza aplikacja mobilna przenosi naukę algorytmów i struktur danych na wyższy poziom dzięki rozszerzonej rzeczywistości (AR) oraz animacjom 3D. Zamiast wczytywać się w niezrozumiałe opisy i próbować wyobrazić sobie działanie algorytmów, możesz zobaczyć, jak działają one w przestrzeni.

Czy kiedykolwiek zastanawiałeś się, jak naprawdę przebiega sortowanie szybkie, jak działa BFS na grafie lub co dzieje się w stosie podczas operacji push i pop? Teraz możesz to zobaczyć w trójwymiarowej animacji!

Funkcje aplikacji

Animacje 3D w AR

Zobacz działanie popularnych algorytmów w rzeczywistości rozszerzonej. Trójwymiarowe wizualizacje sprawią, że nawet najbardziej złożone algorytmy staną się zrozumiałe i przystępne.

Kontrola nad przebiegiem animacji

  • Pauzowanie i wznawianie animacji
  • Zmiana prędkości animacji
  • Interaktywne operacje na strukturach danych (np. dodawanie i usuwanie elementów w czasie rzeczywistym)

Duży wybór różnych algorytmów i struktur danych

  • Sortowania: bąbelkowe, szybkie, przez wstawianie, kubełkowe, przez scalanie, przez wybieranie
  • Struktury danych: stos, kolejka, lista
  • Algorytmy grafowe: BFS, DFS, algorytm Dijkstry

Opisy i listy kroków

Algorytmy zawierają opisy działania i listy kroków, dzięki czemu użytkownik może nie tylko obserwować animację, ale również zrozumieć, co dokładnie dzieje się na każdym jej etapie.

mobile app interface mockup mobile app interface mockup

Zespół

smiling beige cat with closed eyes

dr Marta Burzańska

Opiekun zespołu

smiling ginger cat with red bandana on its head

Kamil Orczyk

AR Developer

Code Reviewer

small brown sleepy cat

Wiktoria Ziętak

Lider zespołu

Web Developer

UI/UX Designer

white cat with a black patch over its right eye

Aleksander Wierzchowski

AR Developer

Technical Writer

smiling animated tiger

Adrian Augustyniak

AR Developer

smiling ginger cat

Kacper Pogodziński

AR Developer

Code Reviewer

smiling white cat with heterochromia

Mateusz Przystawski

AR Developer

Harmonogram

Październik

Uformowanie zespołu i wybór opiekuna

Progres:

100%

Listopad

Wybór tematu projektu i technologii

Progres:

100%

Grudzień - Styczeń

Nauka technologii niezbędnych do stworzenia projektu

Progres:

100%

Luty

Konfiguracja wspólnego repozytorium, rozpoczęcie wspólnej pracy nad projektem

Progres:

100%

Marzec - Kwiecień

Tworzenie animacji algorytmów i UI aplikacji, testowanie aplikacji i wprowadzanie poprawek

Progres:

100%

Maj

Testowanie aplikacji i poprawki błędów
Prezentacja projektu

Progres:

100%

Spotkania

29/05/2025 22/05/2025 Ćwiczenie prezentacji projektu.
15/05/2025 Omówienie wprowadzonych poprawek błędów w merge sort i strukturach oraz ukończonej dokumentacji projektu. Praca nad prezentacją.
08/05/2025 Podział zadań w związku z prezentacją projektu. Ustalenie co będzie prezentowane i w jaki sposób. Omówienie ostatnich poprawek w aplikacji: poprawa fizyki kostek, poprawki w merge sort, poprawki błędów przy zmianie orientacji ekranu, poprawa responsywności animacji w monitach. Progres w pracy nad dokumentacją użytkownika.
30/04/2025 Omówienie wdrożonego skalowania i przesuwania obiektów oraz rozwiązanych problemów w związku z tym. Poprawiona implementacja orientacji poziomej oraz stawiania obiektów w powietrzu. Ostateczne poprawki w animacjach sortowań, implementacja wskazówek dla użytkownika. Ustalenie dalszych działań - testowanie, finalizacja zadań i przygotowania do prezentacji.
24/04/2025 Omówienie postępów w pracach zespołu, w tym poprawek w algorytmach sortowania i algorytmie Dijkstry oraz założeń dotyczących innej wersji trybu stawiania obiektów w przestrzeni. Ustalenia dot. skalowania animacji i wprowadzenia ograniczeń, podjęcie decyzji dotyczących działania monitów w scenie AR. Implementacja powiększania algorytmów oraz kotwic, poprawki błędów przy zmianie prędkości algorytmów, dodanie opisów algorytmów, implementacja zmiany orientacji UI.
17/04/2025 Omówienie wprowadzonych poprawek w algorytmach (kubełkowe, insertion sort, quick sort, selection sort, bąbelkowe), prezentacja działającej animacji algorytmu Dijkstry (wraz z dropdownem) oraz opcji zmiany prędkości animacji. Aktualizacje na stronie www (sekcja 'O projekcie'), przygotowanie wersji Canvas dla orientacji poziomej, dodanie blokowania raycastów przez elementy UI, dodanie list kroków do aplikacji.
10/04/2025 Update ws. postępów w implementacji sugestii i wprowadzaniu poprawek w algorytmach, omówienie zaimplementowanego algorytmu Dijkstry. Ustalenia dot. ogólnego UI i UI dla algorytmu Dijkstry.
03/04/2025 Omówienie zauważonych błędów i sugestii dot. działania animacji algorytmów. Omówienie wykonanych zadań: poprawki w sortowaniu kubełkowym, zaimplementowane przełączanie pomiędzy opisami/krokami algorytmów, zmiana ikon na przyciskach struktur na tekst z nazwą funkcji, podniesienie pozycji sortowań i grafów. Podjęcie decyzji o kolejnych funkcjonalnościach do zaimplementowania.
27/03/2025 Omówienie postępów w pracy: dodanie większej ilości grafów i ich losowania, poprawki błędów w sortowaniach (quick sort, insertion sort), dodanie opcji wyświetlania algorytmu przed użytkownikiem (bez wykrywania powierzchni), dodanie opcji wł./wył. kolorowania wykrytych powierzchni, postępy w pracy nad dokumentacją.
20/03/2025 Prezentacja i omówienie działających sortowań: quick sort, sortowania przez wstawianie i kubełkowego. Prezentacja działania zaimplementowanych algorytmów przeszukiwania grafów DFS i BFS oraz nowego interfejsu graficznego aplikacji. Omówienie problemów związanych z algorytmami sortowania. Ustalenie kolejnych kroków w realizacji projektu.
06/03/2025 Omówienie problemów z algorytmami sortowania i postępów w ich implementacji oraz wykonanych zadań: sterowanie iteratorem na dotyk, opcja pauzowania algorytmów, gotowy merge sort. Aktualizacja zasad pracy na wspólnym repozytorium. Omówienie kwestii wyglądu UI, implementacji orientacji poziomej oraz dodatkowych opcji ułatwiających korzystanie z aplikacji. Rozpoczęcie pracy nad algorytmami grafowymi.
27/02/2025 Omówienie zaimplementowanych algorytmów sortowania (sortowanie bąbelkowe, przez scalanie, przez wybór) i struktur (lista, stos, kolejka). Ustalenie kolejnych zadań. Wybór osób odpowiedzialnych za akceptowanie merge requestów.
19/02/2025 Omówienie wyników pracy przy tworzeniu testowych implementacji UI. Skonfigurowanie repozytorium projektu i ustalenie zasad wspólnej pracy. Podział algorytmów do implementacji pomiędzy członków zespołu.
06/02/2025 Ustalenie wstępnego harmonogramu prac.
16/01/2025 Omówienie postępów w implementacji próbnych animacji algorytmów w aplikacji mobilnej z użyciem AR.
09/01/2025 Prezentacja zaimplementowanych wizualizacji sortowania 3D, ustalenie indywidualnego podejścia do algorytmów.
19/12/2024 Ustalenie wspólnej wizji projektu. Omówienie funkcjonalności aplikacji.
12/12/2024 Omówienie wykonanych zadań: zaprezentowanie szablonu strony internetowej projektu, zarysu dokumentacji, wstępnych animacji i opisów algorytmów. Wybór technologii.
04/12/2024 Zatwierdzenie tematu projektu przez opiekuna zespołu. Rozdzielenie zadań dot. dokumentacji, tworzenia strony internetowej i wstępnego pomysłu na aplikację.
28/11/2024 Omówienie wyników przeprowadzonego researchu. Podjęcie decyzji co do tematu projektu.
21/11/2024 Omówienie pomysłów na projekt i wybranie dwóch propozycji do researchu.

Pliki

Dokumentacja projektu

Dokumentacja użytkownika

Raporty członków zespołu

Aplikacja mobilna