Main»Vyuka Programovani

Vyuka Programovani

Výuka programování

Na této stránce jsou odkazy na zajímavé články a Internetové stránky týkající se vlastního procesu výuky programování se zaměřením na výuku na vysokých školách. Některé odkazy směřují do databáze ACM, do které má VŠE zaplacen přístup - při přístupu ze ostatních sítí nemusí být tyto dokumenty dostupné.

1. Computing Curricula

Významné profesní organizace již mnoho let zpracovávají doporučení minimálního znalostního základu jednotlivých profesí v oblasti IS/IT - minimální znalosti absolventů obvykle bakalářského studia. Výsledkem jejich práce jsou následující dokumenty:

Computing Curricula 2004 - tento materiál obsahuje základní přehled jednotlivých profesí/bakalářských studijních programů v oblasti IS/IT: Computer Engineering, Computer Science, Information Systems, Information Technology a Software Engineering. Tento dokument zatím není dokončen.

IS 2002 - Model Curriculum and Guidelines for Undergraduate Degree Programs in Information Systems. Materiál popisuje minimální požadavky na absolventy bakalářského programu Information Systems, který se nejvíce blíží obsahu oboru Informatika na VŠE.

MSIS 2000 - Model Curriculum and Guidelines for Graduate Degree Programs in Information Systems. Materiál obsahuje doporučení pro obsah inženýrského studia oboru Information Systems.

Computing Curricula 2001 Computer Science - tento dokument popisuje obor Computer Science. Součástí je diskuse o výuce úvodních kursů programování - podrobně popisuje výhody a nevýhody následujících variant úvodních kursů programování:

  1. Začít procedurálním programováním (Imperative-first)
  2. Začínat výukou objektů (Object-first)
  3. Používat funkcionální programovací jazyk - např. Scheme (Functional-first)
  4. Úvodní přehledový kurs disciplíny (Breadth-first)
  5. Začít výukou algoritmů bez počítače (Algorithms-first)
  6. Začít technickým popisem počítačů (Hardware-first)

Autoři dokumentu doporučují začít výukou objektů.

Computing Curriculum - Software Engineering - v tomto dokumentu z roku 2004 jsou popsány minimální znalosti a povinné předměty oboru absolventu bakalářského studia Software Engineering.

Výše uvedené dokumenty můžete stáhnout též ze stránek jednotlivých organizací podílejících se na jejich vytvoření, např. ze stránek ACM: Association for Computer Machinery.

2. Vybrané statě a příspěvky na konferencích týkající se úvodních kursů programování

Přístup object-first

Michael Kölling je jedním z autorů výukového vývojového prostředí BlueJ a je též autorem/spoluautorem několika zajímavých příspěvků o výuce objektově orientovaného programování v Javě. Doporučuji pozornosti následující:

Zajímavé jsou i příspěvky, které popisují použití různých grafických prostředí pro výuku pochopení objektů v úvodních týdnech výuky programovaní, na které teprve poté navazuje výuka programovacího jazyka:

Přístup model-first

V poslední době se na konferencích věnovaných výuce programování objevují zajímavé příspěvky prosazující začínat výuku analýzou a návrhem (tj. modelováním).

Přístup test-first

Zvyšování významu testování při tvorbě softwaru (viz např. extrémní programování) se projevuje i v názorech na význam testů pro vzdělávání programátorů. Příkladem tohoto trendu může být i začlenění velmi dobré grafické podpory do BlueJ. Jedním z propagátorů výuky testy řízeného vývoje již v prvních úkolech úvodních kursů programování je S. H. Edwards:

Výuka programování ve dvojicích (Paired programming)

Pod vlivem extrémního programování část vyučujících zkouší při výuce programování posadit k jednomu počítači dva studenty. Dle příznivců tohoto přístupu to má následující výhody:

  • studenti se nerozptylují ničím jiným (např. procházením webu, čtením pošty),
  • studenti mají mnohem menší ostych se zeptat druhého studenta než vyučujícího,
  • studenti mají lepší možnost porovnávat své schopnosti se schopnostmi jiných studentů,

3. Další odkazy

P. Norvig ve svém článku Teach Yourself Programming in Ten Years reaguje na knihy typu "Naučte se Javu za 7 dní".

Éric Lévénez zobrazil na časové ose historii programovacích jazyků.

Jak správně bastlit software.

Více konfigurátorem než programátorem