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 2020/21_Z: E-Learning (pełny kurs) z podziałem na grupy | W cyklu 2021/22_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 2023/24_Z: E-Learning (pełny kurs) z podziałem na grupy | W cyklu 2024/25_Z: E-Learning | W cyklu 2025/26_Z: E-Learning (pełny kurs) | W cyklu 2026/27_Z: E-Learning (pełny kurs) |
Grupa przedmiotów ogólnouczenianych
Koordynatorzy przedmiotu
W cyklu 2023/24_Z: | W cyklu 2026/27_Z: | W cyklu 2024/25_Z: | W cyklu 2019/20_Z: | W cyklu 2021/22_Z: | W cyklu 2020/21_Z: | W cyklu 2022/23_Z: | W cyklu 2025/26_Z: |
Opis nakładu pracy studenta w 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 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 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. | W cyklu 2026/27_Z: WYKŁAD
uczestnictwo w zajęciach: 30 godz.
udział w egzaminach poza zajęciami: 3 godz.
udział w konsultacjach: 4 godz.
przygotowanie do zajęć: 2 godz.
przygotowanie do egzaminu: 11 godz.
Łącznie 50 godz.
1,5 ECTS - kontakt bezpośredni z prowadzącym
0,5 ECTS - praca własna
LABORATORIUM
uczestnictwo w zajęciach: 30 godz.
udział w konsultacjach: 4 godz.
przygotowanie do zajęć: 30 godz.
przygotowanie do zaliczenia: 11 godz.
Łącznie 75 godz.
1,4 ECTS - kontakt bezpośredni z prowadzącym
1,6 ECTS - praca własna |
Poziom przedmiotu
Symbol/Symbole kierunkowe efektów uczenia się
Typ przedmiotu
Wymagania wstępne
Efekty uczenia się
WYKŁAD
Student:
W1 - opisuje teoretyczne podstawy formalnego modelowania i analizy programów oraz procesów obliczeniowych (I2_W01),
W2 - charakteryzuje różne rodzaje semantyk programów – operacyjną, naturalną, denotacyjną, algebraiczną i aksjomatyczną – oraz wyjaśnia ich zastosowanie w analizie programów (I2_W05),
W3 - charakteryzuje metody formalnej weryfikacji własności programów oraz wyjaśnia pojęcia poprawności programów i techniki jej dowodzenia (I2_W05).
LABORATORIUM
Student:
U1 – stosuje wybrane metody matematyczne do analizy algorytmów, procesów obliczeniowych i własności programów (I2_U01),
U2 – konstruuje i analizuje formalne modele wykonania programów, w szczególności z wykorzystaniem maszyn abstrakcyjnych (I2_U02),
U3 – posługuje się różnymi rodzajami semantyk formalnych do wnioskowania o własnościach i poprawności programów (I2_U04),
U4 – identyfikuje braki w wiedzy i samodzielnie rozwija wiedzę w zakresie semantyki i weryfikacji programów (I2_U08),
K1 – jest gotowy do samodzielnego i kreatywnego poszukiwania rozwiązań problemów z zakresu semantyki i weryfikacji programó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: