- Leren door doen
- Trainers met praktijkervaring
- Klassikale trainingen
- Gedetailleerd cursusmateriaal
- Duidelijke inhoudsbeschrijving
- Maatwerk inhoud mogelijk
- Trainingen die doorgaan
- Kleine groepen
In de cursus Haskell Programmeren leren de deelnemers programmeren in de pure functionele programmeer taal Haskell. In tegenstelling tot conventionele talen als C en Java, worden in functionele talen berekeningen uitgevoerd door afzonderlijke mathematische functies met elkaar te combineren. Een functionele taal als Haskell heeft tevens van nature support voor multithreading en parallelism, hetgeen resulteert in een goede performance.
De cursus gaat van start met een introductie van de basis syntax van Haskell en de voornaamste karakteristieken van de taal zoals laziness in expression evaluation met een thunk data structure, static typing, modularity en het omgaan met multiple threads.
Vervolgens wordt aandacht besteed aan de data types en operators van de taal. Hierbij komen ook data structures als lists, tuples en records aan de orde. En ook exceptions en het benaderen van het file systeem wordt besproken.
Ook onderdeel van het programma van de cursus zijn de definitie en declaratie van functies in Haskell met argument lists, pattern matching en guards. Tevens worden dan recursieve functies, higher order functies en lambda expressies behandeld.
Vervolgens passeren de diverse Haskell modules zoals de Prelude, List, Char, Set en Map module de revue. En wordt besproken hoe user defined modules en packages worden gemaakt. Hierbij komen ook qualified imports en de global namespace ter sprake.
Tenslotte wordt aandacht besteed aan Haskell containers als classes, objects, Trees, Binary Trees, Functors en Foldables en wordt ingegaan op het kenmerkende functionele programmeer concept van monads.
De cursus Haskell Programmeren is bedoeld voor een ieder die wil leren programmeren in de functionele programmeer taal Haskell.
Om aan deze cursus te kunnen deelnemen is basiskennis van programmeren in een andere programmeertaal bevorderlijk voor de begripsvorming maar niet vereist.
De theorie wordt behandeld op basis van presentatie slides. De theorie wordt verduidelijkt door middel van demo's. Na bespreking van een module, is er de mogelijkheid te oefenen. De cursustijden zijn van 9.30 tot 16.30.
De deelnemers krijgen na het goed doorlopen van de cursus een officieel certificaat Haskell Programmeren.
Module 1 : Haskell Intro |
Module 2 : Types and Operators |
Module 3 : Functions |
What is Haskell? Functional Programming Evaluation Engine Expression Evaluation Haskells Laziness Thunk Data Structure Haskells Modularity Handling Multiple Threads Static Typing Installing Haskell Haskell Compiler Stack Installer Haskell Platform |
Numbers and Characters Strings and Booleans Lists List Comprehensions Tuples Haskell Operators Sequence Operator Control Flow Exceptions Type Class Records Default Values Idiom Files and Streams |
Function Declaration Function Names Argument Lists Function Definition Pattern Matching Guards Where Clause Recursion Lambda Expressions Higher Order Functions Head and Tail Null and Init Reverse and Take |
Module 4 : Modules |
Module 5 : Containers |
Module 6 : Monads |
Packages and Modules import Statement Prelude Module Global Namespace Qualified Imports List Module Char Module Map Module Set Module Custom Modules Smart Constructors Views |
Classes and Instances Maps Sets Trees Binary Trees Graphs Type Classes Built-in Type Classes Polymorphism Functors Foldables Lazy Evaluation |
Applicative Functors Monadic Rules Left Identity Law Right Identity Law Associativity Combinators for State Dissecting Combinators do Notation State and Lenses Monad Comprehensions Monoids Zippers |
Al onze cursussen zijn klassikale cursussen waarbij de cursisten aan de hand van een ervaren trainer met diepgaande materie kennis door de stof worden geleid. Theorie wordt steeds afgewisseld met oefeningen.
We doen ook maatwerk en passen dan de cursusinhoud aan op uw wensen. Op verzoek gaan we ook in op uw praktijkcases.
De cursustijden zijn in pricipe van 9.30 tot 16.30. Maar we zijn hierin flexibel. Soms moeten mensen namelijk kinderen naar de opvang brengen of halen en komen andere tijden hun beter uit. In goed overleg kunnen we dan andere cursustijden afspreken.
Wij zorgen voor de computers waarop de cursus gehouden kan worden. Op deze computer is de voor de cursus benodigde software al geinstalleerd. U hoeft geen laptop mee te nemen om aan de cursus te kunnen deelnemen. Als u liever op uw eigen laptop werkt kunt u hem desgewenst meenemen. De benodigde software wordt dan aan het begin van de cursus geinstalleerd.
Onze cursussen worden over het algemeen gegeven met Open Source software zoals Eclipse, IntelliJ, Tomcat, Pycharm, Anaconda en Netbeans. Het digitale cursusmateriaal krijgt u na de cursus mee naar huis.
De cursus is inclusief lunch die we in een restaurantje op loopafstand van het cursuslokaal gebruiken.
De cursussen worden op diverse plaatsen in het land gepland. Een cursus gaat op een locatie door als er zich minimaal 3 mensen voor die locatie inschrijven. Als er inschrijvingen voor verschillende locaties zijn gaat de cursus door op onze hoofdlocatie is Houten net onder Utrecht. Een cursus op onze hoofdlocatie gaat ook door bij 2 inschrijvingen en regelmatig ook bij 1 inschrijving. Overigens doen we ook cursussen op de locatie van de klant als men daar prijs op stelt.
Na afloop van iedere cursus worden de deelnemers verzocht de cursus te evalueren ten aanzien van cursusinhoud, cursusmateriaal, trainer en locatie. Het evaluatie formulier staat op https://www.klantenvertellen.nl/reviews/1039545/spiraltrain. De evaluaties van voorgaande deelnemers en voorgaande cursussen kunnen daar ook worden teruggevonden.
De intellectuele eigendomsrechten van de gepubliceerde cursus inhoud, ook wel aangeduid als infosheet, behoren toe aan SpiralTrain. Het is niet toegestaan de cursusinformatie, de infosheet, te publiceren in schiftelijke dan wel digitale vorm zonder de uitdrukkelijke toestemming van SpiralTrain. Onder de cursus inhoud dient te worden verstaan de beschrijving van de cursus inhoud in zinnen alsmede de indeling van de cursus in modules en onderwerpen in de modules.