přejít na obsah přejít na navigaci

Linux E X P R E S, Recenze knihy Umění programování 2: Seminumerické algoritmy

Recenze knihy Umění programování 2: Seminumerické algoritmy

umeni_programovani_2.jpg

Mnohasvazkové odborné dílo Umění programování (The Art of Computer Programming) je jednou z vůbec nejslavnějších učebnic informatiky. Recenzovaný výtisk je autorizovaným českým překladem třetího vydání druhého dílu z roku 1998.


Kořeny knihy sahají do druhé poloviny šedesátých let. Jednotlivá vydání jsou postupně vylepšována, přesto jádro učebnice zůstává nezměněné. Umění programování se totiž soustředí na „nadčasovou“ teorii a vůbec se nezabývá aktuálními technologiemi nebo zvyklostmi v programátorské praxi. Tím se odlišuje od běžných učebnic pro vývojáře. V současnosti jsou z Umění programování plně dokončeny pouze první tři svazky Základní algoritmy, Seminumerické algoritmy, Třídění a vyhledávání. Do češtiny byly přeloženy zatím jen první dva díly. Následující čtyři díly (Kombinatorické algoritmy, Syntaktická analýza, Teorie bezkontextových jazyků, Techniky kompilátorů) se nacházejí v různém stupni rozpracování.

Originální verzi vydalo nakladatelství Addison-Wesley, které je proslavené publikací podobně zaměřených studijních materiálů (např. Concrete Mathematics: A Foundation for Computer Science). Nejedná se přímo o odborné vědecké publikace, které známe například z produkce nakladatelství Springer Verlag. Na druhou stranu po dokončení bude série Umění programování natolik obsáhlá, že čtenář, který nastuduje všechny díly a poctivě si promyslí všechna cvičení, získá velmi solidní teoretický základ. Takto nabyté dovednosti a znalosti výrazně překračují standard vysokoškolských studijních oborů zaměřených na informatiku.

Titulní strana knihy Titulní strana knihy

Obsah knihy Seminumerické algoritmy

Podle předmluvy odkazuje adjektivum „seminumerický“ v názvu knihy ke skutečnosti, že probíraná látka se nachází na pomezí numerických a symbolických výpočtů. Knihu tvoří dvě kapitoly. První, kratší kapitola Náhodná čísla se zabývá definováním základních pojmů, rozborem pojmu náhodná posloupnost, metodami generování (pseudo)náhodné posloupnosti, metodami generování různých náhodných rozdělení a statistickými testy náhodnosti posloupnosti. Druhá rozsáhlejší kapitola Aritmetika zkoumá reprezentaci čísla v různých pozičních číselných soustavách, algoritmy pro numerické výpočty ve vysoké přesnosti, základní algebraické struktury, modulární aritmetiku, aplikace Čínské zbytkové věty, dělitelnost, vlastnosti prvočísel, testy prvočíselnosti, aritmetiku polynomů, algoritmy pro efektivní výpočty hodnot polynomů v daném bodě, bilineární formy, práci s nekonečnými mocninnými řadami. Kniha opomíjí příliš teoretické partie aritmetiky spadající do teorie složitosti a vypočítatelnosti. Kniha například nerozebírá zásadní větu, že řešitelnost celočíselné (diofantické) rovnice není algoritmicky rozhodnutelná.

