14 Jan 04:33
Teach theory then Haskell as example
From: Andrzej Jaworski <himself <at> poczta.nom.pl>
Subject: Teach theory then Haskell as example
Newsgroups: gmane.comp.lang.haskell.general
Date: 2009-01-14 03:37:33 GMT
Subject: Teach theory then Haskell as example
Newsgroups: gmane.comp.lang.haskell.general
Date: 2009-01-14 03:37:33 GMT
Hi, Although it will not help you to know who your grandparent was it is always better to know what reason is behind particular formalism that you use. And the better you know it the further you go with it. So after seeing reappearing questions on the nature and role of fundamental concepts in Haskell I came to a belief that Haskell should be taught via stressing abstract concepts and explaining them rather than downplaying or postponing the explanation. It may look like asking to further expand Haskell's learning curve but I will argue that half learned concepts haunt Haskellers for ever. So, if you teach Haskell as a tool it will always remain a mystery and haunt. My argument is that vice versa should be true: if you explain fundamental concepts in their own right the programmer will gain insight and be able to navigate by power of his own judgment and not by following alchemical recipes. What is more Haskell should be taught on most abstract terms in a framework of higher order logic, types and CT right from the start. Not that it is so different but because: (0) it can afford it (1) it is conductive to abstract thinking by giving more control in structuring the code (2) it matters in what language you think and you cannot think in formalism (you need to root it in models) (3) abstract thinking is more effective (than thinking by example) and is the only way to produce non-trivial solutions. Just browsing book titles in mathematical literature like "The Concept of Number: From Quaternions to Monads and Topological Fields","Monads and automata", "Monads and graphs" should bring confidence that there is deep universe behind Haskell's abstract stuff. So, why try to hide this instead of making direct reference to that unique legacy? Explaining wide roots of Haskell should motivate and disinfect narrow mindedness injected by regular CS courses. Programmers learning Haskell should forget that they are programmers and try to think mathematically. First few years of CS history belonged to mathematicians that for amusement created Fortran and Lisp. Then John McCarthy tried to warn guys proclaiming themselves programmers that to build their skills they should study logic rather than programming. Obviously they haven't listen(Continue reading)![]()
RSS Feed