Tutorial Outline
#1 About this tutorial (15mins) ##1.1 Should I take this tutorial? ##1.2 What's not covered?
#2 Haskell basics (15mins)
#3 Taking the vows (30 mins) ##3.1 Giving things up ##3.2 No mutable variables ##3.3 Isolate side-effects ##3.4 No loops ##3.5 No program order
##3.6 Build: Some simple code snippets
#4 A new expressiveness (1hr 30mins) ##4.1 What's in a Haskell program? ##4.2 Defining functions ##4.3 More simple function definitions ##4.4 Recursion ##4.5 Pattern matching ##4.6 Guards ##4.7 List Comprehensions ##4.8 Lazy evaluation I ##4.9 Lazy evaluation II ##4.10 First class functions (passing functions) ##4.11 First class functions (function factories)
##Build
#5 Modules and program structure (1hr) ##5.1 Basic syntax ##5.2 Haskell and literate Haskell ##5.3 The offside rule ##5.4 Scope of names ##5.5 Breaking down the problem ##5.6 Importing/exporting
##5.7 Build: Create several types of Trees and an AVL Tree
#{{ Lunch Break }}
#6 Advanced Topics (1hr 30 mins) ##6.1 Functors ##6.2 Applicative Functors ##6.3 Monads
##6.4 Build: Create Several Types of Trees and an AVL Tree using monads ##6.5 Dynamic Programming High Level Framework
#7 Resources and feedback (30mins) ##7.1 Articles & Books ##7.2 Feedback
#Spend the last hour playing and hacking with Haskell
I'm open to suggestions for other topics.Tutorial Outline