- Leren door doen
- Trainers met praktijkervaring
- Klassikale trainingen
- Gedetailleerd cursusmateriaal
- Duidelijke inhoudsbeschrijving
- Maatwerk inhoud mogelijk
- Trainingen die doorgaan
- Kleine groepen
In de cursus Functioneel Programmeren worden de basisprincipes van functioneel programmeren besproken en geïllustreerd met voorbeelden. Functioneel programmeren is naast object georiënteerd programmeren een belangrijke stroming in de ontwikkeling van de informatica.
De cursus gaat van start met een bespreking van op de achtergronden van functioneel programmeren in de lambda calculus. In het functioneel programmeer paradigma wordt een programma opgebouwd uit functies die operaties uitvoeren op de argumenten.
Moderne talen zoals Java, Python, Scala en JavaScript zijn uitgerust met functionele kenmerken maar zijn er niet geheel op gebaseerd.
Programmeertalen die in zijn geheel op dit paradigma zijn gebaseerd zijn Erlang, F♯, Haskell, Lisp en ML.
Aan de orde komt hoe in puur functionele programmeertalen functies geen neveneffecten veroorzaken. Dit zijn effecten die invloed hebben op meer dan het resultaat van de functie, zoals het veranderen van een globale variabele. Variabelen die dienen als accumulator, counter of controle variabele horen niet thuis in een functionele taal.
Voorts wordt aandacht besteed aan kenmerkende functionele begrippen zoals immutable data, clojures en map en reduce algoritmes.
Ook komen in de cursus Functioneel Programmeren de diverse soorten functies zoals first class functies, higher order functies en lambda functies aan bod.
Tenslotte staat de bespreking van andere functionele begrippen als Generators en Iterators, Fold Expressions, Memoization en Monads op het programma.
De cursus Functioneel programmeren is bedoeld voor personen die de principes van functioneel programmeren willen leren en die deze kennis in talen met functionele aspecten willen toepassen.
Om deel te nemen aan deze cursus dient men te beschikken over basis programmeer vaardigheden en is ervaring met software ontwikkeling vereist.
De theorie wordt besproken aan de hand van presentaties. Demo's worden gebruikt om de concepten te verduidelijken. Voorbeelden in verschillende talen worden gebruikt om de concepten te illustreren. De theorie wordt afgewisseld met oefeningen.
De deelnemers krijgen na het goed doorlopen van de cursus een officieel certificaat Functioneel Programmeren.
Module 1 : Intro Functional Programming |
Module 2 : Functions and Style |
Module 3 : Map and Reduce |
What is Functional Programming? Paradigm Origins Lambda Calculus Absence of side effects Immutable Data and Keeping State Maintenance Benefits Functional Languages Erlang an Clojure Haskell and JavaScript Support in Python and Java |
Functional Style Imperative Programming Declarative Programming First Class Functions Functions as Parameters Functions as Return Values Pure Functions Anonymous Functions Higher Order Functions Recursion |
Replace Iteration Map Parameters Function and Collection Anonymous Functions Lambda's Reduce to Single Value Reduce Parameters Benefits Map and Reduce Filter and Find Function All and Any Function |
Module 4 : Pipelines |
Module 5 : Other Functional Concepts |
|
Combining Functions Parallelism Composition Efficiency Issues Referential Transparency Tail Call Optimization Currying Lazy Evaluation Determinism |
Generators and Iterators Fold Expressions Memoization Monads Strict Evaluation Type Systems Non-strict Evaluation Evil of Shared State Thread Safeness |
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.