Hoare Advanced Homework Assistant



Podobne dokumenty
TOMASZ WOŹNIAKOWSKI, ARKADIUSZ ORŁOWSKI

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Wykład Ćwiczenia Laboratorium Projekt Seminarium

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA Bieżący sylabus w semestrze zimowym roku 2016/17

Egzamin / zaliczenie na ocenę*

PRZEWODNIK PO PRZEDMIOCIE

Michał Olejnik. 22 grudnia 2009

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek

Logika Stosowana. Wykład 2 - Logika modalna Część 2. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017

PRZEWODNIK PO PRZEDMIOCIE

Podstawy programowania.

Programowanie obiektowe 2 - opis przedmiotu

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 1 Wprowadzenie do narzędzia CASE. Materiały dla nauczyciela

komputerze, może pracować na wybranym komputerze ze studentem, a pozostali mogą w tym czasie wykonywać inne zadania na swoich komputerach.

Z-ID-203. Logika. Podstawowy Obowiązkowy Polski Semestr II. Semestr zimowy Wiedza i umiejętności z matematyki w zakresie szkoły średniej NIE

Problemy optymalizacji, rozbudowy i integracji systemu Edu wspomagającego e-nauczanie i e-uczenie się w PJWSTK

KRYTERIA OCENIANIA Z JĘZYKA ANGIELSKIEGO W KLASACH IV - VI

Aplikacje WWW i PHP - opis przedmiotu

Prawo cywilne z umowami w administracji Kod przedmiotu

INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA.

Wymagania edukacyjne z języka angielskiego klasy 4-6

Podstawy informatyki i algorytmizacji. Wykład 1 organizacja zajęć

Laboratorium 5: Tablice. Wyszukiwanie binarne

Elektrotechnika I stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny) Kierunkowy (podstawowy / kierunkowy / inny HES)

Tworzenie oprogramowania

DSL w środowisku Eclipse. Grzegorz Białek Architekt techniczny, Sygnity S.A.

NAZWA PRZEDMIOTU/MODUŁU KSZTAŁCENIA:

Odwrócona lekcja odwrócona klasa lub odwrócone nauczanie

Geneza powstania języka C++

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

Poziom przedmiotu: II stopnia. Liczba godzin/tydzień: 3W E, 3C PRZEWODNIK PO PRZEDMIOCIE

Rozwój zawodowy człowieka - opis przedmiotu

KARTA KURSU. Języki hipertekstowe i tworzenie stron WWW. Opis kursu (cele kształcenia) Warunki wstępne. Efekty kształcenia. Nazwa

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

Zaawansowane programowanie w języku C++

KARTA PRZEDMIOTU. wyjaśnia podstawy budowy i obsługi komputera. przetwarza dokumenty w formie elektronicznej. nakład

Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH. Modeling and analysis of computer systems Forma studiów: Stacjonarne

Podstawy Informatyki. Algorytmy i ich poprawność

Testowanie systemów informatycznych Kod przedmiotu

tel./fax (85)

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

Inżynieria oprogramowania - opis przedmiotu

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 2 Ćwiczenia w narzędziu CASE diagram klas. Materiały dla nauczyciela

PRZEWODNIK PO PRZEDMIOCIE

Scenariusz zajęć. Moduł VI. Projekt Gra logiczna zgadywanie liczby

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X

SPIS TREŚCI. Do Czytelnika... 7

Rozwiązania SCM i Portal dla operatorów logistycznych i przewoźników

PROGRAM MICROSOFT DEVELOPER NETWORK ACADEMIC ALLIANCE MSDN AA

KARTA PRZEDMIOTU. 1. NAZWA PRZEDMIOTU: Zespołowy projekt informatyczny. 2. KIERUNEK: Matematyka. 3. POZIOM STUDIÓW: I stopnia

Programowanie gier. wykład 0. Joanna Kołodziejczyk. 30 września Joanna Kołodziejczyk Programowanie gier 30 września / 13

Podstawy logiki i analizy ilościowej Kod przedmiotu

SYLABUS/KARTA PRZEDMIOTU

Informacje ogólne. Językoznawstwo i nauka o informacji

Wymagania edukacyjne na poszczególne oceny z języka angielskiego dla klas VI szkoły podstawowej.

Dokumentacja kompilacji źródeł aplikacji 1.0

PRZEWODNIK PO PRZEDMIOCIE

Geneza powstania języka C++

Logika dla socjologów Część 2: Przedmiot logiki

Liczba godzin Punkty ECTS Sposób zaliczenia. konwersatoria 30 zaliczenie z oceną

SŁOWNICTWO I GRAMATYKA

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 5 Ćwiczenia w narzędziu CASE diagram przypadków uŝycia. Materiały dla nauczyciela

Informatyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny)

Wydział Zarządzania i Komunikacji Społecznej Instytut Przedsiębiorczości. Zarządzanie strategiczne

Logistyka I stopień Ogólnoakademicki. Stacjonarne Zarządzanie logistyczne Katedra Ekonomii i Zarządzania prof. dr hab.

Zagadnienia wybrane nauczania matematyki Kod przedmiotu

Projektowanie oprogramowania

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2018/2019

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

Wykorzystanie założeń systemu ECVET w projektach mobilności edukacyjnej oraz w tworzeniu programów szkoleń zawodowych

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Udane wdrożenie systemu IT

Przyspieszenie obróbki CNC z edytorem ścieżki. narzędzia w ZW3D. ZW3D CAD/CAM Biała księga

PRZEWODNIK PO PRZEDMIOCIE

Bezpieczeństwo systemów komputerowych

KRYTERIA OCENIANIA Z JĘZYKA ANGIELSKIEGO DLA KLAS IV-VIII

