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 2023/24_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 2020/21_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 2024/25_Z: E-Learning | W cyklu 2025/26_Z: E-Learning (pełny kurs) |
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 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 | 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. |
Poziom przedmiotu
Symbol/Symbole kierunkowe efektów uczenia się
Typ przedmiotu
Wymagania wstępne
Koordynatorzy przedmiotu
W cyklu 2026/27_Z: | 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 - opisuje podstawy teorii języków formalnych i automatów wraz z zastosowaniami (I2_W01),
W2 - charakteryzuje różne rodzaje semantyk programów - operacyjną, naturalną, denotacyjną, algebraiczną, aksjomatyczną oraz metody weryfikacji własności programów (I2_W05),
W3 - charakteryzuje metody formalnej weryfikacji własności programów oraz omawia pojęcia poprawności i techniki dowodzenia (I2_W05).
LABORATORIUM
Student:
U1 - stosuje wybrane metody matematyczne do analizy poprawności algorytmów i programów (I2_U01),
U2 - buduje maszyny abstrakcyjne i analizuje ich działanie w kontekście języków formalnych i semantyki (I2_U02),
U3 - posługuje się różnymi rodzajami semantyk formalnych do wnioskowania o własnościach programów (I2_U04),
U4 - identyfikuje braki w wiedzy i samodzielnie rozwija wiedzę w zakresie metod formalnych i semantyki (I2_U08),
K1 - aktywnie uczestniczy w zajęciach oraz kreatywnie rozwiązuje problemy z zakresu semantyki (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: