Programowanie funkcyjne/Tematy programów zaliczeniowych: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Kubica (dyskusja | edycje)
Nie podano opisu zmian
Kubica (dyskusja | edycje)
Nie podano opisu zmian
 
Linia 1: Linia 1:
Oto przykładowe tematy programow zaliczeniowych z ubiegłych lat:
Oto przykładowe tematy programow zaliczeniowych z ubiegłych lat:
* Wybrana(e) gry:
* Wybrana(e) gry i łamigłówki:
** kółko i krzyżyk,  
** kółko i krzyżyk,  
** kółko i krzyżyk 3D,  
** kółko i krzyżyk 3D,  
Linia 15: Linia 15:
** domino,
** domino,
** kości,  
** kości,  
** skrulkik = scrabble + kulki,  
** ScraMLe -- gra typu scrabble,
** skrulki = scrabble + kulki,
** Bullint (strzelanie),
** turowa gra militarna,  
** gra typu WarCraft.
** gra typu WarCraft.
: Algorytmy wykorzystywane do tworzenia strategii w grach:
: Algorytmy wykorzystywane do tworzenia strategii w grach:
Linia 24: Linia 27:
:* algorytmy genetyczne (do wyznaczenia funkcji oceniających),
:* algorytmy genetyczne (do wyznaczenia funkcji oceniających),
:* metoda GLEM (szt. int.).  
:* metoda GLEM (szt. int.).  
* Łamigłówki i algorytmy je rozwiązujące:
** Sudoku,
** obrazki logiczne.
* Grafika:
* Grafika:
** Fraktale:
** Fraktale:
Linia 48: Linia 54:
*** zmiennymi, przypisaniami, definicjami funkcji i wykresami,
*** zmiennymi, przypisaniami, definicjami funkcji i wykresami,
*** zmiennymi, przypisaniami, definicjami funkcji i symbolicznym obliczaniem pochodnych.  
*** zmiennymi, przypisaniami, definicjami funkcji i symbolicznym obliczaniem pochodnych.  
* Symulacje:
** symulacja życia bakterii.
* Struktury danych (z zastosowaniem funktorów):
* Struktury danych (z zastosowaniem funktorów):
** Wielowymiarowe drzewa przedziałowe,
** Wielowymiarowe drzewa przedziałowe,
Linia 58: Linia 66:
* Implementacja algorytmów genetycznych i ich zastosowania:
* Implementacja algorytmów genetycznych i ich zastosowania:
** funkcje oceniające w grach (--> Gry),  
** funkcje oceniające w grach (--> Gry),  
** znajdowanie zer funkcji.  
** znajdowanie ekstremów funkcji.  
* System dowodzenia twierdzeń.  
* System dowodzenia twierdzeń.  
* Generator parserów z wizualizacją.
* Generator parserów z wizualizacją.
* Generator parserów uproszczonego XML'a w OCaml'u.
* Generator parserów uproszczonego XML'a w OCaml'u.
* Wykrywanie niesamodzielnie napisanych programów.
* Wykrywanie niesamodzielnie napisanych programów.
* Przetwarzanie strumieni danych: kompresja, szyfrowanie.
* Wyszukiwanie podobieństw między plikami MP3.  
* Wyszukiwanie podobieństw między plikami MP3.  
* Mikro-Enigma --- implementacja uproszczonej wersji Enigmy.
* Mikro-Enigma --- implementacja uproszczonej wersji Enigmy.
* Szyfrowanie za pomocą RSA.
* Wycena opcji w modelu dwumianowym.

Aktualna wersja na dzień 12:08, 16 sty 2007

Oto przykładowe tematy programow zaliczeniowych z ubiegłych lat:

  • Wybrana(e) gry i łamigłówki:
    • kółko i krzyżyk,
    • kółko i krzyżyk 3D,
    • gomoku,
    • szachy (końcówki),
    • szachy,
    • chińskie szachy Xiang Qi,
    • reversi,
    • hex,
    • liero,
    • Pylos,
    • uproszczony backgammon,
    • bilard,
    • domino,
    • kości,
    • ScraMLe -- gra typu scrabble,
    • skrulki = scrabble + kulki,
    • Bullint (strzelanie),
    • turowa gra militarna,
    • gra typu WarCraft.
Algorytmy wykorzystywane do tworzenia strategii w grach:
  • mini-max,
  • α-β obcięcie,
  • drzewa and-or,
  • różnorakie funkcje oceniające,
  • algorytmy genetyczne (do wyznaczenia funkcji oceniających),
  • metoda GLEM (szt. int.).
  • Łamigłówki i algorytmy je rozwiązujące:
    • Sudoku,
    • obrazki logiczne.
  • Grafika:
    • Fraktale:
      • iterowane przekształcenia liczb zespolonych (np. żółw Mandelbrota, zbiory Juli),
      • opisywane przekształceniami afinicznymi,
      • L-systemy,
      • fraktale Newtona.
    • Funkcyjnie reprezentowane obrazki i operacje na nich.
    • Animowane obrazki funkcyjne (--> Interpretery).
    • Ray-tracing.
    • Wizualizacja i układanie kostki Rubika.
    • Wyznaczanie możliwych ścian kryształów i ich wizualizacja.
    • Wykresy 3D funkcji 𝟐.
    • Interfejs 3D dla szachów (--> Gry).
  • Interpreter/semantyka języka programowania:
    • Logo (uproszczone),
    • imperatywnego języka programowania z mikrowątkami (semantyka kontynuacyjna),
    • imperatywnego języka do obliczeń numerycznych,
    • jezyka Tiny,
    • język opisujący animowane obrazki funkcyjne,
    • zintegrowany język zapytań,
    • optymalizacja zapytań bazodanowych,
    • kalkulator ze:
      • zmiennymi, przypisaniami, definicjami funkcji i wykresami,
      • zmiennymi, przypisaniami, definicjami funkcji i symbolicznym obliczaniem pochodnych.
  • Symulacje:
    • symulacja życia bakterii.
  • Struktury danych (z zastosowaniem funktorów):
    • Wielowymiarowe drzewa przedziałowe,
    • Przeszukiwanie pełnotekstowe w oparciu o B-drzewa,
    • Implementacja i wizualizacja drzew BST.
    • Algorytm Dijkstry i kopiec dwumianowy.
    • Tester struktur danych.
  • Implementacja sieci neuronowej i jej zastosowania:
    • rozpoznawanie cyfr pisanych odręcznie (OCR).
  • Implementacja algorytmów genetycznych i ich zastosowania:
    • funkcje oceniające w grach (--> Gry),
    • znajdowanie ekstremów funkcji.
  • System dowodzenia twierdzeń.
  • Generator parserów z wizualizacją.
  • Generator parserów uproszczonego XML'a w OCaml'u.
  • Wykrywanie niesamodzielnie napisanych programów.
  • Przetwarzanie strumieni danych: kompresja, szyfrowanie.
  • Wyszukiwanie podobieństw między plikami MP3.
  • Mikro-Enigma --- implementacja uproszczonej wersji Enigmy.
  • Szyfrowanie za pomocą RSA.
  • Wycena opcji w modelu dwumianowym.