Journal of Technology and Information Education Časopis pro technickou a informační výchovu 1/2013, Volume5, Issue 1 ISSN 1803-537X http://jtie.upol.cz 58 MODERN APPROACHES TO TEACHING PROGRAMMING Rostislav FOJTÍK Abstract: The article bases from practical experience of the author teaching programming on secondary and tertiary level of education. The aim is to show suitable methods in teaching of object- oriented programming. The results of the surveys in primary and secondary schools, we can say that the teaching of programming and algorithms are not sufficiently exploited. The author tries to find most frequent problems of this teaching and at the same time its subjects matter and methods in generally use and present some suggestions of possible solution. Key words: object-first, object-oriented programming, teaching programming. MODERNÍ PŘÍSTUPY K VÝUCE PROGRAMOVÁNÍ Resumé: Cílem příspěvku je představit vhodné moderní způsoby výuky programování. Podle výsledků provedených průzkumů na základních a středních školách je možné konstatovat, že výuka programování a algoritmizace není dostatečně využívaná. Případně se používají méně vhodné postupy a metodiky pro výuku programování. Na základě provedených experimentů ukazuje příspěvek možnosti výuky programování metodikou object-first, její výhody i úskalí. Výběr příhodných postupů při výuce a vhodných vývojových nástrojů. Klíčová slova: object-first, objektově orientované programování, výuka programování. 1 Úvod Výuka algoritmizace a programování prochází v současné době velkými změnami, které se snaží reagovat na dynamický rozvoj softwarového průmyslu. Dříve využívané metodické postupy, modely vývoje či programovací jazyky nedostačují aktuálním potřebám. Učitelé se mnohdy ptají, který programovací jazyk je vhodný pro výuku programování. První otázka při vytváření kurzu programování by se však neměla týkat programovacího jazyka, ale výběru vhodného paradigmatu a cíle kurzu. Je-li cílem naučit studenty vytvářet algoritmy a logicky přemýšlet, jeví se jako nejvhodnější mikrosvěty, například Karel nebo Logo. Tyto nástroje jsou přehledné, jednoduché a velmi názorné. Studenti vidí pomocí grafického znázornění výsledky svého postupu. Nástroje nevyžadují dlouhou fázi učení pravidel jazyka a uživatele se mohou skutečně zaměřit na tvorbu algoritmů a jednoduchých programů. Neztrácejí se ve složitostech a konkrétních detailech jazyka. Je-li však cílem výukového kurzu naučit studenty programovat a to tak, aby se jejich znalosti a dovednosti daly využít následně i v praxi, je potřeba nejprve vybrat vhodné paradigma. V současné době je nejrozšířenějším objektově orientovaný přístup. Nové přístupy v oblasti programování však vyžadují rovněž nové metodické postupy ve výuce. [7] 2 Jak se v současnosti vyučuje programování? Rámcový vzdělávací program pro gymnázia obsahuje jen velmi obecně popsané kompetence v oblasti algoritmizace a programování. V dokumentu se nacházejí pouze pojmy algoritmus, zápis algoritmů, úvod do programování. [8] Podíváme-li se do požadavků potřebných pro složení společné části maturitní zkoušky v oblasti informatiky, zjistíme, že v základní úrovní se od žáků očekává jen schopnost vysvětlení pojmu algoritmus, jeho základní vlastnosti a algoritmizovat jednoduchou úlohu. Nejedná se tedy o znalosti a dovednosti v oblasti programování, ale pouhé algoritmizace. V takovém případě není nutné vyučovat programování pomocí programovacích jazyků, ale jde využít například mikrosvěty. U vyšší úrovně maturitní zkoušky již musí žák prokázat znalosti a dovednosti skutečného programování a jedním z požadavků je i znalost základů objektově orientovaného programování. [4][5] Výuka programování na mnoha středních školách však neprobíhá podle současných požadavků. Velká část pedagogů vyučuje stejnými nebo velmi podobnými přístupy jako byli učeni sami v době svého studia. Problém je, že současné nároky na vývoj programů se značně změnily. Dříve nejběžnější procedurální RESEARCH ARTICLES