KARTA KURSU. Student zna podstawy analizy, projektowania i programowani obiektowego oraz podstawy języka C++.

BADANIE I OCENA ZGODNOŚCI Z INSPIRE

Rachunek prawdopodobieństwa

Hot Spot 1. Kryteria oceniania.

Superwizja w pracy socjalnej - opis przedmiotu

KARTA KURSU (realizowanego w module specjalności)

Ćwiczenie 1. Przygotowanie środowiska JAVA

* kartkówki mogą obejmować materiał z trzech ostatnich lekcji. Sprawdzają gramatykę i słownictwo. Nie muszą być zapowiadane z wyprzedzeniem.

opinie studentów o wypełnianiu obowiązków dydaktycznych przez nauczyciela akademickiego i programie nauczania

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

Liczba godzin Punkty ECTS Sposób zaliczenia. ćwiczenia 15 zaliczenie z oceną

PRZEWODNIK PO PRZEDMIOCIE

Logika Stosowana. Wykład 1 - Logika zdaniowa. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

System kontroli wersji, system zarządzania kodem źródłowym

Przedmiot do wyboru: Komputerowa obróbka tekstu rosyjskiego - opis przedmiotu

Transkrypt:

Aleksy Schubert 1 Tadeusz Sznuk 2 1 alx@mimuw.edu.pl 2 tsznuk@mimuw.edu.pl 3 października 2013

Cele projektu Cel Przeniesienie nauczania semantyki na wydziale w XXI wiek. Na początek chcemy się skupić na nauczaniu logiki Hoare a. Konkretnie zamierzamy stworzyć narzędzie wspierające ów proces.

Stan obecny W tej chwili część zajęć z semantyki dotycząca logiki Hoare a wygląda następująco 1 Na wykładzie przedstawione są teoretyczne podstawy. 2 W ramach ćwiczeń realizowana jest praca domowa, polegająca na uzupełnieniu zadanego programu o brakujące asercje. 3 Podobne zadanie pojawia się na egzaminie. Zadania oddaje się w formie papierowej. Prowadzący sprawdzają zgodność rozwiązań z regułami logiki Hoare a, co sprowadza się do zbadania prawdziwości pewnej liczby dość zawiłych formuł logicznych.

Problemy Sprawdzanie rozwiązania jest procesem niezwykle żmudnym. Problem ten dotyczy nie tylko prowadzących zajęcia - student nie może się łatwo przekonać, czy jego rozwiązanie jest poprawne (i dlaczego nie jest). Co gorsza, przy takim tworzeniu programu w logice Hoare a łatwo się pomylić. Zmniejsza to znacznie szanse otrzymania poprawnego programu, co powoduje zwątpenie w sens stosowania logiki Hoare a (czy nawet wszelkich metod formalnej weryfikacji).

Pomysł Pomysł 1 - IDE Programów nie pisze się na kartkach. Programy pisze się w edytorach. Pomysł 2 - Automatyczna weryfikacja Sprawdzanie prawdziwości formuł logicznych jest zwykle zadaniem żmudnym. A zatem należy do tego celu wykorzystać komputer. Ten pomysł nie jest nowy - istnieje już sporo pożytecznych narzędzi (SMT-solverów, np. Microsoft Z3).

Co mamy Prototyp narzędzia Spisane w formie stosownych dokumentów wymagania. Odnośnie całego narzędzia. Oraz proponowanych podprojektów. Dużo dobrych chęci?

Prototyp [[Może się uruchomi]].

Zalety projektu Wynik prac będzie stosowany w praktyce przez przyszłe pokolenia studentów. Źródłem wymagań są prowadzący przedmiot oraz studenci. Tych pierwszych można zwykle zastać na wydziale. Udział w realizacji projektu może się okazać pomocny przy nauce (oraz zaliczaniu egzaminu z) semantyki. Doświadczenie w tworzeniu projektów eclipsowych może być przydatne. Prace związane z projektem można kontynuwać po zakończeniu ZPP (w ramach grantów czy prac magisterskich).

Proponowane projekty Dalszy rozwój prototypu, w szczególności interfejsu. Implementacja narzędzia (być może za pomocą innych technik, niż zastosowane w prototypie). Eclipsowe API do współpracy z SMT-solverami + prosty solver. Interpreter i debugger (zintegrowane z Eclipse)....

Implementacja narzędzia W tej chwili mamy prototyp. Jego interfejs jest jednak raczej niedopracowany. Potrzeba dużo pracy, aby nadawał się do codziennego użytku na zajęciach. Platforma Eclipse oferuje ogrom możliwości. Niestety, nierzadko są to możliwości stracenia czasu i/lub nerwów. Być może zastosowanie innej technologii umożliwi sprawniejszą realizację projektu.

SMT solvery SMT-solver służy do sprawdzania spełnialności formuł logicznych (nad jakąś teorią, np. liczbami całkowitymi i tablicami). Istnieje sporo implementacji. Obecnie najbardziej obiecująco wygląda Microsoft Z3. Istnieje nawet standard do komunikacji z solverami (SMTLIBv2). Ale żaden solver go tak do końca nie implementuje. Potrzebna jest wtyczka eclipsowa, umożliwiająca innym projektom korzystanie z solverów (a użytkownikom - konfigurowanie zainstalowanych solverów). Dobrze byłoby mieć też własny solver.

Interpreter Aby uzupełnić dowód poprawności programu, dobrze jest zwyke zrozumieć, jak (czy?) ten program działa. Możliwość uruchomienia wybranego fragmentu kodu dla zadanych parametrów bywa w tym pomocna. Przydatne jest też podglądanie wartości zmiennych w różnych punktach, zatrzymywanie wykonania itp. Eclipse zawiera interfejs do odpluskwiania programów działających na JVM - może można z niego skorzystać?