Re: [OT] Teaching Haskell in High School
Arjan == Arjan van IJzendoorn [EMAIL PROTECTED] writes: Arjan Good point, but there are fundamental differences between Arjan Scheme and Haskell and our whole teaching here in Utrecht is Arjan heavily geared towards Haskell: we really need laziness to Arjan write our parsers and our attribute grammars, This seems like a backwards way of approaching teaching the intro course. (Besides, is this really suitable material for beginners, let alone high school students?) It's the common method to specify We must do this, that, and this in the intro course and work backwards towards the didactics. I once was a strong proponent of the same method, but I came to realize that it's necessary to abandon stuff that I don't know how to teach well to beginners. I now have a poster in my apartment saying Kill your darlings. (A Faulkner quote, for those who must know.) This is what differentiates HtDP from all other intro curriculi I've seen: it *really* isn't about Scheme, and *nothing* is heavily geared towards Scheme. It's about programming and problem solving, and it prepares you for learning the language you need to know to produce software. (In fact, even if you want to produce actual software in Scheme, you'd be expected to take another course after HtDP.) Arjan we believe that static typing is the way to go for more robust Arjan software, we think that algebraic data types are a great way to Arjan model data and so on. Sure. But you'll notice that HtDP *does* use a completely type-centric approach to teaching, along with algebraic data types. And the fact that you would like to apply Haskell to professional software engineering and believe static types are the way to go there says nothing about the suitability of Haskell for intro teaching. Teach them Haskell, by all means. Helium seems to be a great effort directed at that, and I'm glad *someone* in the community finally caught on to the problems you're solving. But if you want Haskell to be as broadly applicable to intro teaching for non-CS majors as HtDP/TeachScheme!, you have a long way to go. -- Cheers =8-} Mike Friede, Völkerverständigung und überhaupt blabla ___ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
Re: [OT] Teaching Haskell in High School
Paul == Paul Hudak [EMAIL PROTECTED] writes: Paul I can't resist jumping in on this one: Sure :-) Haskell just has some terrible properties when it comes to teaching beginners. Among them are the complex and easy-to-get-wrong syntax, the available programming environments which are OK for developers but awful for beginners. There's also a dearth of good textbooks at the level you need. Haskell is very easy to learn (and an excellent choice for a 2nd or 3rd language) when you know Scheme. Paul I have spent many years teaching both Scheme and Haskell to beginners, Paul and I would have to say that Haskell syntax has never been a serious Paul problem, certainly no more than Scheme's parentheses. It is true that Paul there is a lack of good programming environments, although Hugs is Paul pretty easy to use, and things like Helium should be even better. (I Paul won't say much about textbooks since I wrote one that I think is pretty Paul good for beginners :-) Finally, aside from extraneous type error Paul messages (which Helium should do much better at), I claim that Haskell's Paul type system is BETTER for beginners compared to having no type system at Paul all. As for the last point above, I could just as easily say that Paul Scheme is very easy to learn (and an excellent choice for a 2nd or 3rd Paul language) when you know Haskell. Here are some observations I've made when teaching Haskell for the first time which are relevant when you're trying them out on beginners: - With the programming environment, it isn't just a question of being easier to use: in my experience, environments like Hugs (or any Scheme environment other than DrScheme) work for some, but frustrate many beginners because they don't enable them to fix trivial mistakes which they're bound to make in the first couple of weeks. These are *crucial* to the overall success of an intro course. The TeachScheme! folks had to work a long time on getting DrScheme to provide the feedback needed to alleviate this problem. Haskell systems just don't have this kind of investment. (I'm glad Helium showed up, and I'm sure to try it out soon.) - In theory, static typing is good because it helps spot bugs in your program early. However, the current state of the art is such that the type error messages in Haskell systems are not sufficiently helpful (in fact, often misleading) when it comes to finding the actual source of the problem. You're saying aside from extraneous type error messages---but these are *exactly* the problem. Certainly, the messages from Hugs and GHC often frustrate beginners (and not just beginners in programming---I've seen quite a few students who were learning Haskell as a 3rd or 4th language give up because of this). Again, Helium may be an improvement, but I suspect that the underlying problem is deeply rooted. - I've written between 1 and 10 lines of code in Haskell, and I still do things like: - look up syntax in a book - getting the alignment wrong - using a name twice in a recursive let, leading to infinite recursion Scheme syntax is just *way* smaller than Haskell syntax, and, while it may not constitute a serious problem in any given course, it certainly eats up less space when you explain it. Here are some other aspects of Haskell syntax which---in my experience---are confusing for beginners: - The syntax for ordinary variables and type variables are the same. In fact, many examples by Great Haskell Programmers use a variable s (for instance) to denote a value of type s. Beginners often have trouble understanding and distinguishing the concepts of variables and type variables, and this makes it worse. - The same holds generally for the type syntax which is analogous to the value syntax. - I don't know what kind of beginners you're talking about exactly. The original poster was asking about high school. With *CS* beginners (or beginners in some related field) different rules apply than for the average population. If these kids have problems early on, they're just bound to leave programming and never come back (or much later). I'm sure some of you have didactic concepts to get around these problems---but, as you mention, they sure aren't published anywhere, much less in a comprehensive form as HtDP, and the tools don't exist with the same quality as DrScheme. There's much more to say---about things like motivating examples with GUIs and web servers---which DrScheme has in a form accessible to beginners, but you can all read up on that in the TeachScheme! material. Haskell has great potential to be a wonderful and useful language for software development and research. It often pains me to see the efforts of the functional programming community (which is small enough as it is) fragmented by the My language is the best for *everything* attitude. For intro teaching, the TeachScheme! have
Re: [OT] Teaching Haskell in High School
Hal == Hal Daume, Hal writes: Hal Hi all, Hal Before getting in to this, let me preface my question(s) with a note that Hal I have checked through the Haskell in Education web page and have found Hal various links off there of interest (and I've googled, etc. In Hal short: I've done my homework). Hal That said, I've been in rather close correspondence with my math/computer Hal science teacher from high school. When I first took CS there, they taught Hal Pascal (a year early they had been teaching Scheme). They switched over Hal to VB (alas) recently and have been teaching that for a few years now. Hal The teacher really wants to get away from VB, but is having a somewhat Hal difficult time deciding what to go to. The two most promising options are Hal Haskell and Java. I really recommend looking at the TeachScheme! curriculum and the How to Design Programs curriculum. Here are two URLs: http://www.teach-scheme.org/ http://www.htdp.org/ This works exceptionally well at the High School level (I know that earlier attempts to do this with Scheme failed---this one is very different), and has been extensively applied with great success---also and especially in conjunction with the AP curriculum and/or a course on Java based on the same methodology. There's a wealth of software and material, and the TeachScheme! program offers (mostly free) workshops on this. Haskell just has some terrible properties when it comes to teaching beginners. Among them are the complex and easy-to-get-wrong syntax, the available programming environments which are OK for developers but awful for beginners. There's also a dearth of good textbooks at the level you need. Haskell is very easy to learn (and an excellent choice for a 2nd or 3rd language) when you know Scheme. -- Cheers =8-} Mike Friede, Völkerverständigung und überhaupt blabla ___ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
Re: partial application
Cagdas == Cagdas Ozgenc [EMAIL PROTECTED] writes: Cagdas Koen Claessen contributed: Somehow I do not think that Cagdas was talking about evaluation order at all. I think he referred to the following: Suppose I have a function f which is defined to have 3 arguments: Cagdas That's right. I was thinking of the following syntax. I orginally had the Cagdas idea for C++, where you can't do partial application at all. Cagdas f x y z=... Cagdas f # 3 4 As another note on the subject, this is similar to SRFI 26 for Scheme which can be found at: http://srfi.schemers.org/srfi-26/ -- Cheers =8-} Mike Friede, Völkerverständigung und überhaupt blabla ___ Haskell-Cafe mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: Haskell Communities Survey - Second Call for Contributions
Bernard == Bernard James POPE [EMAIL PROTECTED] writes: Bernard Hi all, Bernard I'm sending this to the whole list because maybe there are others who are Bernard doing the same thing as me, and so it would be useful to share some Bernard effort. What about a standard AST format? What about static analysis and type checking/inference? Bernard A few of us at Melbourne have been slowly creating a front Bernard end to Mark Jones' Typing Haskell in Haskell. It is getting Bernard close to being useable. It is intended as a stand-alone type Bernard inference/checking tool that can give detailed information Bernard about static aspects of the program. It will understand Bernard modules. Note that we also have most of a frontend based on thih. It's actually a translator between hsparser's output and thih's input. It's not very well debugged or tested, but mostly complete, albeit sans the modules stuff. -- Cheers =8-} Mike Friede, Völkerverständigung und überhaupt blabla ___ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
ghc via ftp
Salve glorious Glasgow Haskell teamsters! The ghc release notes keep announcing that the ghc distro is available via anonymous ftp, referring to details below. However, there never seem to be any details, and ftp.haskell.org sadly doesn't answer my prayers on the ftp command line. Any chance of making anonymous ftp available so I could mirror ghc? -- Cheers =8-} Mike Friede, Völkerverständigung und überhaupt blabla ___ Glasgow-haskell-bugs mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: ghc via ftp
J == Intl Vendor Julian writes: J | The ghc release notes keep announcing that the ghc distro is J | available via anonymous ftp, referring to details below. J I guess that's now a bogus thing to say -- I'm inclined to fix J the ANNOUNCE file. Do you particularly need ftp rather than http J access to these files? For mirroring, yes. This doesn't work particularly well over http. Can't you just update the old ftp location at src.doc.ic.ac.uk or something? The old stuff up to version 4.04 is still there. -- Cheers =8-} Mike Friede, Völkerverständigung und überhaupt blabla ___ Glasgow-haskell-bugs mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: ghc via ftp
Keith == Keith Wansbrough [EMAIL PROTECTED] writes: Keith [EMAIL PROTECTED] (Michael Sperber [Mr. Keith Preprocessor]) writes: For mirroring, yes. This doesn't work particularly well over http. Keith What about wget? wget --mirror seems to work for me... Sure, but the overhead is pretty stupendous, as you need to request headers for each single file to get at the metadata. It's also not immediately clear what to specify as the mirroring source, even though it's probably possible to find out. -- Cheers =8-} Mike Friede, Völkerverständigung und überhaupt blabla ___ Glasgow-haskell-bugs mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
GHC releases and Haggis
It seems there is currently no distribution of a GHC version which will run the Haggis code from the tutorial: 0.29 doesn't understand "do". 2.02 doesn't support Haggi. Could the 2.01 binaries be re-instated, maybe? -- Cheers =8-} Mike Friede, Volkerverstandigung und uberhaupt blabla