|Website:||website containing additional information|
|Period:||periode 1 (week 36 t/m 45, dwz 5-9-2007 t/m 9-11-2007; herkansing week 1)|
|Participants:||up till now 12 subscriptions|
|Schedule:||Dit is een oud rooster!
A crash course covering material that is part of our bachelor program. The course will give an introduction to functional programming using the programming language Haskell, including topics such as lambda calculus, pattern matching, user-defined algebraic datatypes, parametric polymorphism, type classes and lazy evaluation.
The course will also provide an introduction to regular and context-free languages, automata, grammars, parser combinators, and the translation of programs from concrete syntax into an internal representation.
The literature will be announced on the course web page.
A good introductory book on Haskell is:
Graham Hutton, Programming in Haskell,
The students are expected to study the course material individually. Instead of classic lectures, there will be two meetings per week to discuss questions and examples. At these meetings, it is expected that the students have already read the material leading up to this meeting, and tried to solve both practical and theoretical exercises accompanying the material.
In some of the weeks, there will be supervised practical sessions where questions regarding the practical exercises and assignments can be asked while working at the computer.
The grade will be based on several assignments that have to be handed in at specific dates during the course period, and on a written exam consisting of two parts (FP and GO). The final grade is computed from the individual parts as follows:
All assignments have the same relative weight. Assignments that are not handed in count as 0.
|Minimum effort to qualify for 2nd chance exam:|
If the conditions to pass the course outlined above are not yet met, participation in a 2nd chance exam is possible under the following conditions:
This course is intended as a quick introduction to topics that are essential for the ST master course. Almost all later ST courses require knowledge of functional programming, formal languages, and parsing. Extreme examples are the course on Compiler Construction and the course on Advanced Functional Programming, but even courses focusing on other areas assume familiarity with the mindset of functional programming.
The material covered by this course is therefore both important and extensive. Active participation is required. This means that students have to spend a significant amount of time reading the materials, getting familiar with the topics, work on the exercise, and to come up with questions, so that problems with understanding the concepts can be identified and addressed as early as possible.