Visual Studio ve výuce informatických předmětů

Podobné dokumenty
K problematice výuky programování v běžných vývojových nástrojích

Seznámení s prostředím dot.net Framework

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Jaký programovací jazyk učit jako první a jak ho učit?

Úvod. Programovací paradigmata

Komprimace/Dekomprimace

Vývojové nástroje jazyka Java

Vstupní požadavky, doporučení a metodické pokyny

Rozklad na prvočinitele. 3. prosince 2010

INOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika

HIT jednotný koncept výuky NC programování

Generátor kódu. a jeho uplatnění ve výuce programování. Rudolf PECINOVSKÝ rudolf@pecinovsky.cz

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Překladač a jeho struktura

================================================================================ =====

Algoritmy a algoritmizace

KOMU JE KNIHA URČENA?

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

Modulární systém dalšího vzdělávání pedagogických pracovníků JmK v přírodních vědách a informatice CZ.1.07/1.3.10/ Brožura dobré praxe

1 Úvod 1.1 Vlastnosti programového vybavení (SW)

Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost

PRVNÍ ELASTICKÝ INFORMAČNÍ SYSTÉM : QI

MATCOMP s.r.o. Nabídka počítačových kurzů. Akreditované kurzy:

5 ÚVOD DO TESTOVÁNÍ SOFTWARE. 6 Testování software ve vývojovém prostředí MICROSOFT VISUAL STUDIO V hlavním menu volba Debug

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Tabulka základních vlastností nástroje C++Builder dle edice

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

ALGORITMIZACE A PROGRAMOVÁNÍ

Typy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Příprava dat v softwaru Statistica

Vzdělávací oblast: Informatika a informační a komunikační technologie Vzdělávací obor: Programování. Předmět: Programování

Úvod do CSS. Střední škola informatiky, elektrotechniky a řemesel Rožnov pod Radhoštěm. Modernizace výuky s využitím ICT, CZ.1.07/1.5.00/34.

Nástroje pro vývoj software

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

1.13 ACCESS popis programu

Rozšiřující studium učitelství pro střední školy - informatika

Databázové aplikace pro internetové prostředí PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku

KOMU JE KNIHA URČENA?

Soulad studijního programu. Aplikovaná informatika

Tabulkový procesor. Základní rysy

Inovace výuky prostřednictvím šablon pro SŠ

V t í á t V á V s ČVU V T v v P r P a r ze

Jak psát bakalářskou či diplomovou práci. Možná úskalí při výběru témat a vedoucích prací:

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

1. Úvod do Systémů CAD

2.3.8 Lineární rovnice s více neznámými II

1 Strukturované programování

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina

Rozšiřující studium informatiky pro 2. stupeň ZŠ

Základy programování Úvodní informace. doc. RNDr. Petr Šaloun, Ph.D. VŠB-TUO, FEI (přednáška připravena z podkladů Ing. Michala Radeckého)

Využití ICT techniky především v uměleckém vzdělávání. Akademie - VOŠ, Gymn. a SOŠUP Světlá nad Sázavou

MATLAB Úvod. Úvod do Matlabu. Miloslav Čapek

Vizuální programování

Úvod do programování

IB111 Úvod do programování skrze Python Přednáška 13

CODEWEEK Jednota školských informatiků. říjen 2014 Petr Naske, předseda sdružení

Úvod do programovacího jazyka Python

SOFISTIKOVANÉ NÁSTROJE PRO JEDNODUCHOU TVORBU PROFESIONÁLNÍCH WEBOVÝCH PREZENTACÍ

Soustavy více rovnic o více neznámých I

Algoritmizace- úvod. Ing. Tomáš Otáhal

Název: VY_32_INOVACE_PG4119 Tipy a triky, rozdíly mezi prohlížeči

Databázové systémy úvod

Základní práce v souborovém manažeru

1.1 Seznámení s programy Office

ORGANIZACE VOLNÉHO ČASU

Úvod do informatiky. Miroslav Kolařík

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

VY_32_INOVACE_INF.19. Inkscape, GIMP, Blender

4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody

Programování v jazyce C a C++

Výuka programování střední průmyslové škole. Smíchovská střední průmyslová škola Praha Ing. Helena Brabcová

