| Summer revision course in Haskell? In 2003 a
short revision course in Haskell programming was held in June, ending
with a re-exam with only 3 and U as possible grades. This was not a
normal part of our teaching (and was not taught by me), but was held
in 2003 because unusually many students failed the first exam.
This year in contrast unusually many students passed the first exam, but even so, some are wondering whether the summer course will be repeated. Although we cannot normally do this, it may be justifiable this year since the course will change significantly next year (because we are moving to a system with 3-year Bachelors + 2 year Masters). We are looking into the possibility of holding the revision course again, but the person responsible for it is Marianne Annbrink -- please mail her for further information.. |
This part of the course introduces functional programming, an approach to programming which prioritises expressiveness and a high-level of abstraction over run-time efficiency. In the next study period you will meet a more conventional imperative language; the contrast between the two will give a deeper understanding of the topic.
| Week 7 | ||
| Monday, 8-12 Tuesday, 8-12 | Idéläran | Group meetings: Exercises for week 7. |
| Wednesday, 8-10 | Idéläran |
Extra tutorials There will be tutors available in Idéläran (only!) to help you with previous weeks' exercises or more basic exercises from the book. This session is optional: if you feel comfortable with the course, you need not attend, but if you would like more help with the material we've covered so far, you should go to it. Choose any group room: you do not need to go to your own for this session. There will be no tutors in the EDIT building. |
| Wednesday, 13-15 | HA4 | Lecture 10: What is Haskell Used For?. |
| Thursday, 8-15 | Mathematical Centre Lab rooms I, J |
Laboratory Exercise: solve exam questions. |
| Thursday, 15-17 | Mathematical Centre Lab rooms K, L |
Laboratory Exercise: solve exam questions. |
| Friday, 15-17 | Mathematical Centre Lab rooms I, J |
Laboratory Exercise: solve exam questions.
Note: This session is for you to work independently. The lab rooms are booked for your use, but there are no tutors available at this time. |
En första kontakt med
Haskell.
Kvadratroten ur ett
heltal.
Om tupler och strängar
i hugs.
Generera och testa.
Iteration i
Haskell.
The course gives an introduction to the fundamentals of functional programming.
Simon Thompson, Haskell - The Craft of Functional Programming (second edition). Addison-Wesley, ISBN 0-201-34275-8, 487 pages, paperback, 1999.
The book is available at Cremona for about 430kr. We have used the same book since 1999, so there should be second-hand copies available. Make sure you get the second edition: the first is not as good, and the exercises are different, so when I refer to exercise numbers you will not find the right ones.
The Haskell School of Expression: Learning Functional Programming through Multimedia, by Paul Hudak.
This book teaches Haskell programming using applications such as graphics, animation, music, and robotics, and moreover explains the "spirit" of Haskell programming very well. It does start from the beginning, but the pace is fast: I wouldn't recommend it as an introduction to programming, but if you can already program in another language, then it's a wonderful book.
Guide to the standard list functions.
The Gentle Introduction to Haskell. This is not an introduction to programming, it's a concise and readable introduction to the Haskell language. Read this to learn a lot about Haskell, fast, without struggling through the language definition itself.
The teaching on this course consists of:
John Hughes, rjmh@cs.chalmers.se
The supervisors are listed here.
These are last year's lectures, and may be revised during the course. It's a good idea to print out the lecture notes (shortly) before the lecture, so you can make your own notes on them while I am talking.
Solutions to the exercises are available, provided by Tobias Gedell --- thanks Tobias! Don't look at them until you've made a good attempt yourselves, though.
These are last year's exercises and may be revised during the course.
There will be two or three assessed laboratory exercises during the course, marked with an asterisk below. You must pass all these exercises to pass the course. The laboratory exercises in the first weeks are not assessed: you do not need to submit these to your tutor.
Laboratory exercises are intended to be solved by two people working together. You may choose who you work with. If you cannot find a partner, you are free to solve the lab alone, but you may not work in a group of three people.
IMPORTANT! Before you start the assessed exercises, read these notes on cooperation vs. cheating.Submit your solutions using this web page.
Many of you will want to install Haskell on a PC at home. You can download Hugs98, the version of Haskell that we are using, from the Hugs98 home page. This site contains information on all the various versions of Hugs, and on Haskell in general. Windows users can just download a self-installing executable.
There is a great deal of information on functional programming on the Web.
Please help them to do their job! You may find this short summary of Chalmers course evaluation helpful:
| Teknologernas lärande är det centrala i utbildningen och syftet med kursutvärderingarna är att utveckla kurserna med kursmål och lärande i fokus.
Utvärderingarna ska främja en dialog mellan lärare och teknologer om hur undervisningen kan utvecklas och förbättras. Erfarenheter ska tillvaratas så att de kan användas både för att förbättra pågående kurs och vid utvecklingsarbetet inför nästa kurstillfälle. |
More information on Chalmers course evaluation process can be found here.