Propozycje tematów na program zaliczeniowy

Układanka

Dany jest pewien wzorzec składający się z przylegających do siebie kwadratów o jednakowych rozmiarach, oraz pewien zestaw klocków (również składających się z kwadratów). Należy stworzyć program, który znajduje pokrycia wzorca (jedno lub wszystkie) przy pomocy nienachodzących na siebie klocków. Możliwe warianty: rozpatrywać siatki trójkątne lub sześciokątne. Więcej szczegółów: np. http://en.wikipedia.org/wiki/Pentomino.

Dylemat więźnia

Pewna ilość graczy (n) w każdej rundzie gra w dylemat więźnia, każdy z każdym pewną ilość rund (l). Po każdej rundzie kilku graczy (k), którzy uzyskali najgorsze wyniki umiera, a ich miejsce zajmuje potomstwo k najlepszych graczy. Każdy z graczy stosuje ustaloną stategię - dokonuje wyboru z prawdopodobieństwem określonym tylko i wyłącznie na podstawie ostatnich r ruchów przeciwnika. Potomek zwycięskiego gracza otrzymuje nieznacznie zaburzoną strategię rodzica. Należy napisać program, który wykonuje symulacje i umożliwia dokonanie ich analizy (tj. stwierdzenie, jakie strategie odniosły sukces).

Korelacje

Należy stworzyć program, który wyszukuje korelacje pomiędzy zmianami kursów akcji w poszczególnych dniach. Przetestować program i wyciągnąć wnioski przy użyciu rzeczywistych danych. Możliwe warianty: przetestować w podobny sposób inne dane, np. meteorologiczne.

Kompresja tekstów

Zaimplementować program wykonujący kompresję i dekompresję tekstów metodą Huffmana (zob. http://en.wikipedia.org/wiki/Huffman_coding). Opracować optymalne kody do kodowania tekstów w różnych językach. Sprawdzić, czy zapisywanie niektórych często występujących słów jako pojedynczych symboli zwiększa efektywność kodowania.

LOGO

Napisać prosty interpretator komend obsługujących ruch żółwia w języku LOGO. Interpratator powinien obsługiwać co najmniej komendy FD, LT, RT, PD, PU i REPEAT oraz umożliwiać zmianę koloru pióra. W bardziej ambitnej wersji mile widziana możliwość wywoływania funkcji w pewnym zakresie. Oczywiście program powinien używać interfejsu graficznego. Więcej informacji o LOGO: http://en.wikipedia.org/wiki/Logo_(programming_language)