Programování v jazyce VISUAL BASIC.NET

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Existuje celá řada volně dostupných nástrojů, které jsou pro účel projektu vhodné, např.

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Principy OOP při tvorbě aplikací v JEE. Michal Čejchan

SOFTWAROVÁ PODPORA TVORBY PROJEKTŮ

Angličtina program k procvičování slovní zásoby

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Obsah. Úvodem 9. Kapitola 1 Než začneme 11. Kapitola 2 Dynamické zobrazování obsahu 25. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10

Matematický software pro Linux

Odborný článek. Petr Klán, VŠE v Praze, IMRAD Introduction, Material and Method, Results, Discussion

Testování aplikace Facebook Messenger pro Windows Phone 8.1

Formy komunikace s knihovnami

Aplikační programové vybavení

Karina Makarova. Oleksandra Sharnova. Anastasiya Romanyuta. Alexandra Plischenko. Jana Burchavskaya. Asel Doschanova

vjj 1. Windows programming. krátká nahlédnutí za oponu

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání

Sada 1 - Základy programování

Proč vyhrál bitvu o cloud opensource a proč mě to má zajímat

čtyřleté gymnázium a vyšší stupeň osmiletého gymnázia

IB111 Programování a algoritmizace. Programovací jazyky

Funkcionální programování. Kristýna Kaslová

Registrační číslo projektu: CZ.1.07/1.5.00/ Název projektu: Moderní škola 21. století. Zařazení materiálu: Ověření materiálu ve výuce:

Transkript:

Visual Studio ve výuce informatických předmětů Aleš Keprt Ústav informatiky MVŠO Ales.Keprt@mvso.cz Abstrakt: Příspěvek diskutuje problematiku výuky informatiky a zejména programování ve Visual Studiu nástroji, který se používá jak v komerční praxi, tak ve výuce. Klíčová slova: Visual Studio, programování, výuka, synergie 1 Úvod do problematiky Microsoft Visual Studio (dále jen Visual Studio) je jedním z mnoha dnes existujících vývojových nástrojů pro programátory. Setkáváme se s ním běžně v komerčních firmách produkujících počítačový software a je běžným vybavením také na školách, kde je jedním z nejčastějších softwarových pomocníků ve výuce programování. Oblast využití tohoto vývojového nástroje se však neomezuje jen na programování a jeho výuku, Visual Studio je totiž možno využít i ve výuce některých dalších příbuzných činností. Pro studenty to pak přináší výhodu jednotného prostředí a jednotného pracovního nástroje, se kterým se setkávají opakována během studia a ve výuce se tak šetří drahocenný čas, který by jinak byl nutný k seznámení s novými prostředky vždy na začátku každého dalšího semestru či kurzu. S tímtéž nástrojem se pak titíž studenti již coby absolventi setkávají i potom ve svém profesním životě v praxi a opět tak šetří svůj čas a nemusejí se učit pracovat se zcela novými nástroji. Použití jednotného nástroje v tak široké škále nasazení má však i určitá úskalí a tomu se právě věnuje tento příspěvek. 2 Vývojové nástroje 2.1 Běžné a školní nástroje Vývojové nástroje se dnes vyskytují obvykle ve formě IDE (integrated development environment), čili integrovaných vývojových nástrojů. Pro potřeby dalšího textu si je rozdělme na dva typy: Běžné: to jsou všechny ty, které se používají v komerční praxi. Školní: ty jsou určeny speciálně k výuce a ne k použití v praxi. Ať už k výuce programování přistoupíme jakkoliv, někde v jejím průběhu určitě použijeme i běžné vývojové nástroje. Bez ohledu na to, zda je budeme ve výuce používat už od začátku, nebo výuku začneme s pomocí nástrojů školních a ty běžné přidáme až v jejím dalším průběhu, určitě nemůže absolvent vyjít ze školy bez jejich znalosti, protože by byl v praxi problematicky uplatnitelný. 1

