Concepten van programmeertalen
Programmeren kan op veel verschillende manieren, in verschillende stijlen. Elke programmeerstijl kent zijn eigen specifieke programmeertalen. Zo onderscheiden we imperatieve, objectgeoriënteerde, parallelle, functionele en logische talen. Elke taal heeft weer zijn eigen voor- en nadelen op uiteenlopende onderdelen als uitdrukkingskracht, beschikbaarheid van implementaties, betrouwbaarheid, efficiëntie en theoretisch fundament. De objectgeoriënteerde programmeerstijl is aan bod geweest in de cursussen Objectgeoriënteerd programmeren en Geavanceerd Objectgeoriënteerd programmeren. De functionele taal Haskell komt aan de orde in de cursus Functioneel programmeren. Met de logische programmeerstijl heb je wellicht al kennis gemaakt. De parallelle programmeerstijl wordt als onderdeel van de cursus Concepten van programmeertalen uitgebreid besproken. Ook komt aspectgeoriënteerd programmeren aan de orde.
Het hoofddoel van deze cursus is het bieden van inzicht in de verschillen tussen de diverse talen. Een belangrijk aspect van deze cursus is dat de nadruk veel meer ligt op de programmeertaalconcepten dan op het programmeren zelf. Voorbeelden van taalconcepten zijn de gegevenstypen in een taal, de soorten variabelen en opdrachten, en de verschillende mogelijkheden van abstractie.
In moderne programmeertalen worden meerdere programmeerstijlen naast elkaar aangeboden. Een bekend voorbeeld is de objectgeoriënteerde taal Scala waarin ook functioneel geprogrammeerd kan worden. In de cursus bekijken we wat dit kan betekenen voor de programmeur. Dit komt in de cursus aan de orde in de casestudie Scala.
Leerdoelen
Na bestudering van deze cursus kun je:
- de basisconcepten van programmeertalen, zoals waarden, typen, expressies, variabelen, opdrachten, bindingen en abstractiemechanismen benoemen en uitleggen,
- aangeven in hoeverre een concrete programmeertaal voldoet aan de vier in deze cursus geformuleerde kwaliteitscriteria voor programmeertalen: het type-volledigheidsprincipe, het kwalificatieprincipe, het abstractieprincipe en het correspondentieprincipe,
- de inkapseltechnieken, typesystemen en manieren om de programmaverwerking te onderbreken benoemen en uitleggen,
- de concepten van parallel programmeren en de problemen die hierbij kunnen optreden benoemen en uitleggen,
- met eigen woorden beschrijven welke taalconcepten kenmerkend zijn voor respectievelijk de imperatieve, de objectgeoriënteerde, de functionele de parallelle, de logische en de scripting programmeertalen.
Ingangseisen
Je staat een 7 gemiddeld voor de vakken in jouw opleiding en je hebt 120 of meer studiepunten gehaald op het moment van het inleveren van de leerovereenkomst. Een cijferlijst moet bij de leerovereenkomst toegevoegd worden.
De leerovereenkomst wordt op de ingangseisen gecontroleerd. Daarna krijg je bericht dat je kunt inschrijven.
Om de cursus met succes te kunnen volgen, moet je kunnen programmeren in een objectgeoriënteerde programmeertaal, bijvoorbeeld Java en in een functionele programmeertaal, bijvoorbeeld Haskell. Ook kennis van, en vertrouwdheid met, elementaire datastructuren als lijsten en bomen is nodig. Verder wordt in de cursus uitgegaan van een goede vaardigheid in recursief programmeren.
Literatuur
Elke cursus heeft online en/of fysieke literatuur die na inschrijving voor de cursus beschikbaar wordt gesteld. Het fysieke materiaal wordt op jouw thuisadres geleverd. Literatuur hoeft dus niet afzonderlijk aangeschaft te worden.
Rooster
Deze cursus start in kwartiel 3 (februari). Begeleidingsduur is 10 weken met online bijeenkomsten waaraan je kunt deelnemen via de digitale leeromgeving.
Tijdens de bijeenkomsten of in de digitale leeromgeving kun je inhoudelijke vragen stellen aan de docenten. De online bijeenkomsten zijn in de avonduren en worden opgenomen; je kunt ze na afloop opnieuw bekijken.
De bachelors Informatica en Informatiekunde organiseren in deze periode een studiedag op locatie, met plenaire en cursus-bijeenkomsten. Meer informatie vind je op ou.nl/inf-studiedag.
Toetsing
Digitaal tentamen met open vragen (3 data per jaar).
Tentamens kunnen zowel thuis als op een studiecentrum afgelegd worden.
Aanvullende informatie
Voor de bestudering van de cursus moet je gebruikmaken van de volgende software die gratis van internet op te halen is:
- Java JDK, recente versie, en desgewenst programmeeromgeving Eclipse,
- Haskell-interpretator (WinHugs of GHC),
- Prolog-interpretator GNU Prolog,
- tekst-editor Notepad++
De cursussen van de Open Universiteit volg je thuis wanneer jij tijd hebt (activerend online onderwijs met digitale begeleiding).
Meer informatie: www.ou.nl/studieaanbod/IB2702
Deze cursus is onderdeel van de premaster van de Master Computer Science en de Master Software Engineering bij de Open Universiteit. Voor uitgebreide informatie over deze masteropleiding zie: www.ou.nl/studieaanbod/macs of www.ou.nl/studieaanbod/mase
Voor vragen over eventuele toelating tot deze opleiding neem contact op met de studieadviseur via studieadvies.informatica@ou.nl.