XCHAOS: Tyhle požadavky jsou všechny krásné, ale:
K tomu, aby škola vyplivla člověka, co nebude psát SQL balast, je podle mě (a zřejmě i podle jiných - páč tak se to dělá třeba u nás) potřeba 3 kurzů:
1. základní kurz databází - je potřeba naučit ty lidi relačně myslet. Ačkoliv se to může zdát jako snadná záležitost, není (moje červená propiska je mi svědkem). Sem se optimalizace tabulek hodí jen částečně. Např. redundance se tu záměrně tají, protože chceme, aby plodili "krásná" schémata.
2. kurz o datových strukturách. Asi je fajn jim říct, že pro rychlé hledání jsou nějaké ty stromy nebo hashmapy. Ano, můžeme jim zatajit, jak to funguje a říct, že join bude trvat asi tolik a tolik, a tím nutnost tohoto kurzu odpadne. Ale jelikož je to fundamentální základ, tak ten kurz prostě je.
3. konečně něco o databázích - exekuční plány, ceny dotazů, kolik mě stojí tyhle 3 joiny nad miliónovou tabulkou se selekcí nad jednou z nich.
No, bohužel výuka IT není jen o DB (i hardwaráři maj ty svoje hračky), tak se ten 3., nejdůležitější předmět přirozeně koná až na mgr. studiu a jen na jednou oboru. Diferenciace na úrovni bakalářů sice existuje, ale stojí dost peněz (hodně předmětů pro málo lidí), takže je lepší mít hromadu "všeobecně prospěšných" předmětů.
Regexpy nejsou nic složitého, jsou to jen 3 operace, zbytek jsou zkratky. Složité je na nich akorát to, že se někteří prostě snaží je napasovat na jakýkoliv problém :-) Nemyslím si, že tohle se má nějak učit na VŠ.
U nás jsme se věnovali teďko regexpům "prakticky" v jedné přednášce. Nicméně důležité je pochopit sílu regexpů, to že kromě těch 3 operací jsou zbytek jen zkratky se pak dá vysvětlit velmi rychle.