Zde musíme zmínit i výuku programování vysokoškoláků neinformatiků, středoškoláků a žáků základních škol. Ti totiž nemají výuku programování složenou z více samostatných předmětů, ale typicky jen jeden předmět informatika či programování a v jeho omezeném čase musí zvládnout vše. Tito studenti se samozřejmě v konečném důsledku naučí daleko méně než systematicky připravovaní informatici, nicméně jde o poměrně velké množství studentů a část z nich skutečně bude programování v budoucnu živit a proto je třeba se jejich situací také zabývat. Tito studenti ve výuce většinou používají právě ony běžné vývojové nástroje a pro nedostatek času je u nich vynechaná výuka na těch školních. 2.2 Důvody existence vývojových nástrojů Z výše uvedené definice typů nástrojů je vidět, že obě možnosti se navzájem nevylučují. Kvalitní nástroje však typicky patří právě do jedné kategorie a je to na nich poznat na první pohled. Důvodem existence běžných nástrojů je samozřejmě neustálá potřeba lidské společnosti vytvářet další nový počítačový software. Co je však důvodem existence těch školních? Těch důvodů je více a pokusíme se identifikovat alespoň několik základních: Cena, snaha řešit potřeby výuky bezplatnými nástroji Přílišná složitost běžných nástrojů, nepřehlednost pro začátečníky Absence či nedostatek vestavěných pomocníků pro začátečníky Fakt, že vývoj softwaru je komerční proces a tedy také vývojové nástroje jsou komerčním artiklem, je typickou překážkou v jejich používání na školách. V posledních letech je tento problém však na ústupu, protože v oblasti programování se silně prosazují vývojové i další nástroje, které lze používat zdarma. Horší je situace u druhého bodu s pokračujícím vývojem existujících nástrojů také roste jejich složitost. U mnoha z nich je jejich rozsáhlost a tedy i složitost už hodně daleko za hranicí toho, co dokáže běžně pochopit začátečník, speciálně pak při samostudiu. Třetí bod pak charakterizuje fakt, že běžné komerční nástroje typicky nenabízejí žádné pomůcky (či obecně přidanou hodnotu) pro výuku, ale soustředí se jen na dosažení maximální produktivity při práci již vyučeným programátorům. Přitom právě jednoduché pomůcky, inteligentní vestavění pomocníci ( wizardi ) nebo například kontextová ve stylu co je to příkaz if ), které jsou v praxi naprosto zbytečné či nadbytečné, jsou často výhodným pomocníkem začátečníkům při prvních krůčcích v tak cizím a neintuitivním prostředí, jakým je svět počítačů a jejich programování. Čili důvodů ke vzniku specializovaných školních vývojových nástrojů je dostatek. 2.3 Možnosti synergie Zajímat nás samozřejmě musí také otázka synergie, tj. zda je možno sjednotit vývojové nástroje pro praxi a nástroje pro výuku dohromady a to takovým způsobem, aby z toho byl větší užitek než při jejich existenci a používání samostatně. Výuka na školních nástrojích probíhá z toho důvodu, že jsou vhodnější pro výuku hlavně jejích začátcích, kdy jsou potřeby a celková situace studentů někde jinde, než kde se nachází potřeby zkušeného programátora. Kdybychom funkce a obecně řečeno výhody školních nástrojů měli i v běžných nástrojích, ušetřili bychom jistý čas v dalším studiu, kdy bude ve výuce probíhat 2

