Semantyka i weryfikacja programów WM-I-S2-E1-SWP
Przedmiot stanowi wprowadzenie do formalnych metod opisu i analizy programów. Obejmuje zagadnienia od składni i drzew abstrakcyjnej składni (AST), poprzez wprowadzenie do semantyki języków programowania z uwzględnieniem numerałów, wyrażeń i stanu. Szczegółowo omawiane są różne style semantyki: naturalna, strukturalna operacyjna, abstrakcyjna implementacja i abstrakcyjne maszyny, a także rozszerzenia semantyki o konstrukcje sterujące.
Ważną część kursu stanowią procedury i ich opis w semantyce statycznej, dynamicznej i kombinowanej. Omawiane są także podejścia semantyczne: algebraiczne, aksjomatyczne, denotacyjne oraz kategorialne (denotacyjne i koalgebraiczne). Dodatkowo prezentowana jest semantyka języków dziedzinowych (DSL) i języków konkatenatywnych.
Z perspektywy praktycznej studenci uczą się:
- konstruować abstrakcyjne drzewa składniowe,
- definiować reguły semantyczne i dowodzić własności prostych programów,
- odprowadzać semantyczny interpreter języka przy pomocy narzędzia SLANG,
- analizować programy z wykorzystaniem logiki Hoare’a i podstaw hierarchii Chomsky’ego.
Celem zajęć jest opanowanie zarówno teoretycznych podstaw semantyki programów, jak i umiejętności praktycznego zastosowania formalnych metod do weryfikacji poprawności algorytmów i języków programowania.
Dyscyplina naukowa, do której odnoszą się efekty uczenia się
E-Learning
W cyklu 2021/22_Z: E-Learning (pełny kurs) z podziałem na grupy | W cyklu 2024/25_Z: E-Learning | W cyklu 2023/24_Z: E-Learning (pełny kurs) z podziałem na grupy | W cyklu 2022/23_Z: E-Learning (pełny kurs) z podziałem na grupy | W cyklu 2020/21_Z: E-Learning (pełny kurs) z podziałem na grupy |
Grupa przedmiotów ogólnouczenianych
Opis nakładu pracy studenta w ECTS
W cyklu 2023/24_Z: WYKŁAD
Szacunkowy nakład pracy studenta:
- uczestnictwo w zajęciach 30 h,
- uczestnictwo w egzaminie 1 h,
- konsultacje z prowadzącym 2 h,
- przygotowanie do zajęć 5 h,
- przygotowanie do egzaminu 14 h,
razem 52 h, co odpowiada 2 ECTS.
LABORATORIA
Szacunkowy nakład pracy studenta:
- uczestnictwo w zajęciach 30 h,
- konsultacje z prowadzącym 3 h,
- prace domowe 30 h,
- przygotowanie do weryfikacji 15 h,
razem 78 h, co odpowiada 3 ECTS. | W cyklu 2022/23_Z: WYKŁAD
Szacunkowy nakład pracy studenta:
- uczestnictwo w zajęciach 30 h,
- uczestnictwo w egzaminie 1 h,
- konsultacje z prowadzącym 2 h,
- przygotowanie do zajęć 5 h,
- przygotowanie do egzaminu 14 h,
razem 52 h, co odpowiada 2 ECTS.
LABORATORIA
Szacunkowy nakład pracy studenta:
- uczestnictwo w zajęciach 30 h,
- konsultacje z prowadzącym 3 h,
- prace domowe 30 h,
- przygotowanie do weryfikacji 15 h,
razem 78 h, co odpowiada 3 ECTS. | W cyklu 2025/26_Z: WYKŁAD
Szacunkowy nakład pracy studenta:
- uczestnictwo w zajęciach 30 h,
- uczestnictwo w egzaminie 2 h,
- konsultacje z prowadzącym 3 h,
- przygotowanie do zajęć 5 h,
- przygotowanie do egzaminu 10 h,
razem 50 h, co odpowiada 2 ECTS.
LABORATORIA
Szacunkowy nakład pracy studenta:
- uczestnictwo w zajęciach 30 h,
- konsultacje z prowadzącym 3 h,
- prace domowe 10 h,
- przygotowanie do zajęć 5 h,
- przygotowanie do weryfikacji 12 h,
- prygotowanie projektu 15 h
razem 75 h, co odpowiada 3 ECTS. |
Poziom przedmiotu
Symbol/Symbole kierunkowe efektów uczenia się
Typ przedmiotu
Wymagania wstępne
Koordynatorzy przedmiotu
W cyklu 2023/24_Z: | W cyklu 2019/20_Z: | W cyklu 2021/22_Z: | W cyklu 2020/21_Z: | W cyklu 2022/23_Z: | W cyklu 2024/25_Z: | W cyklu 2025/26_Z: |
Efekty kształcenia
WYKŁAD
Student:
W1 - zna i rozumie podstawy teorii języków formalnych i automatów wraz z zastosowaniami (I2_W01),
W2 - zna i rozumie różne rodzaje semantyk programów oraz metody weryfikacji własności programów (I2_W05),
W3 - zna i rozumie pojęcia związane z poprawnością programów oraz wybrane techniki i formalizmy dowodzenia poprawności algorytmów i programów (I2_W05).
LABORATORIA
Student:
U1 - potrafi stosować wybrane metody matematyczne do analizy poprawności algorytmów (I2_U01),
U2 - potrafi budować maszyny abstrakcyjne i analizować ich działanie (I2_U02),
U3 - potrafi posługiwać się różnymi rodzajami semantyk formalnych do wnioskowania o własnościach programów (I2_U04),
U4 - potrafi samodzielnie uczyć się (I2_U08),
K1 - jest gotów do aktywnego udziału w laboratorium oraz kreatywnego rozwiązywania postawionych problemów (I2_K05).
Kryteria oceniania
Dla wszystkich efektów przyjmuje się następujące kryteria oceny we wszystkich formach weryfikacji:
ocena 5: osiągnięty w pełni (bez uchwytnych niedociągnięć),
ocena 4,5: osiągnięty niemal w pełni i nie są spełnione kryteria przyznania wyższej oceny,
ocena 4: osiągnięty w znacznym stopniu i nie są spełnione kryteria przyznania wyższej oceny,
ocena 3,5: osiągnięty w znacznym stopniu z wyraźną przewagą pozytywów i nie są spełnione kryteria przyznania wyższej oceny,
ocena 3: osiągnięty dla większości przypadków objętych weryfikacją i nie są spełnione kryteria przyznania wyższej oceny,
ocena 2: nie został osiągnięty dla większości przypadków objętych weryfikacją.
Więcej informacji
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i terminach zajęć) mogą być dostępne w serwisie USOSweb: