elearning jako součást prezenční výuky kurzů týkajících se programování



Podobné dokumenty
Klíčová slova: OOP, konstruktor, destruktor, třída, objekt, atribut, metoda

OBJEKTOVÉ PROGRAMOVÁNÍ V C++ V PŘÍKLADECH 8 Proudová knihovna 8.1 Hierarchie proudů Standardně zavedené proudy

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

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

STRUČNÝ POPIS E LEARNINGOVÝCH KURZŮ

Management informačních systémů. Název Information systems management Způsob ukončení * přednášek týdně

E-learning v cestovním ruchu. Josef Zelenka

Analýza studijních výsledků a připravenosti nastupujících studentů v oblasti ICT Informatics Education, Preparation and Results of Students

MODULU BUSINESS MODELOVÁNÍ

Results of innovation of the course Application software

Speciální pedagogika ve školním věku SSPSV, KSPSV

ALGORITMIZACE A PROGRAMOVÁNÍ

Objektově orientovaný přístup

Výuka informatiky s multimediálními oporami

Struktura e-learningových výukových programù a možnosti jejího využití

Tutorujeme pomocí Moodle

Vyřešené teoretické otázky do OOP ( )

ŠVP Gymnázium Ostrava-Zábřeh Úvod do programování

UML - opakování I N G. M A R T I N M O L H A N E C, C S C. Y 1 3 A N W

3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda

2. Modelovací jazyk UML 2.1 Struktura UML Diagram tříd Asociace OCL. 3. Smalltalk 3.1 Jazyk Pojmenování

SYLABUS BAKALÁŘSKÁ PRÁCE A PRAXE

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

PRŮVODCE STUDIEM PRO PREZENČNÍ FORMU STUDIA MODULU IT V PODNIKU DÍLČÍ ČÁST PROGRAMOVÁNÍ BUSINESS APLIKACÍ

INOVACE PŘEDMĚTŮ ICT MODUL 10: PROGRAMOVÁNÍ V DELPHI

Průvodce studiem modulu pro kombinovanou formu studia. Modul č. 13 UPLATNĚNÍ NA TRHU PRÁCE - dílčí část II Bakalářský seminář + příprava na praxi

Aplikační software B

Soulad studijního programu. Aplikovaná informatika

ANOTACE vytvořených/inovovaných materiálů

SYLABUS TVŮRCE SYSTÉMŮ MODULU. Michal Červinka, Ivo Špička

UNIVERZITA PALACKÉHO V OLOMOUCI

Profilová část maturitní zkoušky 2017/2018

Po ukončení tohoto kurzu budete schopni:

SYLABUS MODUL BUSINESS MODELOVÁNÍ. Doc. RNDr. Vladimír Krajčík, Ph.D.

PROGRAMOVÁNÍ V JAZYCE C V PŘÍKLADECH 11 Dynamické datové struktury 11.1 Spojové struktury Příklad PROG_

Gymnázium Františka Živného INFORMAČNÍ CENTRUM 1/2004 E-LEARNING ZÁKLADNÍ POJMY

Návrh a realizace modulového. učitelů v Moravskoslezském kraji. Ing. Eva Burianová, Ph.D.

E-LEARNINGOVÁ OPORA PŘEDMĚTU PROGRAMOVÉ VYBAVENÍ ORDINACE ZUBNÍHO LÉKAŘE Kateřina Langová, Jana Zapletalová, Jiří Mazura

5.1.7 Informatika a výpočetní technika. Časové, obsahové a organizační vymezení. ročník hodinová dotace

Metodika výuky multimediálního vzdělávání odborných pracovníků Práce s webem

Programování II. Modularita 2017/18

Příloha1) Atributy modulu

PRŮVODCE STUDIEM PRO PREZENČNÍ FORMU STUDIA DÍLČÍHO MODULU EKONOMICKÉ ASPEKTY OCHRANY ŽIVOTNÍHO PROSTŘEDÍ

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

Výuka programování v jazyce Python

Po ukončení tohoto kurzu budete schopni

Programování II. Třídy a objekty (objektová orientovanost) 2018/19

24. listopadu 2013, Brno Připravil: David Procházka

Dvouletá retrospektiva podpory učitelů při rozvoji informatického myšlení žáků. Blanka Kozáková Jiří Sumbal

OBJEKTOVĚ ORIENTOVANÉ PROGRAMOVÁNÍ

Informatika pro ekonomy

Další vzdělávání učitelů odborných předmětů k využití nových technologií pro podporu výuky. Mgr.Anita Balcarová PhDr. PaedDr.Zdeněk Pejsar, Ph.

11 Diagram tříd, asociace, dědičnost, abstraktní třídy

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

PC GRAMOTNOST PRO POLITOLOGY

Antonín Přibyl Odborná praxe oborů PS a AI

Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13

10 Balíčky, grafické znázornění tříd, základy zapozdření

1. Dědičnost a polymorfismus

Přínos k rozvoji klíčových kompetencí:

Jazykové kurzy on-line a pod dohledem tutora

Česká zemědělská univerzita v Praze

Hotelová škola, Obchodní akademie a Střední průmyslová škola Teplice, Benešovo náměstí 1, p.o. III/2 - Inovace a zkvalitnění výuky prostřednictvím ICT

Informace k soutěži o prostředky z IP 2015 Pedagogická činnost. Česká zemědělská univerzita v Praze Provozně ekonomická fakulta

PODPORA TVORBY STUDIJNÍCH TEXTŮ PRO POTŘEBY DISTANČNÍHO VZDĚLÁVÁNÍ

Programování II. Abstraktní třída Vícenásobná dědičnost 2018/19

Průvodce studiem modulu pro kombinovanou formu studia. Modul č. 14 BAKALÁŘSKÁ PRÁCE A PRAXE. Autor: František Prášek

MODULUU OBCHODNÍHO PODNIKÁNÍ

POKROČILÉ PREZENTAČNÍ PROGRAMY PRO PODPORU VÝUKY

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

Informační a komunikační technologie

X36SIN: Softwarové inženýrství. Životní cyklus a plánování

KIV/ASWI 2007/2008 Pokročilé softwarové inženýrství. Cíle předmětu Organizační informace Opaková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.

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

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

METODICKÝ POKYN DĚKANKY FZV UP PRO TVORBU A VYUŽÍVÁNÍ ELEKTRONICKÝCH STUDIJNÍCH OPOR V LMS UNIFOR

Podpora výuky přírodních věd (matematiky, fyziky, chemie apod.) a motorických dovedností interaktivní formou poly-technického vzdělávání

Úvod do principů objektově orientovaného programování

Úvodní slovo studentům informatických oborů

Programování v C++ 1, 6. cvičení

Tvorba internetových aplikací s využitím framework jquery

Výukový materiál zpracován v rámci projektu EU peníze školám

PB161 Programování v jazyce C++ Přednáška 7

Program a životní cyklus programu

Třídy. Instance. Pokud tento program spustíme, vypíše následující. car1 má barvu Red. car2 má barvu Red. car1 má barvu Blue.

4IZ440 Propojená data na webu Organizační a kontextový úvod

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320

PB161 Programování v jazyce C++ Přednáška 7

Dalším příkladem může být například výstup dat na různá zařízení, souborů, grafických rozhraní, sítě atd.

PRŮVODCE STUDIEM PRO KOMBINOVANOU FORMU STUDIA MODULU BUSINESS FINANCE

6 Objektově-orientovaný vývoj programového vybavení

PARAMETRY EFEKTIVITY UČENÍ SE ŽÁKA V PROSTŘEDÍ E-LEARNINGU SE ZAMĚŘENÍM NA ADAPTIVNÍ VÝUKOVÉ MATERIÁLY

3 Co je algoritmus? Trocha historie Definice algoritmu Vlastnosti algoritmu... 3

Úvod do softwarového inženýrství a týmového vývoje

Vývoj a ověřování metodiky výuky programování

Počítače a volný čas dětí a mládeže

VNITŘNÍ NORMA PdF UP. PdF-B-17/07. Vznik studijních opor v rámci ediční a projektové činnosti Pedagogické fakultě Univerzity Palackého v Olomouci

VYSOKÁ ŠKOLA FINANČNÍ A SPRÁVNÍ, O.P.S. Základy informatiky

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

Transkript:

elearning jako součást prezenční výuky kurzů týkajících se programování David Procházka 1, Hana Netrefová 2 Abstrakt Tento článek prezentuje výsledky projektu Tvorba multimediálních studijních materiálů pro předmět Progamovací jazyk C++. Původní cílem bylo, jak je patrné z názvu, vytvořit opory pro předmět Programovací jazyk C++. V při podrobnějším studiu materiálů, které měly být využity jako podklady pro tvorbu opor jsme dospěli k názoru, že drtivá většina knih a tutoriálů neodpovídá způsobu výuky C++ na naší fakultě. Při výuce uplatňujeme přístup blížící se metodě object first, tedy nejdříve se snažíme studenty naučit objektovému a algoritmickému programování a teprve poté se soustředíme rysy konkrétního jazyka (C++ nebo Java) v kontextu OOP. Rozhodli jsme se proto vytvořit komplexní opory, které studenty seznámí jen s naprostým minimem syntaxe C++ a okamžitě je uvedou do problematiky objektově orientovaného návrhu (OON) v jazyku C++. Teprve v okamžiku, kdy studenti projdou průpravou v OON, resp. OOP, jsou jim vysvětlovány pokročilé nástroje jazyka C++. Při tvorbě opor jsme vytvořili i řadu testů a demonstračních příkladů. Tyto testy integrované v univerzitním elearningovém prostředí jsme s spolu s oporami využili v průběhu prezenční výuky. Tento článek prezentuje výsledky nasazení diskutovaných opor a testů v kurzu Základy objektově orientovaného návrhu a Programování v jazyku C++. Klíčová slova elearning, testování, prezenční výuka, C++, objektově orientované programování 1 Ing. David Procházka,, e-mail: prochazka@pef.mendelu.cz, Ústav informatiky, Provozně ekonomická fakulta, Mendelova zemědělská a lesnická univerzita v Brně, Zemědělská 1, 613 00 Brno, tel. +420 545 13 20 40 2 Ing. Hana Netrefová, Ph.D., e-mail: hanac@pef.mendelu.cz, Ústav informatiky, Provozně ekonomická fakulta, Mendelova zemědělská a lesnická univerzita v Brně, Zemědělská 1, 613 00 Brno, tel. +420 545 13 22 24

Důvody pro využití elearningových metod ve výuce elearningové opory se běžně využívají v rámci distančního vzdělávání, případně jako studijní doplněk prezenční výuky na úrovni klasických skript. Snahou našeho projektu bylo integrovat elearning do výuky silněji. Jsme k tomu nuceni mimo jiné také poměrně nízkou hodinovou dotací předmětů týkajících se programování. Na Provozně ekonomické fakultě MZLU v Brně jsou studenti informatických oborů nuceni absolvovat kurz základů objektově orientovaného návrhu (2h přednášek, 1h cvičení týdně) a kurz základů algoritmizace (2h přednášek, 2h cvičení). Na tyto kurzy navazují kurz programovacích technik (pokročilá algoritmizace, abstraktní datové struktury - také 2h přednášek a 2h cvičení) a kurzy konkrétních programovacích jazyků - Java a C++ (opět hodinová dotace 2, 2). Je zřejmé, že toto množství kontaktní výuky velmi limituje množtví probrané a procvičené látky. Zvláště v kurzu Základy objektově orientovaného návrhu jsou kvůli jedné hodině cvičení týdně problémy s prezentací problematiky na dostatečném množství příkladů. Tento problém samozřejmě doplňuje řada dalších běžných problémů jako jsou nárazové učení studentů těsně před zkouškou, z toho plynoucí nepřipravenost na cvičení, atp. Všechny tyto obtíže nás donutily zamyslet se na tím, jak kontaktní výuku upravit, aby se popsaná situace zlepšila. Integrace opor do výuky Základním krokem našeho projektu samozřejmě bylo vytvořit elearningové opory, které umožní studentům připomenout si probíranou látku při přípravě na hodiny a na zkoušky. Zvolili jsme metou vytvoření opory, která pokrývá kurzy základů OON, programovacího jazyka C++ a částečně i algoritmizace. Cílem bylo předvést studentům, že se jedná o vzájemně provázanou problematiku, tj. že kurzy na sebe logicky navazují. Pro zkušeného programátora (pedagoga) se takovýho problém může jevit triviální, ale z ohlasů studentů vyplývá, že často mají problém toto vzájemné provázání pochopit. Například kurzy algoritmizace a objektového návrhu chápou v některých případech těměř jako protiklady. Teprve v okamžiku, kdy je jim vysvětleno a ukázáno, že OON je o vytvoření struktury celého programu a algoritmizace řeší dílčí (technické) problémy, které jsou v praxi reprezentovány zpravidla různými metodami, začínají chápat smysluplnost kurzů. Samozřejmostí by měla být úzká návaznost specializovaných kurzů programovacích jazyků na tyto kurzy programátorského základu. I zde se nám integrace opor osvědčila,

protože pokročilejší studenti úvodních kurzů mají možnost nahlédnout na pokročilejší aplikace probírané látky a naopak studenti pokročilých kurzů se v případě nejasnosti mohou podívat na již probranou látku a nemusí problém složitě hledat na jiném místě. Vytvoření těchto opor byl výchozí krok pro náš projekt. Sebelepší opory však neřeší základní problém výuky - student elektronické (nebo jakékoliv jiné) opory ji otevře často teprve několik dní před zkouškou. Průběžná příprava My jsme se pokusili s tímto prolémem bojovat důsledným průběžným testováním. Student za průběžné testy mohl získat až 30 bodů. Maximum bodů za předmět je 100. Pro získání známky E postačuje 50 bodů. Testy tedy činí značnou část výsledné známky (spolu s půlsemestrální prací 55 bodů) a pro studenty je nepříjemné, pokud z nich získají málo bodů. Dovolím, si poznamenat, že veškeré testy mají zapnutou korekci hádání, tedy za špatnou odpověď jsou strhávány body. Vzhledem k obsahu testů je poměrně nepravděpodobné, že by byl student schopen dosáhnout výraznějšího bodového zisku pouhým hádáním (tento fakt dokazuje i řada studentů s body z testu v rozmezí 0 až 1). Už samotný fakt, že studenti nejméně jednou za 14 dní píší test nebo písemnou zkoušku, je poměrně motivuje k učení. Subjektivně pozorujeme zlepšení v přípravenosti studentů (častěji reagují na otázky, lepší celkové výsledky). Zde je nutné podotknout, že motivuje snaživé studenty. Existuje samozřejmě řada studentů, kteří se nepřipravují, v průběhu semestru nezískají prakticky žádné body a zkoušku také neudělají. Tito studenti však, podle našeho názoru, nepatří na vysokou školu a jejich neúspěch nelze být brán jako neúspěch výukové metody. Prostě nemají o studium zájem nebo na ně nemají schopnosti. Dalším efektem, kterého jsme dosáhli zavedením kurzů, je seznámení studentů s elektronickými oporami. Cvičné testy jsou přímo součástí opor za příslušnými kapitolami. Studenti tedy při přípravě na test musí opory projít. To je donutí zjistit, že existují, co obsahují, a řada z nich pochopí, že jim mohou být při přípravě na testy a zkoušky užitečné. Obdobného efektu se snažíme dosáhnout zadáním řešení příkladů ze cvičení do opor. Studenti jsou pak nuceni, pokud nebyli schopni příklad sami vyřešit, nalézt si jeho řešení v oporách.

