int21h

Pascal - Tomáš Hála

recenze na učebnici

Psát recenze na učebnice je ošidné.Učebnice jsou totiž určené především pro začátečníky, ale recenzent je obvykle odborník a kvůli tomu se jeho pohled nemusí shodovat s pohledem čtenáře, pro kterého je učebnice určena. Toto dílko nese podtitul Učebnice pro střední školy a tímto je jasně vymezeno, jaké je cílová skupina knihy.
Hlavním požadavkem by proto měla být srozumitelnost, vysvětlení úplných základů a pěkné grafické zpracování.
Začnu tím posledním. Grafické zpracování je pěkné. Kvalitní papír, elegantní písmo a přehledné členění. Jistě - to by mělo být samo sebou, ale každý známe jistě příklad, kdy špatné grafické zpracování sráží dojem z knihy dolů. Velmi tím trpí třeba kniha Pascal pro zelenáče od Pavla Satrapy.
Hálova učebnice je pojatá v klasickém duchu a je určená pro výuku ve školách. Studentům tedy s látkou bude pomáhat učitel. To je zásadní rozdíl oproti Satrapově knize, která je určená spíše pro samouky. Styl knihy je proto odlišný.
V první kapitole jsou stručně popsané metody grafického znázornění algoritmů a syntaktických grafů. Je to samozřejmě naprosto nesmyslné, ale toto téma zabírá jen několik stránek, a proto to můžeme považovat za jakýsi neškodný ústřel.
V dalších kapitolách jsou postupně vysvětlovány všechny rysy jazyka pascal. Už při vysvětlování datových typů zjišťujeme, že výklad je dosti detailní, ale těžko srozumitelný. Autor nerozlišuje, jde-li o důležitý prvek jazyka, či je-li daný rys spíše málo používaný relikt. Proto věnuje zbytečně mnoho slov exponenciálnímu zápisu desetinných čísel, výčtovým typům a dalším málo používaným konstrukcím. Jak často používáte takovéto postupy?
type  dny  =  (pondeli,  utery,  streda,  ctvrtek, patek, sobota, nedele);
      sluzby = set of dny;


var dnesni_den:dny;
    rozpis_sluzeb:sluzby;
...
begin
...
dnesni_den:=succ(dnesni_den);
...
if dnesni_den in sluzby then ...  
Formálně tomu samozřejmě nelze nic vytknout, ale víme, že v praxi se množiny a uživatelské výčtové typy používají jenom málo. Učebnice je navíc určena zejména pro středoškoláky a prváky na VŠ a víme, že výuka pascalu tam probíhá jenom rok a nebo dva a pak studenti přecházejí na jyzyk C a v céčku takové konstrukce nejsou.
Podobně nepovažuji za šťastné, že ve výkladu o typech record hned po základech čteme o variantních záznamech. Přestože je to zajímavý rys jazyka pascal, který má své opodstatnění, to rozhodně není problematika pro začátečníky. Lepší přístup by podle mě bylo udělat výklad stručnější a praktičtější a takovéto fígle dát do samostatné kapitoly Pokročilé techniky
Výklad je zkrátka hrozně mechanický a poněkud nudný.
S tím souvisí i další moje velká výtka, a to, že téměř chybí praktické příklady a ukázky zdrojových kódů. Respektive, ony tam jsou, ale až v pozdějších kapitolách. Myslím, že nejen mně je bližší uvést jednoduchý program co nejdříve, pokud možno v první kapitole, vysvětlit jak pracuje a pak ho postupně rozvíjet.
Nikdo samozřejmě čtenáře nenutí číst učebnici postupně od stránky 1 do stránky N, může číst napřeskáčku, ale to neřeší problém, že teoretický výklad a praktické ukázky jsou odděleně.
Tímto se stává kniha jen obtížně použitelná pro samouky. Přirozený způsob učení je zkoumat cizí programy a přemýšlet jak fungují. Tato kniha naopak nutí k biflování. Jak potom čtenáře pro programování nadchnout? A občas, když už se objeví nějaký program, tak vypadá i takhle:
var b:byte;
    w:word;
begin
w:=50;
b:=byte(w);
w:=500;
b:=byte(w);
end.  
Takovéto programy se nazývají černé díry. Spolykají nějaké údaje, něco s nimi udělají, ale nic nevypustí.
Samozřejmě chybí Writeln.

Tato učebnice má zkrátká nemalé didaktické nedostatky a je psaná poněkud zastaralou formou. To ale může naopak vyhovovat programátorovi, který už ovládá nějaký jiný jazyk, třeba C a chce přejít na pascal. Někomu, kdo už programovat umí a chce se jen přeškolit na pascal. Žádný prvek jazyka totiž není opomenut. V kapitolách ke konci knihy najdeme výklad o práci se soubory, ukazatelích, objektech, nechybí stručný úvod do dynamických struktur jako spojový seznam nebo binární strom. Zase ale platí, že jsou popsány poněkud mechanicky. Začátečník by potřeboval obsáhlejší popis základů, machr by ocenil konkrétní algoritmy. Je ale dobře, že se tato témata v knize objevila alespoň v této podobě.
Diskutabilní je také úzké zaměření na Turbo pascal. Příjemně mě překvapilo, že se autor věnoval technickým omezením pascalu (64KB limity) a vysvětluje i direktivy kompilátoru. Jenže co modernější překladače? Mohl se alespoň zmínit o Freepascalu. Namísto toho se často odvolává na původní pascal Niklause Wirtha, což nemá smysl, protože je podstatné, co nabízejí konkrétní překladače, ne co podporuje abstraktní standard.
Škoda, že autor opomněl popis standardních jednotek. Chápu, že unity Graph, Overlay nebo Printer jsou poněkud zastaralé, ale je chyba, že chybí vysvětlení jednotky DOS.
Funkce FindFirst, FindNext, GetTime a další jsou natolik důležité, že o nich pojednáno být mělo.
Autor se asi bál, že by tím zatemnil podstatu jazyka a syntaxi, ale jsem přesvědčen, že zbytečně. Kdyby se autor odhodlal k používání funkcí z různých unitů, tak by vysvětlující příklady byly mnohem víc ze života. Bez nich vypadají hrozně suše. Moje první programy byly různé grafické geometrické hříčky. Vždyť co může být názornější vysvětlení cyklu než program, který nakreslí soustředné kružnice?

Shrnutí


klady
grafické zpracování
preciznost výkladu
pokrytí všech aspektů jazyka i většiny rozšíření Turbo pascalu*
zmínka o objektovém programování
orientace na prostředí DOSu

zápory
komplikovanost textu
nezáživnost
špatně zvolené příklady
málo příkladů
obtížně použitelné pro samouky


*chybí asm, mem, move a port

7/10




Učebnice pascalu
Tomáš Hála

Copyright (c) 2002 Computer Press, vydání druhé
ISBN 80-7226-733-7
Prodejní kód: K0796
Doporučená cena: 197Kč

2007-02-05 | Laaca
Datum: 5.7.2007 15:58
Od: BOby
Titulek: Mám ji doma
A jsem velmi spokojený. Před touhle jsem četl i některé ty starší (<91) a nedá se to srovnat. jen nevím, proč se v poslední kapitole soutředí jenom na DOS, ale to mu odpouštím
Reklamy: