|Website:||website containing additional information|
|History:||This course was formerly known as Introductie functioneel programmeren en G&O (INFOFPGO). You can only do one of these courses.|
|Period:||periode 1 (week 36 t/m 45, dwz 3-9-2008 t/m 7-11-2008; herkansing week 1)|
|Participants:||up till now 6 subscriptions|
|Schedule:||Note: from now on the schedule is to be found in Osiris|
|Teachers:||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.
For the first part of the course, we will use the following book:
Graham Hutton, Programming in Haskell,
For the part on languages and compilers, we will use lecture notes that will be made available via the course webpages.
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.
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 LC). 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.