From Mathematics to Generic Programming

Evo jedne zanimljive preporuke za čitanje kolege Eugene Grebenyuk-a, stručnjaka za funkcionalno programiranje i baze podataka iz Novosibirska. Ako ste zainteresovani za generičko programiranje u programskom jezuku C++, ili vas jednostavno interesuje istorija i filozofija matematike kao i veza sa programiranjem, ili preciznije computer science From From Mathematics to Generic je pravo štivo za vas. Poželjno je nešto formalnog matematičkog obrazovanja za lakše praćenje.

Teško je prepričati sadržaj, zato što se u knjizi prepliće više raznih tema: razvoj naučne misli, teorije brojeva, programiranje i primene matematike u programiranju. Iako ove teme deluju dosta široko autori ostaju na meti. Potrebno je malo više koncentracije, međutim uloženi trud se isplati, nagrada je razumevanje teme na višem nivou.

Jedan od delova koji mi se naročito dopao je pojašnjenje procesa razmišljanja istraživača matematičara (naučnika?) koji stvara, otkriva nove rezultate ili čak i oblasti nauke, imam utisak da se na univerzitetima i u literaturi ta tema retko pominje. Evo izvoda iz knjige koji govori o tome:

However, it’s important to remember that historically, mathematicians did not really start with axioms and derive theorems from them. The axioms were proposed only after the interrelationships between the theorems were well understood and the assumptions underlying them identified. The same process holds for programming: designing good abstractions requires examining a large number of real algorithms and understanding their interrelationships.

Izdvojio bih još nekoliko obrađenih tema.

Atinska škola, Rafaela Santija

Atinska škola, Rafaela Santija

Istorija

Sažeto i jasno su obrađeni delovi istorije matematike ponajviše vezani za teoriju brojeva od stare grčke do Peanovog sistema aksioma. Izdvojio bih poređenje pristupa učitelja Platona, koji je teoretičar, zainteresovan za idealne predstave pojmova koje proučava i učenika Aristotela koji je preteča empiričara, zainteresovaniji za proučavanje sveta onakvog kakav jeste.

GCD

Naravno autori idu dalje, tako da posle formalizacije brojeva i prikaza neki rezultata zanimljivih za temu, na primeru problema najvećeg zajedničkog delioca (GCD) demonstriraju kako su napredovali algoritmi u smislu efikasnosti, kao i kako je moguće generalizovati algoritam i primeniti ga na sasvim drugu klasu entiteta, na primer na polinome umesto brojeva.

Binarna pretraga

Tu su i neki koncepti iz programiranja, analiza algoritma za binarnu pretragu (Binary search algorithm) je prelep primer kako napraviti dobar interfejs i obraditi granične slučajeve na realnom problemu.

Na kraju su obrađeni konkretne primene u kriptografiji, kao i čuveni RSA algoritam.

Autori su sebi zadali težak zadatak, od Platona do asimetrične enkripcije je dug put, međutim uspeli su, knjiga nudi puno znanja u čitljivom pakovanju. Preporuka za prave gikove i/ili matematičare koji žele da obnove i prošire svoje znanje, uživajte.

 

 

Pages:

Leave a Comment

NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>