Ke každé podkapitole je připojeno množství navazujících cvičení. Předem tak víme, že v řešení se použijí tvrzení předcházející podkapitoly, čímž se mnohdy výrazně snižuje obtížnost. V knize se setkáme s implementačními, numerickými, důkazovými, diskusními a dalšími typy úloh. Jako ilustraci rozmanitosti úloh uvádím zkrácená a místy přeformulovaná znění několika zadání:

  • Do jaké podoby se zredukuje spektrální test v jedné dimenzi?

  • Napište program, který náhodně zamíchá balíček karet, sehraje některou z her solitérového typu a analyzuje výsledek hry. Diskutujte kumulovanou statistiku mnoha výsledků těchto simulací.

  • V pořadu Myslící stroj byly sehrány scénky podle scénáře náhodně vygenerovaného počítačem. V létě 1952 Christopher Strachey s pomocí náhodného generátu vytvořil následující dopis. Čtenáře jistě napadne mnoho myšlenek, jak „naučit“ počítač tvůrčímu psaní; a právě to je cílem tohoto cvičení.

  • Jaký je úplný rozklad polynomu x5 + x4 + x2 + x + 2 nad polem racionálních čísel?

  • Dokažte, že náhodný primitivní polynom nad celými čísly je „skoro vždy“ irreducibilní.

  • Potřebujete bez počítače zvolit jednu náhodnou desítkovou číslici. Diskutujte, která z následujících metod je nejvhodnější. a) Otevřeme telefonní seznam a vezmeme první číslici z prvního čísla na stránce. ... h) Do dostihů je přihlášeno deset koní, které neznáte. Před závodem koně očíslujeme a po závodě vybereme číslici vítěze.

Cvičení jsou označena čísly od 0 do 50 podle předpokládané obtížnosti. Dále mohou být cvičení označena písmenem M (matematicky orientované) a VM (vyžaduje „vyšší matematiku“). Výše uvedená cvičení jsou označena jako M10, 40, 46, M25, VM30 a 20. V závěru výtisku se bezmála 200 stránek věnuje podrobnému řešení všech cvičení.

Závěrečné poznámky

Autor Donald Knuth je známým počítačovým vědcem, který byl vyznamenán mimo jiné Turingovou cenou. Donald Knuth se věnoval i typografii. Pro účely sazby druhého vydání Umění programování začal vyvíjet systém TeX, který byl vůbec prvním pokročilým typografickým softwarem. V současné době je sada maker LaTeX pro systém TeX nejpoužívanějším řešením pro sazbu odborných publikací.

Druhý díl nevyžaduje znalost prvního dílu, a tudíž může být rozumné si zakoupit pouze druhý díl. Pro účely výkladu byly Donaldem Knutem navrženy speciální stroje MIX a MMIX, přičemž jejich popis je uveden pouze v prvním díle série a na několika místech druhého dílu jsou předvedeny zdrojové kódy pro MIX. Anglickou dokumentaci těchto počítačů naleznete volně na internetu.

Kniha má 776 stran, formát je 167 × 225 mm, kniha je vázána a má laminovaný potah desek. Těmito vlastnostmi vzhledově připomíná například Matematické vzorce od Hanse-Jochena Bartsche. Běžná cena knihy je 990 Kč.

Umění programování od Donalda Knutha nemá nic společného s knihou Umění programování v Unixu od Erica Raymonda.

Pět argumentů pro koupi knihy

  • V knize naleznete stravitelným způsobem vysvětlenou matematiku se zajímavými úlohami.

  • Získané znalosti využijete při psaní numerického softwaru.

  • Kniha je ukázkou „vysoké“ typografie u rozsáhlého, složitě strukturovaného textu s množstvím matematických zápisů. Umění programování lze studovat jako ukázku, jak má správně vypadat matematická sazba.

  • Kniha odkazuje na vědecké publikace a články. U většiny výsledků je uveden autor a původní vědecký článek.

  • Jde o jednu z reprezentativních publikací, která má velký historický význam. U knižní řady Umění programování se dá mluvit o sběratelské hodnotě.

Nahoru

Příspěvky

Recenze knihy Umění programování 2: Seminumerické algoritmy
anonym 21. 10. 2011, 09:00:54
Odpovědět  Odkaz 
Nemohu si odpustit silne ironicky komentar ...

Napsat a hlavne publikovat takto minimalisticky pojatou recenzi o tak zakladni knize z oblasti computer science mi prijde skoro jako drzost.

Autor recenze patrne vubec netusi co dela...!!! Sluselo by mu mnohem vice pokory a ochoty zalozit svou nutkavou potrebu po sebeprezentaci na solidnejsich zakladech nez jen na schopnosti vyplodit par nic nerikajich odstavcu textu.
Re: Recenze knihy Umění programování 2: Seminumerické algoritmy
anonym 21. 10. 2011, 09:08:50
Odpovědět  Odkaz 
Po zhlednuti stranek autora: http://frantisekbartik.cz/ jsem pochopil, ze autor teto vskutni fantaskni recenze je opravdu unikatni samorost. Naprosta perla je ovsem tato cast jeho popisu sebe sama (http://frantisekbartik.cz/nabidka.html):

Cituji:
=========================================
Možnosti spolupráce
Jsem velmi flexibilní. Co mohu dělat?
...
...
v případě dohody cokoli jiného
=========================================
Re: Re: Recenze knihy Umění programování 2: Seminumerické algoritmy
anonym 21. 10. 2011, 09:30:36
Odpovědět  Odkaz 
teto vskutni fantaskni = teto vskutku fantaskni
Miroslav Hrončok Re: Recenze knihy Umění programování 2: Seminumerické algoritmy
Miro Hrončok 21. 10. 2011, 13:59:33
Odpovědět  Odkaz 
Co konkrétně vám vadí? Že je recenze knihy příliš krátká? Je to běžná (ba dokonce nadprůměrná) délka recenze knihy, běžná délka článků. Důležitost knihy nemá na délku recenze zásadní vliv.
Andrej Pavelka Recenze knihy Umění programování 2: Seminumerické algoritmy
Andrej Pavelka 21. 10. 2011, 13:15:23
Odpovědět  Odkaz 
Mám prvý diel série a zatiaľ som kus poštudoval prvú matematicky zameranú kapitolu, ktorá sa volá "Základné princípy". Nemám čas sa tej knihe stále venovať, ale "papám ju po malých kúskoch" :-) Nedám na tú knižku dopustiť, veľmi ma oslovila. Matematické postupy, ktoré sú tam rozoberané, po ich naštudovaní programujem v jazyku C++. Po napísaní algoritmu si dám sledovať premenné, a sledujem, ako sa menia ich hodnoty. Výborne sa mi to osvedčilo ako skvelý spôsob na memorovanie matematického postupu a zároveň na precvičovanie programovania. Jedného dňa musím mať všetky zväzky. Je to výnimočné dielo. :-)
Recenze knihy Umění programování 2: Seminumerické algoritmy
osel 22. 10. 2011, 12:09:54
Odpovědět  Odkaz 
"Takto nabyté dovednosti a znalosti výrazně překračují standard vysokoškolských studijních oborů zaměřených na informatiku."

Nesmysl. Já si naopak myslím, že kniha je napsaná tak aby byla stravitelná pro lidi bez znalostí vysokoškolské matematiky. A to si myslím, že je na knize to nejlepší, protože díky tomu se čte sama.
Re: Recenze knihy Umění programování 2: Seminumerické algoritmy
Martin 22. 10. 2011, 14:44:37
Odpovědět  Odkaz 
Bohuzel nemate pravdu. Kniha imho prekracuje rozsah bakalarskeho studia informatiky.
Ivan Bíbr Re: Re: Recenze knihy Umění programování 2: Seminumerické algoritmy
bibri 22. 10. 2011, 15:18:46
Odpovědět  Odkaz 
Spíš záleží na tom jakého a kde...
František Bártík Re: Recenze knihy Umění programování 2: Seminumerické algoritmy
František Bártík 22. 10. 2011, 19:07:16
Odpovědět  Odkaz 
re osel : Špatně jsme si rozuměli. V recenzi jsem se nevyjadřoval k předpokladům pro čtení knihy. Osobně si myslím, že kniha je dobře stravitelná pro každého, kdo složil maturitu z matematiky.

V recenzi jsem porovnával rozsah a hloubku matematiky probíraných ve studijních oborech zaměřených na informatiku a výkladu v knize. Látka v knize jednoznačně přesahuje znalosti požadované od absolventů informatických oborů. Matematika se takto podrobně na vysokých školách (pochopitelně myslím studium informatiky, ne studium matematiky) zkrátka neprobírá.
Re: Re: Recenze knihy Umění programování 2: Seminumerické algoritmy
Miloslav Ponkrác 23. 10. 2011, 02:17:29
Odpovědět  Odkaz 
Vystudoval jsem technickou vysokou školu před 15 lety a tehdy kniha nepřekračovala znalosti, které člověk získal na vysoké škole a musel znát. I proto tuto knihu doma nevlastním, protože je de facto pro mě zbytečná.

