Programowanie w logice

Zadania kwalifikacyjne są tutaj.

Opis

Komputer to taka maszyna, która ciężko się uczy. Zwykle potrzebny jest programista, który podpowie komputerowi jak sobie radzić w życiu, a nawet musi pokazać jak sobie radzić w każdej sytuacji. Na warsztatach pokażemy, jak zrzucić trochę myślenia z programisty na komputer i sprawimy, że będzie sam musiał trochę pomyśleć, aby rozwiązać pewne problemy. Dokonamy tego ucząć się pewnej bardzo miłej i przyjemnej odmiany programowania, jaką jest programowanie logiczne.

Zakres materiału obejmowałby zaznajomienie się z najpopularniejszym językiem programowania logicznego - Prologiem i wykorzystywaniem go w rozwiązywaniu prostych zadań, a szczególnie łamigłówek (dobrym przykładem może tu być np. sławna łamigłówka Einsteina o ludziach wielu narodowości, domach, zwierzętach, papierosach itd., albo zwykłe sudoku).

Główną częścią byłoby oczywiście kodzenie w tym języku, poprzedzone krótkimi wykładami o samych regułach i operacjach w tym języku.

Program

Program (może uleć zmianie w zależności od poziomu :)):

  1.     zaznajomienie się z Prologiem, "hello world" czyli drzewo genealogiczne
  2.     listy i predykaty na nich
  3.     proste programy - permutacje, silnie
  4.     sortowanie - quick sort i merge sort
  5.     rozwiązywanie prostych łamigłówek w Prologu

Wymagania

  1. Minimalnie: znajomość logiki.
  2. Dużo pomoże znajomość jakiegoś języka programowania (rekurencja, listy, itd.).
  3. Ogarnięcie. Lubię ogarniętych ludzi.

Przydatne rzeczy

Komputer z zainstalowanym na nim dowolnym kompilatorem Prologa. Ja polecam SWI-Prolog (jest wersja na linuxa i windowsa).

Dla Debiana wystarczy wpisać (jako root):

apt-get install swi-prolog swi-prolog-doc