
Hi, I'm a Master student in Computer Science, and for my bachelor thesis, I've written 'an introduction to Haskell'. In this document, I've discussed syntax, evaluation, polymorphism, monads etc. Now, in a week I have to present this work formally, and I'm a bit stumped as to how I'm going to do this. I've got about 15-20 minutes, so I can only discuss the major features. Right now I'm thinking about: - Short introduction to functional programming, and Haskell in it - Basic syntax in a few minutes - Features like polymorphism, overloading, higher-order functions, comprehensions, .. - Lazy evaluation - Monads: why and how? However, I'd love to know what you think. Furthermore, do you think I should include an example on the usage of Haskell, and if so, which? Many thanks! Niels

On Sun, 4 Jun 2006 11:21:23 +0200
Niels Van Och
However, I'd love to know what you think. Furthermore, do you think I should include an example on the usage of Haskell, and if so, which?
I have an idea. Find some real code in another language which uses lots of state - so much state, in fact, that it's a pain to unit test or debug the code because you have to set up lots of state. Then, sketch an outline of how this code could be rewritten into Haskell, so that state updates are contained within monads or eliminated altogether, and perhaps separating the different tasks the code does into different functions. Then illustrate how this can make testing and debugging easier. -- Robin

stumped as to how I'm going to do this. I've got about 15-20 minutes, so I can only discuss the major features.
I was always impressed with Autrijus Tang's presentation here: http://www.pugscode.org/euroscon/haskell.xul (view with Firefox or other Gecko-based browser) I think he managed to explain very effectively what made Haskell special, including major features/differences/paradigms, as well as syntax, all at once. I did read the slides as one familiar with Haskell so I can't say how it would come across to one unfamiliar with Haskell (which was his target audience), but maybe his presentation will help give you ideas. Best of luck! Jared. -- http://www.updike.org/~jared/ reverse ")-:"

On Sun, Jun 04, 2006 at 05:17:02PM -0700, Jared Updike wrote:
stumped as to how I'm going to do this. I've got about 15-20 minutes, so I can only discuss the major features.
I was always impressed with Autrijus Tang's presentation here: ^^^^^^^^ Audrey
I think he managed to explain very effectively what made Haskell ^^ she
Peace, Dylan Thurston

On Sun, Jun 04, 2006 at 05:17:02PM -0700, Jared Updike wrote:
stumped as to how I'm going to do this. I've got about 15-20 minutes, so I can only discuss the major features.
I was always impressed with Autrijus Tang's presentation here: ^^^^^^^^ Audrey I think he managed to explain very effectively what made Haskell ^^ she
Yep.. My bad. Cheers, Jared. -- http://www.updike.org/~jared/ reverse ")-:"

Jared Updike wrote:
I was always impressed with Autrijus Tang's presentation here: http://www.pugscode.org/euroscon/haskell.xul (view with Firefox or other Gecko-based browser)
Unfortunately, this presentation alone is incomprehensible to someone who does not know Haskell. I suspect it would do much better with audio. I think Haskell really needs something like http://oodt.jpl.nasa.gov/better-web-app.mov and http://ia301106.us.archive.org/1/items/SeanKellyGettingYourFeetWetwithPlone/... to make the point. Sean Kelly's screencasts made a big impression and have been very widely downloaded and have really done a lot to promote Plone in recent months. -- Tracy R Reed http://ultraviolet.org

Tracy R Reed wrote:
Jared Updike wrote:
I was always impressed with Autrijus Tang's presentation here: http://www.pugscode.org/euroscon/haskell.xul (view with Firefox or other Gecko-based browser)
Unfortunately, this presentation alone is incomprehensible to someone who does not know Haskell. I suspect it would do much better with audio. I think Haskell really needs something like
http://oodt.jpl.nasa.gov/better-web-app.mov
and
http://ia301106.us.archive.org/1/items/SeanKellyGettingYourFeetWetwithPlone/...
to make the point. Sean Kelly's screencasts made a big impression and have been very widely downloaded and have really done a lot to promote Plone in recent months.
Interesting. I just gave a talk to the SGVLUG (San Gabriel Valley Linux Users Group, which is centered at Cal Tech). It was the first time I've given such a talk, half about Linspire/Freespire, half about Haskell features, and the other three halves were technical problems. I looked at Tang's presentation as well, and while there were parts that I thought wonderful (the definition of fibonacci with parallel list comprehension, for example), I thought that most of it would go right past an audience of beginners. I didn't get a chance to practice my talk beforehand, so there were rough spots, but in general I felt they got as much as could be expected in a whirlwind tour. Of course, I lost them completely at the IO monad. Writing the slides, I found that it is hard to disentangle all the concepts and build from the ground up. Those of us who use it have forgotten just how many new concepts there are and how tightly bound together they are in Haskell. As always, when you try to teach something you get a deeper understanding of it. I'll see if I can't clean up some of the examples with hindsight and send it along to you and see what you think. Cliff

<ramble> On Fri, Jun 09, 2006 at 02:16:47AM -0700, Clifford Beshers wrote:
Interesting. I just gave a talk to the SGVLUG (San Gabriel Valley Linux Users Group, which is centered at Cal Tech). It was the first time I've given such a talk, half about Linspire/Freespire, half about Haskell features, and the other three halves were technical problems.
Oh, I live a block from Caltech, I didn't know there was a Haskell talk there.
Writing the slides, I found that it is hard to disentangle all the concepts and build from the ground up. Those of us who use it have forgotten just how many new concepts there are and how tightly bound together they are in Haskell. As always, when you try to teach something you get a deeper understanding of it. I'll see if I can't clean up some of the examples with hindsight and send it along to you and see what you think.
I always prefered using a chalkboard (or whiteboard, or overhead + markers) instead of a pre-prepared slideshow when giving talks. it lets me change the focus depending on audience reaction and questions more. If you can get away with it, I'd recommend it for future talks, ignore anyone that says it is not profesional, they wouldn't have paid attention anyway to anything other than your font choices and choice of screen-wipes between slides. John </ramble> -- John Meacham - ⑆repetae.net⑆john⑈

John Meacham wrote:
<ramble>
On Fri, Jun 09, 2006 at 02:16:47AM -0700, Clifford Beshers wrote:
Interesting. I just gave a talk to the SGVLUG (San Gabriel Valley Linux Users Group, which is centered at Cal Tech). It was the first time I've given such a talk, half about Linspire/Freespire, half about Haskell features, and the other three halves were technical problems.
Oh, I live a block from Caltech, I didn't know there was a Haskell talk there.
Dang! I referenced your 'small but featureful grep' as an example of how Haskell should help reduce the need for `little languages' and two-level languages. I promised to come back in six months or so and talk about the progress we've made on development tools for Freespire. I'll let you know.
Writing the slides, I found that it is hard to disentangle all the concepts and build from the ground up. Those of us who use it have forgotten just how many new concepts there are and how tightly bound together they are in Haskell. As always, when you try to teach something you get a deeper understanding of it. I'll see if I can't clean up some of the examples with hindsight and send it along to you and see what you think.
I always prefered using a chalkboard (or whiteboard, or overhead + markers) instead of a pre-prepared slideshow when giving talks. it lets me change the focus depending on audience reaction and questions more. If you can get away with it, I'd recommend it for future talks, ignore anyone that says it is not profesional, they wouldn't have paid attention anyway to anything other than your font choices and choice of screen-wipes between slides.
If I had been doing a tutorial, I might have done that, but I was doing a whirlwind tour where the goal was to get people excited. Also, I find that the first time presenting some information, I do better if I lay it out before hand. Explanation of code is a different beast than creation of it.

Niels, Maybe reading these papers will give you some inspiration: John Hughes. Why functional programming matters. The Computer Journal, 32(2):98--107, 1989. [http://www.math.chalmers.se/~rjmh/ Papers/whyfp.html] Mark P. Jones. Functional programming with overloading and higher- order polymorphism. In Johan Jeuring and Erik Meijer, editors, Advanced Functional Programming, First International Spring School on Advanced Functional Programming Techniques, Baastad, Sweden, May 24–30, 1995, Tutorial Text, volume 925 of Lecture Notes in Computer Science, pages 97--136. Springer-Verlag, 1995. [http://www.cse.ogi.edu/~mpj/pubs/springschool.html] HTH, Stefan
participants (8)
-
Clifford Beshers
-
Dylan Thurston
-
Jared Updike
-
John Meacham
-
Niels Van Och
-
Robin Green
-
Stefan Holdermans
-
Tracy R Reed