Programowanie funkcyjne w OCamlu 1000-2M24PFO
OCaml, skrót od Objective CAML to funkcyjny język z elementami programowania obiektowego i imperatywnego. Podczas zajęć omówimy najważniejsze cechy programowania funkcyjnego (niezmienialne struktury danych, funkcje jako wartości), łącznie z elementami semantycznymi stosowanymi w większości języków programowania funkcyjnego (typy wariantowe, dopasowanie wzorca, rekonstrukcja typów, abstrakcja typów), które coraz częściej przenikają do języków głównego nurtu (Java, Python, C++). Zaprezentujemy też niektóre praktyczne narzędzia stosowane w pracy w językiem OCaml, również w zastosowaniach przemysłowych.
Lista tematów:
1. Wstęp do programowania funkcyjnego
2. Typy podstawowe i listy, polimorfizm
3. Dopasowanie wzorców
4. Typy algebraiczne
5. Funkcje wyższego rzędu
6. Moduły i funktory
7. Elementy programowania imperatywnego w OCamlu
8. Obsługa błędów (wyjątki, monady)
9. Obiekty i klasy
10. Polimorficzne warianty, uogólnione typy algebraiczne (GADT)
Koordynatorzy przedmiotu
Efekty kształcenia
Wiedza: absolwent zna i rozumie:
teoretyczne podstawy z zakresu programowania funkcyjnego … (K_W02)
w stopniu ogólnym paradygmat programowania funkcyjnego … (K_W09)
Umiejętności - absolwent potrafi:
pisać, uruchamiać i testować programy w języku OCaml (K_U05)
czytać ze zrozumieniem programy zapisane w języku OCaml (K_U06)
Kompetencje społeczne - absolwent jest gotów do:
- krytycznej oceny posiadanej wiedzy i odbieranych treści (K_K01),
- pracy z poszanowaniem uczciwości intelektualnej w działaniach własnych i innych osób; przestrzegania zasad etyki zawodowej i wymagania tego od innych oraz dbałości o dorobek i tradycje zawodu informatyka (K_K02),
- uznawania znaczenia wiedzy w rozwiązywaniu problemów poznawczych i praktycznych oraz wyszukiwania informacji w literaturze oraz zasięgania opinii ekspertów (K_K03).
Kryteria oceniania
Na zaliczenie składa się oddawanie małych programików, mniej więcej na każdym labie (max 30 punktów) oraz projektu zaliczeniowego (max 70 punktów).
Literatura
Literatura:
Michael R. Clarkson et al. “OCaml Programming: Correct + Efficient + Beautiful” https://cs3110.github.io/textbook/
John Whitington “OCaml from the Very Beginning”
https://ocaml-book.com/
Anil Madhavapeddy, Yaron Minsky “Real World OCaml: Functional Programming for the Masses” 2nd Edition
https://realworldocaml.org/
Więcej informacji
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i terminach zajęć) mogą być dostępne w serwisie USOSweb: