Copyright Rudolf Pecinovský, Soubor: 2016_INF_Architecture First.doc, verze 1.00.2413, uloženo út 19.1.2016 10:03 1 z 11 Vývoj a ověřování metodiky výuky programování Rudolf Pecinovský Informatika XXIX 2016
Obsah Copyright Rudolf Pecinovský, Soubor: 2016_INF_Architecture First.doc, verze 1.00.2413, uloženo út 19.1.2016 10:03 2 z 11 Metodika Architecture First 1. Zdokonalování generátoru kódu 1.1 Projekt na konci první etapy 2. Kopenogramy 2.1 Žádost o vykreslení kopenogramu 2.2 Obdržený kopenogram 3. Rozšíření NetBeans 3.1 BlueJ jako plugin v NetBeans 4. Dotazy?
Metodika Architecture First Vychází ze dvou premis Zkušenost ukazuje, že seznámíme-li záhy studenty s kódem, začnou se příliš soustředit na kód a použitou syntaxi a jejich programy postrádají architekturu pro stromy nevidí les Vývoj vývojových nástrojů ukazuje, že zanedlouho převezmou většinu práce s kódováním generátory kódu a na vývojáře zbyde především návrh architektury Studenti, kteří začnou s kódováním, mají později obrovské problémy s přechodem svého uvažování na hadinu architektury Na minulých konferencích si přednášející několikrát stěžovali, že studenti mají problémy s pochopením architektury použitého objektového modelu Když na naši školu přijdou do magisterského studia studenti z jiných škol (nejčastěji FIT), tak často navrhují pro relativně složitý systém architekturu postavenou na třech třídách: Vstup Zpracování Výstup Začíná proto výukou architektury s tím, že kód navržených programů má na starosti generátor kódu, který je součástí vývojového prostředí Copyright Rudolf Pecinovský, Soubor: 2016_INF_Architecture First.doc, verze 1.00.2413, uloženo út 19.1.2016 10:03 3 z 11
1. Zdokonalování generátoru kódu Copyright Rudolf Pecinovský, Soubor: 2016_INF_Architecture First.doc, verze 1.00.2413, uloženo út 19.1.2016 10:03 4 z 11 Začali jsme s prostředím BlueJ, které má jednoduchý generátor zabudovaný, ale autoři o jeho dalším vývoji neuvažují Jedna skupina studentů proto rozšiřuje zabudovaný generátor tak, aby bylo možno co nejdelší část semestru učit programování tak, že se budeme soustředit na návrh architektury, aniž by studenti byli nuceni zapsat kód navrženého programu Ukazuje se, že při využití konstrukcí, Jejichž podpora je v poslední době do jazyků začleňována, lze tímto způsobem navrhnout a ihned vyzkoušet i relativně složité programy Protože při takto koncipované se v první etapě nepotkají s kódem, mohou si studenti vybrat jazyk, v němž budou v další etapě pokračovat
1.1 Projekt na konci první etapy Copyright Rudolf Pecinovský, Soubor: 2016_INF_Architecture First.doc, verze 1.00.2413, uloženo út 19.1.2016 10:03 5 z 11
2. Kopenogramy Copyright Rudolf Pecinovský, Soubor: 2016_INF_Architecture First.doc, verze 1.00.2413, uloženo út 19.1.2016 10:03 6 z 11 Prozatím využíváme toho, že moderní programové konstrukce umožňují navrhnout i netriviální kód jako prostou sekvenci příkazů Pro analýzu složitějších programových konstrukcí používáme kopenogramy, které nám přímo vygeneruje použité IDE Kopenogramy umožňují poměrně rychle odhalovat významnou podmnožinu algoritmických chyb Prozatím slouží hlavně jako pomůcka pro programátory složitějších aplikací, kterým umožňuje: Analyzovat algoritmy z knihoven, které obdrží se zdrojovým kódem Hledat chyby ve vlastních algoritmech Připravuje se možnost navrhovat algoritmy pomocí kopenogramů, která by doplňovala první etapu výuky podle metodiky AF
2.1 Žádost o vykreslení kopenogramu Copyright Rudolf Pecinovský, Soubor: 2016_INF_Architecture First.doc, verze 1.00.2413, uloženo út 19.1.2016 10:03 7 z 11
2.2 Obdržený kopenogram Copyright Rudolf Pecinovský, Soubor: 2016_INF_Architecture First.doc, verze 1.00.2413, uloženo út 19.1.2016 10:03 8 z 11
3. Rozšíření NetBeans Copyright Rudolf Pecinovský, Soubor: 2016_INF_Architecture First.doc, verze 1.00.2413, uloženo út 19.1.2016 10:03 9 z 11 Prostředí BlueJ je vhodné opravdu jenom pro prvních několik hodin Jakmile začne být projekt složitější, že jména když používá více balíčků / jmenných prostorů začne být omezená funkcionalita BlueJ nepříjemná (zvyšuje pracnost) Při přechodu na standardní profesionální IDE ale přijdeme o generátor kódu a další vymoženosti BlueJ Rozhodli jsme se proto upravit BlueJ tak, aby mohlo pracovat jako standardní plugin NetBeans
3.1 BlueJ jako plugin v NetBeans Copyright Rudolf Pecinovský, Soubor: 2016_INF_Architecture First.doc, verze 1.00.2413, uloženo út 19.1.2016 10:03 10 z 11
4. Dotazy? Copyright Rudolf Pecinovský, Soubor: 2016_INF_Architecture First.doc, verze 1.00.2413, uloženo út 19.1.2016 10:03 11 z 11