Pokud dnes tato kniha dá lidem více, než získají studiem informatiky, je to důkaz, jak klesla úroveň vysokých škol. A jak se zjednodušily požadavky na znalosti.
František Bártík Re: Re: Re: Recenze knihy Umění programování 2: Seminumerické algoritmy
František Bártík 23. 10. 2011, 07:06:25
Odpovědět  Odkaz 
Pozor, možná nemluvíte o recenzovaném třetím vydání druhého dílu? Před patnácti lety nebylo recenzované třetí rozšířené vydání druhého dílu ještě ani napsáno.
Re: Re: Re: Re: Recenze knihy Umění programování 2: Seminumerické algoritmy
Miloslav Ponkrác 23. 10. 2011, 13:00:31
Odpovědět  Odkaz 
Mluvím. Protože letos jsem si všiml, že jsou tyto knihy v českém překladu v knihkupectvích. Tak jsem je prolistoval a nekoupil.

Jednak by mi oproti škole nic nového nedala, ba právě naopak. Škola mě toho naučila více. Jednak si Knuth zbytečně hraje s různými vymyšleninami nástrojů, které nejsou pro algoritmy podstatné, jen natahují délku knihy.
Re: Re: Re: Recenze knihy Umění programování 2: Seminumerické algoritmy
Karol 13. 11. 2011, 18:15:51
Odpovědět  Odkaz 
Tak ja mel VS pred 12 lety, a rici, ze toto je neco co se probiralo v takovem rozsahu na VS? To si snad delate srandu? Nemluvim o matematice kde toho bylo 4 roky. Od vseho neco. Toto je jenom matematika pro informatiky a v tsakovem rozsahu a do takopve hloubky to byl mozna jeden obro na masarne, ci matematickem inzenyrstvi... Ale ostatni obory zamerene na praktickou informatiku nemeli takto do hloubky probrano ani omylem... Takze mozna jste ten co mel tuto specializovanou informatiku od 1-5 rocniku na masarne, ale to byli obory co vytvareli vedce co vytvari nove algoritmy ne pro inzenyri co vytvori pomoci techto algoritmu prakticke celky...

Pokud nejste absolvovent techto specialnich oboru pak umyslne nerikate pravdu, ze takto do hloubky se to ucilo pred 15 lety.
Recenze knihy Umění programování 2: Seminumerické algoritmy
Miloslav Ponkrác 23. 10. 2011, 02:13:30
Odpovědět  Odkaz 
Mě se naopak tahle recenze líbila. Je v ní v zásadě všechno podstatné, co objektivně běžný čtenář potřebuje pro informaci o knize.

Jasně, že neuspokojí fanatiky do typografie, kteří potřebují zdůraznit sazbu knihy. A jiní, nemajíce argumenty raději rovnou začli s očerňováním autora, protože nic jiného nemají.

Naopak si myslím, že z mého pohledu je to jedna z lepších recenzí. A dá se podle ní rozhodnout. Uznávám, že tam chybí obvyklé chvalozpěvy na to a ono, ideálně na sazbu, autora, proslulost díla a další výplňovou nastavovací vatu bez informační hodnoty, které by text natáhly na několikanásobek.

Já tu knihu sice znám, mimochodem se mi blbě čte, daleko čitelnější pro mě jsou klasické sazby provedené neKnuthem – můj osobní názor.

Ale kdybych tu knihu neznal, a chtěl si o ní udělat obrázek zda jí koupit, tak podle této recenze jsem schopen se rozhodnout, zda je pro mě užitečná či nikoli.

Osobně se mi recenze líbí.

Odpovědět

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Top články z OpenOffice.cz

František Bártík

Soustředím se na problémy, které vyžadují kreativní přístup anebo využití teoretických znalostí. Orientuji se na svobodná řešení a baví mě učit se nové věci. Neváhejte a oslovte mě s Vaším zajímavým pracovním zadáním.


  • Distribuce: debian a odvozená distra
  • Grafické prostředí: GNOME

| blog