Metodika vs. jazyk V poslední části článku bychom se rádi vrátili k samotnému textu elearningových opor. Zvláště části, která pokrývá kurz Programovací jazyk C++. Tvořit mírně pokročilý tutoriál k jazyku C++ je poměrně diskutabilní krok. Na Internetu je možné nalézt celou řadu poměrně komplexních průvodců jazykem C++, o knihách ani nemluvě. Přesto jsme se rozhodli vytvořit svůj vlastní text. Bylo to zejména z toho důvodu, že na Internetu často nalezneme kurzy objektového programování a kurzy C++, jen málokdy narazíme na kurz, který by rysy jazyka C++ vysvětloval na objektovém základě. To je poměrně škoda. Pokud bychom objektovost C++ odložili a věnovali se pouze syntaxi a minimalistickým příkladům používajícím výhradně procedury a funkce, popřeli bychom vlastně smysluplnost objektové architektury programů (ta je samozřejmě při vhodném použití smysluplná i u poměrně krátkých příkladů). Navíc velká část pokročilých nástrojů C++ (šablony, string, aj.) je přímo založena na objektovém základě a pokud jej nedůsledně vysvětlíme, mateme studenty v tom, co vlastně používají a jaký má nástroj vlastně smysl. Toto nepochopení je patrné v celé řadě Internetových tutoriálů, kdy autoři demonstrují nástroje na zcela nesmyslných příkladech. Vzorovým příkladem může být setrvalé zamlčování, že třída string je opravdu klasická třída a proměnné třídy string jsou její statické instance (to vysvětluje fakt, že u typu najednou můžeme volat metody). Obdobné příklady lze nalézt např. při používání static, const, atp. Závěr Popisovaná elearningová opora již byla využita ve výuce v zimním semestru 2007/2008. Většina studentů její existenci hodnotila kladně. Je to patrné z evaluací předmětu (které vyplňuje drtivá většina studentů) ve kterých jsou ve slovním hodnocení explicitní zmínky ve smyslu, že opora byla přínosem pro zvládnutí předmětu. V současné době nadále pracujeme na vylepšování opory. Snažíme se opravit, resp. nahradit příklady a pasáže, které studenti označili za méně srozumitelné. Průběžně také doplňujeme část opor Práce s pokročilými vývojovými nástroji, která obsahuje video tutoriály ve formátu Flash. Do ní se snažíme umístit nahrávky usnadňující studentům práci s různými vývojovými nástroji (Visual Paradigm, Microsoft Visual Studio, aj.). Také díky kladným ohlasům se snažíme

zpracovat podobnou oporu i pro kurzy zabývající se tématikou geografických informačních technologií. Literatura [1] ECKEL, B. Myslíme v jazyku C++ - knihovna zkušeného programátora, Brno: Grada, 2006, ISBN 80-247-9009-2, 556 stran. [2] ECKEL, B. Myslíme v jazyku C++ 2. díl - knihovna zkušeného programátora, Brno: Grada, 2006, ISBN 80-247-1015-3, 556 stran. [3] KEOGH, J. GIANNIN, M. OOP Objektově orientované programování bez předchozích znalostí - Průvodce pro samouky, 2006, Brno: CP Books, ISBN 80-251-0973-9, 224 stran. [4] KOLEKTIV AUTORŮ Objektově orientované programování v jazyku C++ (Elektronická opora pro předměty s týkající se programování v C++) [on-line], citováno 2008-01-14, adresa: http://is.mendelu.cz/eknihovna [5] KOLEKTIV AUTORŮ Geografické informační systémy (Elektronická opora pro předměty z oblasti GIT [on-line], citováno: 2008-01-14, adresa: http://is.mendelu.cz/eknihovna Tato práce vznikla na základě grantu FRVŠ FR170051 293/F5/d a za podpory organizátora konference.

Příloha: obsah elearningového kurzu Objektově orientované programování v jazyku C++ Obsah Cíl kurzu Návaznost Motivace Poučení Úvod Základy jazyka C++ Historie a vývoj jazyka C++ Překlad a základy jazyka Řídící struktury Funkce a rekurze Vstupní a výstupní proudy Objektově orientované programování Základní pojmy a koncepty OOP Test na základní koncepty C++ Konstruktor, destruktor Test na práci s metodami a konstuktory/destruktory Vztahy Asociace Test na modelování v UML se zaměřením na vazby Agregace Dědičnost Test na dědění atributů a metod Příklady Pokročilé techniky OON Složitější případy dědičnosti a polymorfismus Test na vazby s přihlédnutím ke kompozici a polymorfismu Návrhové vzory Shrnutí Příklady Práce s pokročilými vývojovými nástroji Co v této kapitole naleznete Animace: Visual Paradigm - vytvoření diagramu tříd a základní třídy Animace: Visual Paradigm - tvorba a nastavení základním vazeb v diagramu tříd Animace: Visual Paradigm - generování kódu z diagramu tříd a rekonstrukce diagramu tříd z kódu Práce s řetězci, soubory a výjimky Soubory pomocí proudů Práce s řetězci - třída String Výjimky Příklady na procvičení problematiky Knihovna STL a vybrané nástroje OOP Datové kontejnery Algoritmy Vybrané nástroje OOP

Příklady na procvičení problematiky Grafické knihovny OpenGL, DirectX, XNA a ti další... OpenGL Příklady na procvičení problematiky Závěr Slovníček pojmů