Začlenění návrhových vzorů do výuky programování Rudolf Pecinovský 1 1 Amaio Technologies Inc., 100 00 Praha 10, Třebohostická 14 rudolf@pecinovsky.cz Abstrakt. Příspěvek nejprve stručně seznamuje se šesti hlavními současnými přístupy k výuce základů programování. Poté se soustředí na přístup, při ně celá výuka začíná prací s objekty a důslednou aplikací zásad objektově oriento- vaného programování. Kritizuje polovičatost doposud publikovaných učebních textů a naznačuje, jak je možno deklarované zásady aplikovat důsledněji. V druhé, klíčové části příspěvku ukazuje na konkrétních příkladech, jak lze po- stupovat při výuce, při které se od počátku učí doopravdy objektově orientova- né programování a předvádí, jak je možno prakticky od prvních hodin začlenit do výuky programování seznámení s návrhovými vzory a možnostmi jejich po- užití. V třetí části srovnává dva přístupy k zadání zkušebního příkladu: klasický a skutečně objektově orientovaný. Ukazuje, že opravdu objektový přístup je výhodnější jak pro studenty, tak pro vyučujícího. V poslední, čtvrté části pak zmiňuje návrhové vzory, které by si také zasloužily zařazení do vstupních kur- zů, avšak v předchozím textu na ně nedošlo. Klíčová slova: OOP, návrhové vzory, výuka programování, vstupní kurzy pro- gramování, přístup „nejdříve objekty“, přístup „object first“ 1 Úvod Stejně jako jiné oblasti činnosti, i programování se neustále vyvíjí. Bohužel, metodika výuky programování nesleduje tyto trendy vždy dostatečně dobře a většinou se za ni- mi výrazně opožďuje. Učitelé proto často připravují žáky na styl programování, který byl progresivní před 15 až 25 lety, ale v současné době je již dávno překonaný. O to překonanější bude v době, kdy budou jejich studenti vstupovat do praxe. 1.1 Přehled používaných přístupů k výuce V současné době se na různých místech učí programování podle různých metodik, které jsou rozdělovány do následujících šesti skupin: Nejdříve hardware (Hardware-first) Zastánci tohoto přístupu tvrdí, že k tomu, aby studenti dokázali správně programovat, musí nejprve vědět, jak je počítač konstruován, protože jedině tak si mohou předsta- vit, jak bude jejich program prováděn. Výuka začíná výkladem spínacích obvodů, konstrukcí registrů a aritmetických jednotek, a teprve poté pokračuje výkladem kon- strukce programů ve strojovém kódu a následně ve vyšších programovacích jazycích. Tato koncepce se uplatní pouze v několika speciálních oborech, protože většinou,