přechod ze školního na běžný nástroj. Případně u paralelně probíhajících kurzů v různých nástrojích by se studentovi situace značně zpřehlednila, kdyby mohl ve všech těchto kurzech používat jeden společný nástroj. Problematika dosažení synergie samozřejmě naráží na to, že například kurz funkcionálního programování probíhající v prostředí Common Lisp není vhodné spojovat s kurzem programování ve Visual Basicu pomocí Visual Studia. Tyto dva nástroje jsou odlišné nejen z důvodu školního či komerčního zaměření, ale ze samotné podstaty jiného stylu programování. Na to tedy pamatujme a v dalším textu se zaměřme speciálně na tu část výuky, která probíhá v prostředích s podobným stylem programování může to být třeba právě Visual Basic, který je hodně oblíbeným jazykem zejména v kurzech pro začátečníky, neinformatiky a děti. 3 Visual Studio ve výuce Microsoft Visual Studio je dnes zřejmě nejběžněji používaný vývojový nástroj při programování ve Windows, je tedy vhodným kandidátem na příklad běžného vývojového nástroje a my se nyní zastavíme u jeho možností a slabin použití při výuce programování. Uvedeme je stručný výčet základních bodů, podrobnější rozbor této problematiky je možno najít v článku [3]. Přitom dále v textu uváděný souhrn tzv. problematických bodů není způsoben ani tak špatným vlastnostmi samotného Visual Studia, jako spíše problémy logicky vyplývajícími ze snahy hledat synergii ve slučování dosti odlišných oblastí, jakými jsou průmyslová praxe na jedné straně a výuka začátečníků na straně druhé. Shrňme základní body bránící optimální synergii: Obvykle dosti komplikovaná syntaxe programovacího jazyka Ačkoliv příkazy nemusejí být na jednom řádku, typicky se tak píší. Komplikovanost pro začátečníka spočívá v přílišné volnosti syntaxe. Lepší je Visual Basic ten vyžaduje, aby každý příkaz byl na samostatném řádku (až na pár výjimek), takže chyby tohoto typu tam nenastávají. Navíc samozřejmě odpadá potřeba středníku za každým příkazem. Ještě větší problém může mít začátečník v pascalu či Delphi, kde se středník nepíše za příkazy, ale jen mezi příkazy, takže v některých speciálních případech za příkazem středník není. Chybějící nebo nedostatečná nápověda syntaxe Pokud za příkazem chybí onen středník, překladač vypíše chybu překladu a IDE nijak nepomůže studentovi s jejím pochopením či opravou. Zůstaneme-li u chybějícího středníku, IDE by mělo studentovi srozumitelně a celou větou sdělit, co se děje a jak dál postupovat. Navíc by tato zpráva měla být pokud možno v češtině. A podobně počítačem rozpoznatelných chyb je jistě více. Typické je taky narazit na problém překlepu jména třídy či špatné velikosti písmen. Je-li v systému třída či jmenný prostor System, překladač zahlásí chybu, chceme-li ve zdrojáku použít Sistem či system. IDE by se pak mělo postarat o pomoc studentovi tím, že mu nabídne opravu ve stylu: Slovo Sistem je neznámé. Pravděpodobně jde o překlep a chtěl jste napsat System. Nedostatečná podpora projektorů a interaktivních tabulí Ve výuce nejde jen o samostatnou práci studentů. Součástí práce učitele je často i předvádění práce s IDE na projektoru nebo 3

