
Cursus Programmeertalen
Beheers de theorie en praktijk van elk belangrijk programmeertaalparadigma, van syntaxis en semantiek tot geheugenbeheer en compilerconstructie. Deze cursus geeft je de diepgaande, overdraagbare kennis om elke taalomgeving vol vertrouwen te beoordelen, ontwerpen en gebruiken. Of je nu je carrière vooruithelpt of je computerwetenschappelijke basis verscherpt, dit is de definitieve bron voor serieuze programmeurs.
Wat je gaat leren:
Je bouwt een grondig begrip op van hoe programmeertalen worden ontworpen, geclassificeerd en geïmplementeerd. De cursus behandelt formele grammatica's, parsingtechnieken, typesystemen, scopingregels en control-flow-mechanismen in meerdere paradigma's. Je bestudeert functioneel, objectgeoriënteerd, imperatief en logisch programmeren diepgaand en gaat vervolgens verder met geheugenbeheerstrategieën en runtime-systeemarchitectuur. Aanvullend materiaal behandelt compilerconstructie, metaprogrammeren, domeinspecifiek taalontwerp en polyglotsysteemintegratie. Na afloop kun je elke taal beoordelen op basis van echte projectvereisten en die beslissingen helder communiceren naar technische teams.
Hoe je praktisch studeert Cursus Programmeertalen
Hoe je oefent Cursus Programmeertalen
Voor bedrijven die hun team willen trainen
Bij Dedika voor bedrijven bevat de cursus oefeningen en voorbeelden die zijn afgestemd op jouw organisatie en precies zoals jouw bedrijf het nodig heeft.
Cursusinhoud
8 Hoofdstukken • 37 LessenDuur tussen 4 en 360 uren (jij beslist)
Hoofdstuk 1VerbergenVerberg detailsBekijk detailsGrondslagen van programmeertalen
Grondslagen van programmeertalen
Les 1 • Geschiedenis en evolutie van talen
Traceert de taalontwikkeling van assembly tot moderne paradigma's. Biedt historische context om huidige ontwerpbeslissingen te begrijpen.
Les 2 • Wat is een programmeertaal
Definieert programmeertalen als formele systemen voor het uitdrukken van berekeningen. Stelt de woordenschat vast die gedurende de cursus wordt gebruikt.
Les 3 • Taalclassificatie en paradigma's
Categoriseert talen per paradigma: imperatief, functioneel, logisch en objectgeoriënteerd. Bereidt studenten voor om elke taal te evalueren aan de hand van een taxonomie.
Les 4 • Taalontwerpdoelen en afwegingen
Onderzoekt de concurrerende prioriteiten—leesbaarheid, schrijfbaarheid, betrouwbaarheid—die taalontwerp vormgeven. Verbindt ontwerpkeuzes met praktische bruikbaarheid.
Hoofdstuk 2VerbergenVerberg detailsBekijk detailsSyntaxis, grammatica's en parsering
Syntaxis, grammatica's en parsering
Les 1 • Abstracte-syntaxisbomen
Onderscheidt abstracte-syntaxisbomen van parse-bomen en legt hun rol bij compilatie uit. Bereidt studenten voor op semantische analyse in latere hoofdstukken.
Les 2 • Top-down en bottom-up parsering
Vergelijkt recursief-dalende en shift-reduce parsingstrategieën. Rust studenten uit om geschikte parsers te kiezen en implementeren.
Les 3 • Lexicale analyse en tokenisatie
Behandelt de rol van de lexer in het omzetten van brontekst naar tokens vóór het parsen. Overbrugt ruwe broncode en grammaticaniveau-analyse.
Les 4 • Parse-bomen en ambiguïteit
Legt uit hoe parse-bomen syntactische structuur vertegenwoordigen en hoe ambiguïteit deterministische parsering ondermijnt. Ondersteunt direct vaardigheden in grammaticaontwerp.
Les 5 • Formele grammatica's en BNF-notatie
Introduceert contextvrije grammatica's en Backus-Naur-vorm als hulpmiddelen voor het specificeren van taalsyntaxis. Legt de basis voor alle verdere parsingwerkzaamheden.
Hoofdstuk 3VerbergenVerberg detailsBekijk detailsSemantiek en typesystemen
Semantiek en typesystemen
Les 1 • Benaderingen van formele semantiek
Introduceert operationele, denotationele en axiomatische semantiek als complementaire kaders. Legt de basis voor het redeneren over programmacorrectheid.
Les 2 • Grondslagen van typesystemen
Definieert types, typecontrole en het spectrum van statisch naar dynamisch typen. Verbindt typediscipline met programmabetrouwbaarheid.
Les 3 • Type-inferentie en polymorfisme
Behandelt algoritme-gebaseerde type-inferentie en parametrisch polymorfisme. Toont aan hoe talen algemeenheid bereiken zonder veiligheid op te offeren.
Les 4 • Geavanceerde typeconstructies
Onderzoekt algebraïsche datatypes, afhankelijke types en generieken. Bereidt studenten voor om expressieve typesystemen in moderne talen te benutten.
Hoofdstuk 4VerbergenVerberg detailsBekijk detailsVariabelen, scope en binding
Variabelen, scope en binding
Les 1 • Variabelen en opslagmodellen
Onderzoekt variabeleattributen—naam, type, waarde, levensduur—en hoe opslag wordt toegewezen. Legt de basis voor alle daaropvolgende discussies over scope en binding.
Les 2 • Naamruimten en modules
Behandelt naamruimtemechanismen die de globale scope partitioneren en grootschalige programma's ondersteunen. Overbrugt scopetheorie naar praktische softwareorganisatie.
Les 3 • Scoperegels en zichtbaarheid
Contrasteert statische (lexicale) en dynamische scoping en hun effecten op naamresolutie. Heeft directe invloed op hoe studenten code lezen en schrijven in elke taal.
Les 4 • Bindingstijd en levensduur
Onderscheidt wanneer bindingen worden vastgesteld—compileertijd versus runtime—en hoe lang ze blijven bestaan. Verbindt met later geïntroduceerde concepten voor geheugenbeheer.
Hoofdstuk 5VerbergenVerberg detailsBekijk detailsControlestroom en gestructureerd programmeren
Controlestroom en gestructureerd programmeren
Les 1 • Concurrency en coroutines
Introduceert threads, async/await en coroutines als geavanceerde controlestroomabstracties. Breidt gestructureerd programmeren uit naar gelijktijdige uitvoeringsmodellen.
Les 2 • Subprogramma's en parameterdoorgeving
Onderzoekt functie- en procedureontwerp, inclusief alle parameterdoorgeefmodi. Verbindt met scope- en bindingsconcepten uit het vorige hoofdstuk.
Les 3 • Conditionele en selectie-instructies
Behandelt if-else, switch en patroonmatchingconstructies in alle paradigma's. Stelt de basis voor alle studie van controlestroom.
Les 4 • Iteratie en lusconstructies
Analyseert tellergestuurde, voorwaardegestuurde en collectie-gebaseerde lussen. Bereidt studenten voor om te redeneren over terminatie en efficiëntie.
Les 5 • Uitzonderingsafhandelingsmechanismen
Behandelt uitzonderingsdeclaratie, propagatie en handlerontwerp. Toont aan hoe talen abnormale controlestroom veilig beheren.
Hoofdstuk 6VerbergenVerberg detailsBekijk detailsImperatieve en objectgeoriënteerde talen
Imperatieve en objectgeoriënteerde talen
Les 1 • OOP-ontwerppatronen in de praktijk
Past klassieke ontwerppatronen toe om OOP-principes te versterken. Overbrugt taalfuncties naar professionele softwarearchitectuur.
Les 2 • Kernconcepten van imperatieve talen
Bespreekt toewijzing, volgordelijkheid en toestandsmutatie als de basis van imperatief programmeren. Verankert OOP-studie in procedurele wortels.
Les 3 • Klassen, objecten en encapsulatie
Definieert klassen als sjablonen en objecten als instanties, met nadruk op encapsulatie. Bouwt de structurele woordenschat voor OOP-ontwerp.
Les 4 • Overerving en polymorfisme
Behandelt enkelvoudige en meervoudige overerving, method-overriding en dynamische dispatch. Verbindt typesysteemconcepten met OOP-runtimegedrag.
Les 5 • Interfaces, abstracte klassen en mixins
Onderzoekt ontwerpcontracten via interfaces en abstracte klassen. Breidt overerving uit naar flexibele compositiepatronen.
Hoofdstuk 7VerbergenVerberg detailsBekijk detailsFunctionele programmeertalen
Functionele programmeertalen
Les 1 • Hogere-ordefuncties en closures
Behandelt map, filter, fold en closure capture als fundamentele functionele hulpmiddelen. Bouwt voort op kennis van scope en binding uit eerdere hoofdstukken.
Les 2 • Algebraïsche datatypes en patroonmatching
Gebruikt som- en producttypes met patroonmatching om data precies te modelleren. Versterkt typesysteemconcepten in een functionele context.
Les 3 • Kernconcepten van functioneel programmeren
Introduceert zuivere functies, onveranderlijkheid en referentiële transparantie als de pijlers van functioneel programmeren. Contrasteert met imperatieve toestandsmutatie.
Les 4 • Recursie en staartaanroepoptimalisatie
Onderzoekt recursie als het primaire iteratiemechanisme en staartaanroepoptimalisatie als een prestatiestrategie. Verbindt met controlestroomconcepten.
Les 5 • Monaden en functionele effecten
Introduceert monaden als een gestructureerde manier om effecten zoals I/O en toestand af te handelen. Brengt studenten naar professioneel functioneel ontwerp.
Hoofdstuk 8VerbergenVerberg detailsBekijk detailsGeheugenbeheer en runtime-systemen
Geheugenbeheer en runtime-systemen
Les 1 • Handmatig geheugenbeheer
Behandelt expliciete toewijzing en vrijgave, inclusief veelvoorkomende fouten zoals lekken en verwijzingen naar vrijgegeven geheugen. Verbindt met concepten van variabelelevensduur.
Les 2 • Runtime-systeemarchitectuur
Verkent de componenten van een taal-runtime: call-stack, heapbeheerder en GC-integratie. Synthetiseert alle geheugenonderwerpen tot een uniform model.
Les 3 • Garbage Collection-algoritmen
Onderzoekt mark-and-sweep, referentietelling en generationele GC-strategieën. Rust studenten uit om te redeneren over GC-overhead en pauzetijden.
Les 4 • Geheugenindeling en -toewijzing
Beschrijft stack-, heap- en statische geheugenregio's en hoe talen objecten toewijzen. Legt de basis voor alle discussies over geheugenbeheer.
Les 5 • Eigendom en borrow-checking
Onderzoekt eigendomsgebaseerd geheugenveiligheid als alternatief voor GC. Toont aan hoe compileertijdregels hele klassen van runtimefouten elimineren.
Jouw geldig certificaat van voltooiing
Deze cursus is voor jou:
Softwareontwikkelaars die verder willen gaan dan de beperkingen van één enkele taal.
Informaticastudenten: klaar om theorie uit de klas te verbinden met praktijkervaring.
Backend-ingenieurs: nieuwsgierig naar waarom talen zich onder de motorkap anders gedragen.
Carrièreswitchers: de softwareontwikkeling betreden met een honger naar fundamentele diepgang.
Technisch leiders: die een principiële basis nodig hebben voor het begeleiden van taalkeuzes in het team.
Wat onze studenten zeggen
Jullie lessen zijn perfect. Ik heb het jaarpakket aangeschaft en heb eindelijk de mogelijkheid om verschillende onderwerpen die mij interesseren te volgen zonder van platform te hoeven wisselen... bedankt voor alles wat jullie doen, ik heb jullie al aan anderen aanbevolen...

Ik vind het fijn hoe de lessen direct ter zake zijn en hoe ik tussen hoofdstukken kan wisselen en content kan overslaan die ik niet nodig heb.

Ik vind de content en de manier van presenteren en transcriptie van video's geweldig, wat het proces versnelt!

Het platform is snel en eenvoudig te gebruiken. De diversiteit aan content en de aanvullende video's helpen enorm bij het leren.

Belangrijkste opleidingen
FAQ
Wie is Dedika?
Is het certificaat geldig in Nederland?
Zijn de cursussen gratis?
Wat is de studielast van de cursus?
Hoe zien de cursussen eruit?
Hoe werken de cursussen?
Wat is de duur van de cursussen?
Wat zijn de kosten of prijzen van de cursussen?
Wat is een EAD- of online cursus en hoe werkt het?
PDF-cursus




















