Lab ARKO Zima 2008/09
Zadania projektowe
Szanowni Państwo, poniżej znajduje się odnośnik do tematów projektowych ARKO. Niniejsza strona stanowi formalizację
moich oczekiwań i wskazówek dla Państwa, które mogą być pomocne przy realizacji.
Dodane 10/01/09
Szanowni Państwo,
w związku z faktem, iż moja obecność na ostatnich laboratoriach dla obu grup (t.j. 20 i 27 stycznia) nie będzie możliwa
proponuję Państwu co następuje:
- Projekty można jeszcze osobiście oddać na najbliższym laboratorium, tj. 13 stycznia.
- Po tym terminie proszę przesyłać projekty mailem na mój adres (proszę o zamieszczenie w mailu choć kilku zdań "instrukcji obsługi")
- otrzymanie przeze mnie maila z projektem do godz. 16-tej w dniu laboratorium dla Państwa grupy jest
równoważne oddaniu projektu na czas.
- Jako informację zwrotną dostaniecie Państwo moją propozycję oceny.
- W przypadku, gdy nie zgadzacie się Państwo z moją propozycją proszę o kontakt.
- Jeśli wyrazicie Państwo taką chęć, postaram się dodatkowo zorganizować konsultacje (po godz. 17-tej) na Wydziale.
Za wynikłe komplikacje przepraszam.
Podkreślam, iż najbliższe laboratoria, tj. dnia 13.01.09, ODBĘDĄ SIĘ BEZ ŻADNYCH ZMIAN.
Zachęcam do oddawania projektów. Proszę mieć na uwadze, iż koniec bieżącego semestru przypada w dniu 28 stycznia (środa).
Celem zmniejszenia nakładu Państwa pracy podjąłem decyzję, że realizowany przez Państwa temat projektu dla SPIM
automatycznie stanie się Państwa zadaniem w NASM. Tym sposobem algorytm musicie Państwo opracować tylko raz,
projekt dla NASM to jedynie port na inny procesor.
Proszę o tym pamiętać podczas wyboru tematu. Szczegóły odnośnie realizacji w NASM (w szczególnośći rozdział na część ASM i C) pojawią się na tej stronie
nieco później.
Strona z zadaniami dla grupy A (tydz. nieparzysty)
Strona z zadaniami dla grupy B (tydz. parzysty)
Ustalenia ogólne:
-
Tematy zakładają dowolność w zakresie zaimlementowanych w rozwiązaniu algorytmów - dobór algorytmu jest częścią zadania.
-
Proszę mieć na uwadze wydajność i optymalność kodu.
-
Program przyjmuje dane wejściowe z klawiatury (ew. z pliku) a wynik jest drukowany na ekranie (ew. zapisywany w pliku).
-
W przypadku niepoprawnych danych wejściowych należy wyświetlić stosowny komunikat o błędzie.
-
Przed przyjęciem jakichkolwiek dodatkowych ograniczeń lub założeń (poza zdroworozsądkowymi) proszę skonsultować się mailowo z prowadzącym.
Zapisy:
-
Zestaw tematów dla obu prowadzonych przeze mnie grup jest identyczny.
-
Projekty są jednoosobowe - każdy realizuje temat samodzielnie.
-
Jeden temat może zostać przydzielony jednej osobie w ramach każdej z grup chyba, że w treści tematu zaznaczono inaczej - wówczas każda z osób realizuje temat oddzielnie.
-
Zapisy prowadzone są za pośrednictwem poczty elektronicznej.
-
Z braku lepszego/prostszego rozwiązania zapisy przeprowadzone będą na zasadzie pierwszeństwa w każdej z grup niezależnie - w przypadku dwóch lub więcej osób w ramach tej samej grupy chętnych do realizacji tego samego tematu będzie on przydzielony pierwszej osobie od której otrzymam stosowny email. W związku z tym proszę o przesłanie w mailu listy preferowanych tematów (patrz następny pkt.).
-
Aby zapisać się na projekt należy wysłać email na adres K.Pisaniec(_maupa_)elka.pw.edu.pl w następującym formacie:
- temat "[ARKO] Projekt zapisy"
- imię, nazwisko oraz numer indeksu
- trzy tematy w kolejności od najbardziej preferowanego.
Z braku czasu stosuję parsowanie ręczne, więc proszę się specjalnie nie przejmować formatowaniem tych danych :)
-
Aby wszyscy mieli równe szanse (tj. mogli się zorientować, że tematy już są) zapisy dla grupy B (tydz. parzysty) wystartują od poniedziałku 24.11 a dla grupy A (tydz. nieparzysty)
od środy 26.11 co będzie ogłoszone na najbliższym laboratorium. Wszelkie emaile z preferencjami z wcześniejszą datą nie będą przeze mnie brane pod uwagę.
-
Wyniki zapisów będą umieszczone i "w miarę" na bieżąco uaktualniane na stronie z tematami i będzie to jedyna forma potwierdzenia zapisania się na dany temat.
-
Przydział tematu według opisanego algorytmu jest ostateczny.
-
Aby uniknąć niedomówień proszę wysyłać w/w email w swoim własnym imieniu.
Kryteria oceniania:
-
Produktem wyjściowym z projektu jest program, jego dokumentacją są komentarze w kodzie.
-
Program przede wszystkim ma działać - teoretyczne koncepty nie mogą być ocenione.
-
Program ma działać poprawnie - czyli robić to, czego się od niego oczekuje i robić to dobrze.
-
Obrona projektu wygląda następująco:
-
Krótka prezentacja działania aplikacji - może być na Państwa prywatnym sprzęcie.
-
Krótkie przestawienie "jak to jest zrobione" - zastosowany algorytm, ciekawe fragmenty w implementacji, ew. napotkane problemy i jak autor sobie z nimi poradził
-
Kryteria niezbędne do pozytywnej oceny projektu są następujące:
-
Program działa
-
Program działa poprawnie (szczególnie dla warunków brzegowych) - tutaj także wydajność
-
Autor rozumie co się dzieje w programie i co jest czym w kodzie - pozwala to zweryfikować samodzielność pracy.
-
Nieterminowe oddawanie projektów skutkuje utratą punktów: -1 pkt za każdy rozpoczęty dwutygodniowy kwant opóźnienia. Terminy poszczególnych projektów można znaleźć w gablotce ARKO.
-
FAQ:
-
Tak, wydajność przedstawionego rozwiązania będzie mieć wpływ na ocenę (patrz wyżej).
-
Tak, istnieje możliwość oddania projektów przed terminem - ale jedynie w terminie laboratorium (ze względu na moją dostępność, czyli jej brak).
-
Nie, nie ma możliwości uzyskania dodatkowych punktów za wcześniejsze oddanie projektu.
-
Nie, nie ma możliwości oddawania projektów mailem (bo nie można w ten sposób przeprowadzić obrony).
-
Tak, istnieje możliwość wyboru innego tematu dla IA-32 niż dla MIPS (jeśli np. ten okazał się wyjątkowo trudny) ale WYŁĄCZNIE po terminie oddania projektu MIPS i WYŁĄCZNIE na temat z puli wolnych tematów. Obowiązuje wówczas ten sam algorytm zapisów co na projekt SPIM.
-
Nie, nie trzeba przychodzić na laboratoria poświęcone konsultacjom (patrz rozkład zajęć w gablotce ARKO).
-
Prace niesamodzielne będą dyskwalifikowane. Zaznaczam, że niesamodzielność a przypadkowe podobieństwo dwóch rozwiązań to dwie różne rzeczy i wystarczy jedno - dwa pytania aby przekonać się, która z tych dwóch sytuacji zachodzi.
Końcowe uwagi dla Państwa:
-
Z doświadczenia wiem, że napisanie "chodzącego" programu w ASM zajmuje plus-minus 200% czasu,
który się początkowo przyjmuje.
Warto o tym pamiętać szczególnie przy projektach dla IA-32!
Mając to na uwadze warto zabrać się wcześniej do pracy.
-
Co optymalizować? M.in. liczbę zmiennych (ale nie liczbę parametrów!), liczbę iteracji pętli, liczbę przesłań danych (odwołań do pamięci), liczbę procedur - czyli
generalnie czas wykonania i długość kodu.
W razie pytań proszę o kontakt na adres K.Pisaniec(_maupa_)elka.pw.edu.pl (proszę o umieszczenie
znacznika "[ARKO]" w temacie).
Życzę powodzenia!
Krzysztof Pisaniec