A P L I K O V A T E L N Ý S Y S T É M D A L Š Í H O V Z D Ě L Á V Á N Í V E V a V pomocí interaktivní tabule a zde narážíme na problém, že Visual Studio jakožto i další vývojové nástroje nijak nepodporují tuto činnost. Chybějící nápověda sémantiky jazyka Podobně jako u výše zmíněných syntaktických chyb by IDE mohlo studentovi pomáhat i s pochopením sémantiky. Na rozdíl od syntaktických chyb, ty sémantické nezpůsobí chybu překladače, takže na první pohled nejsou vůbec vidět. Speciálně u Visual Studia je dlouhodobě problematický i samotný styl nápovědy MSDN, zejména její nabobtnalost, naprostá nesrozumitelnost pro začátečníky a strašlivá pomalost při otevírání jednotlivých stránek nápovědy. Celkově chybějící čeština Úplně prvním problémem, na který studenti obvykle narazí, je určitě chybějící čeština. Konkrétně Visual Studio má v poslední verzi 2010 k dispozici i český překlad. Má však dva zásadní nedostatky, které jeho užitečnost značně snižují: Lze jej použít jen ve vyšší placené edici a nejde o kompletní překlad všech textů i s nápovědou MSDN. Překládání vývojových nástrojů do jiných jazyků je však dvojsečná zbraň. Student programování zhýčkaný svým rodným jazykem ve vývojovém prostředí bude mít o to větší problémy v reálném prostředí programátorské praxe, stejně tak mu nepomohou různá vývojářská fóra na internetu apod. Učitelem řízené projekty Jednou z chybějících funkcí vývojových nástrojů obecně je typicky zcela nulová podpora učitelem řízených projektů. Pojem řízení učitelem může mít u studentských projektů mnoho podob. V prvé řadě chybí podpora pro projekty, kde student má jen dopsat část kódu do existující kostry programu. Chybí možnost zamknout nebo i skrýt části projektu apod. Po odevzdání hotového projektu pak chybí jakákoliv podpora pro automatizované ověření správnosti řešení. Na zde zmíněné věci je jistě možno vytvořit vlastní studijní framework, nebo alespoň do jisté míry, je však s podivem, že samotní autoři Visual Studia nemají vůbec potřebu získávat větší market share prostřednictvím bohatší podpory studentů. (Ne)ladění Ladění programů a s ním související věci jako krokování, breakpointy apod. patří k velmi důležitým součástem programátorské práce. Konkrétně Visual Studio má v tomto ohledu velmi dobrou pověst obsahuje mnoho funkcí pro ladění programů nativních i řízených ve všech jím podporovaných programovacích jazycích. Zkušenost ukazuje, že tyto nástroje používají spíše pokročilejší programátoři, zatímco studenti jen málo a speciálně začátečníci v této oblasti dost tápou. Důvodem tohoto školního neladění může být zřejmě i nedostatečné věnování se problematice ladění ve výuce; téma Jak efektivně ladit programy se v rámci kurzu programování mnohdy neobjeví vůbec, zvláště pak v kurzech pro začátečníky. Typickým jevem u rozsáhlých počítačových programů je, že jejich autoři opomíjejí potřebu sebepropagace těchto programů směrem k jejich uživateli vývojové prostředí jakoby ani nechtělo, aby jej uživatelé plně využili. Vše se soustředí jen na technickou povahu věci a samotná přítomnost nějaké pokročilé funkce vývojového prostředí je konečným stavem. Dalo by se říci, že programům chybí duše poskytují stále širší a širší pole funkcí a přitom je jim zcela jedno, jestli to někoho z jejich uživatelů vůbec zajímá. Tato problematika jde však daleko za rámec tohoto textu. 4

4 Další možnosti Visual Studia Kromě klasického programování je možno Visual Studio použít i k dalším činnostem, včetně dalších předmětů. Přímo ve výuce na MVŠO se nám osvědčilo Visual Studio v těchto dalších oblastech: Jako modelovací nástroj Visual Studio obsahuje editor třídních modelů, který je přímo propojen na zdrojové kódy a cokoliv, co se programuje, se objevuje v grafickém modelu, stejně jako obráceně cokoliv namodelovaného se přímo objevuje i ve zdrojovém kódu. Nevýhodou ve aktuální verzi je však zejména nekompatibilita modelování s jazykem UML. Jako editor HTML stránce Visual Studio se osvědčilo jako semi-wysiwyg editor webových stránek v jazyce HTML. Nabízí rychlý náhled stránky, pokročilé funkce vybarvování syntaxe a podporuje velmi dobře také stylovací jazyk CSS. Visual Studio je nástroj zaměřený zejména na velké softwarové projekty, a tak nemůže překvapit, že se výborně hodí i do výuky související se softwarovými projekty. Ačkoliv integrované funkce modelování, jak již bylo zmíněno výše, nejsou na nejlepší úrovni, samotná podpora projektů je ve Visual Studiu výborná a v předmětech zabývajících se softwarovými projekty je Visual Studio skvělým pomocníkem. 5 Závěr V tomto příspěvku jsme se zabývali problematikou používání Visual Studia ve výuce programování a dalších informatických předmětů. Visual Studio je známý a hodně používaný vývojový nástroj, a to jak v praxi, tak ve výuce. Pokusili jsme se zde konkrétně pojmenovat několik jeho slabých míst z pohledu potřeb výuky, přesněji řečeno očima studenta a očima jeho učitele. Reference [1] ACM: Computing Curricula 2005: The Overview Report. http://www.acm.org/education/curricula-recommendations/ [2] Microsoft: Microsoft Visual Studio. http://www.microsoft.com/cze/msdn/vstudio/2010/ http://msdn.microsoft.com/en-us/vstudio/ [3] KEPRT, A. K problematice výuky programování v běžných vývojových nástrojích. Ve sborníku konference Objekty, 2010. Ostravská Univerzita v Ostravě, 2010. 5