Dopuszczalne, a nawet wskazane, są dyskusje z innymi na temat zadania, a nawet wspólne opracowywanie algorytmu rozwiązania - lecz ostateczną implementację, testowanie i dokumentację programu należy wykonać samodzielnie.
Wykonanie zadań wiąże się m.in. z opanowaniem programowania operacji zapisu i odczytu plików tekstowych w języku C. W razie kłopotów ze zrozumieniem stosownego rozdziału w K&R służę konsultacjami.
Z przedstawionych do wyboru zadań, należy wybrać jedno. Tytuł wybranego zadania należy przesłać do zatwierdzenia na adres email piotr.krzyzanowski@mimuw.edu.pl. Zatwierdzenie będzie się odbywać na zasadzie FIFS, otrzymacie Państwo mail zwrotny z informacją. Gdy okaże się, że wybrane zadanie już nie jest dostępne, należy dokonać ponownego wyboru z puli aktualnie dostępnych zadań. Będę pierwszy raz zamykał zadanie, gdy zgromadzi się dwoje chętnych. Potem zadania będę otwierał i zamykał według bieżącej sytuacji, dążąc do zrównoważenia liczby osób przypisanych do zadań.
Wybór zadania jest ostateczny, nie będzie można go później zmienić na inne, ani zamienić się z inną osobą - dlatego w razie wątpliwości warto wcześniej skonsultować treść zadania z prowadzącym ćwiczenia.
Po zatwierdzeniu wyboru zadania, należy sporządzić projekt programu. Projekt programu jest dla zadania tym, czym konspekt dla wypracowania z języka polskiego: to plan pracy i zarys metod wykonania jej. Projekt programu powinien zawierać:
Projekt musi zostać zatwierdzony przez prowadzącego ćwiczenia; w przeciwnym razie należy go poprawić zgodnie ze wskazówkami. Z tego powodu wskazane jest, by dążyć do możliwie wczesnego zatwierdzenia projektu: zostanie więcej czasu na opracowywanie programu!
Następnie należy przystąpić do realizacji zadania zgodnie z zatwierdzonym projektem. W trakcie pisania programu dobrze jest go dokumentować, zamieszczając w nim (dla siebie) krótkie i treściwe komentarze przy kolejnych porcjach kodu. Gdy zajdzie uzasadniona potrzeba odejścia od zatwierdzonego projektu, należy to objaśnić w aneksie do projektu. Po opracowaniu, uruchomieniu i przetestowaniu programu, należy rozbudować dokumentujące go komentarze tak, by kod źródłowy był czytelny dla sprawdzającego. Należy pamiętać, by każdy plik kodu źródłowego miał na początku krótki komentarz dotyczący: streszczenia zawartości pliku, jego autora i daty ostatniej modyfikacji.
Konstruowany program powinien mieć budowę modułową, tzn. składać się z kilku dobrze przemyślanych funkcji, realizujących logicznie wyodrębione części algorytmu rozwiązania zadania.
Ocenie będzie podlegać program wraz z dokumentacją, na którą składają się co najmniej trzy pliki:
W/w składniki rozwiązania należy przesłać (w jednym mailu, jako załączniki) do dnia 14.01.09. na adres piotr.krzyzanowski@mimuw.edu.pl. Każdy rozpoczęty dzień opóźnienia obniża ocenę o 5 punktów.
Oceniane będą: wartość merytoryczna, artystyczna i estetyczna przedstawionego rozwiązania. Maksymalnie można uzyskać 10 punktów. Program, który nie daje się uruchomić, będzie oceniony na 0 punktów. Elementem oceny może być także rozmowa na temat programu i jego uruchomienie "na żywo".
e2-e4 e7-e5 Sg1-f3 d7-d6 Sf3xe5 d6xe5 ...itd.Program powinien na podstawie tego pliku wygenerować planszę przedstawiającą sytuację na szachownicy po wykonaniu ostatniego ruchu zapisanego w partii. Dodatkowo, w przypadku podania ruchu niezgodnego z regułami gry lub niezgodnego z sytuacją na szachownicy, powinien kończyć pracę drukując bieżący stan planszy i opis błędu. Ponadto, program powinien sygnalizować wygraną któregoś z graczy, o ile nastąpiła w trakcie partii.