Deze website gebruikt cookies (en daarmee vergelijkbare technieken) om het bezoek voor u nog makkelijker en persoonlijker te maken. Met deze cookies kunnen wij en derde partijen uw internetgedrag binnen en buiten onze website volgen en verzamelen.
Hiermee kunnen wij en derde partijen advertenties aanpassen aan uw interesses en kunt u informatie delen via social media.
Klik op 'Ik ga akkoord' om cookies te accepteren en direct door te gaan naar de website of klik op om uw voorkeuren voor cookies te wijzigen. Bekijk onze privacyverklaring voor meer informatie.
Concepten van programmeertalen
Informatica en informatiekunde | 4,3 EC
Code T12341
Prijsindicatie € 280
Er bestaan veel verschillende stijlen van programmeren en elke stijl kent weer zijn eigen programmeertalen. Zo zijn er functionele, logische, parallelle en objectgeoriënteerde talen. Deze cursus geeft u inzicht in de verschillen tussen de diverse programmeertalen en programmeerstijlen. De nadruk ligt hierbij meer op de programmeertaalconcepten dan op het programmeren zelf. Daarnaast komen parallellisme, parallelle concepten, en de mogelijkheden voor gestructureerd parallel programmeren uitgebreid aan bod. In de cursus komen ook recente ontwikkelingen op het gebied van programmeertalen aan de orde.

Algemeen

Inhoud

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 in Java 1 en Objectgeoriënteerd programmeren in Java 2. De functionele taal Haskell komt aan de orde in de cursus Functioneel programmeren. Met de logische programmeerstijl heeft u 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. Scala biedt ook met het Actormodel moderne voorzieningen op het gebied van parallel programmeren. Dit komt in de cursus aan de orde in de casestudie Scala.

Aanmelden

Vervangende cursus

Deze cursus wordt per 31 augustus 2018 uit het aanbod genomen. Tot deze datum kunt u zich nog aanmelden voor deze cursus. Deze cursus wordt vervangen door de cursus IB2702 – Concepten van programmeertalen.

Ingangseisen

Aanmelden voor deze cursus is mogelijk als u Functioneel programmeren (IB1602) en Datastructuren en algoritmen (IB1502) heeft afgerond dan wel vrijgesteld heeft gekregen of als u aangemeld bent voor deze cursussen.

Toelichting aanmelden

De inschrijfduur van 12 maanden start 14 dagen na de verwerking van uw aanmelding voor deze cursus. Aanmelden voor het tentamen kan pas nadat uw inschrijfduur gestart is.
Houdt daarom bij het aanmelden voor deze cursus rekening met de aanmeldtermijn voor de tentamens en met de data van eventuele begeleidingsbijeenkomsten.

Aanmeldingsdata

Deze cursus wordt per 31-08-2018 uit het aanbod genomen.
Aanmelden is vanaf deze datum niet meer mogelijk.

Voorkennis

Om de cursus met succes te kunnen volgen, moet u kunnen programmeren in een objectgeoriënteerde programmeertaal, bijvoorbeeld Java (op het niveau van de cursus Objectgeoriënteerd programmeren in Java 2) en in een functionele programmeertaal, bijvoorbeeld Haskell (op het niveau van de cursus Functioneel programmeren). 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. Door het abstractieniveau van de cursus wordt verwacht dat u wiskundige scholing hebt gehad, minimaal op het niveau van de cursus Discrete wiskunde A.
Discrete wiskunde A
Wiskunde voorkennis

Begeleiding

Begeleidingsvorm

Bij de cursus worden online bijeenkomsten aangeboden in de periode van april t/m juni. Daarnaast wordt gedurende het gehele jaar standaardbegeleiding in de digitale leeromgeving aangeboden.

Begeleidingsbijeenkomsten


Online bijeenkomsten
Kwartiel 3 - begeleider: dhr. dr. S. de Gouw
1. ma 12-02-2018 / 19.00-20.30 uur
2. ma 26-02-2018 / 19.00-20.30 uur
3. ma 12-03-2018 / 19.00-20.30 uur
4. ma 26-03-2018 / 19.00-20.30 uur
5. ma 09-04-2018 / 19.00-20.30 uur

Docenten

Dhr. dr. S. de Gouw en dhr. dr. B. van Gastel.

Bereikbaarheidsoverzicht

Bereikbaarheidsinformatie docenten/examinatoren

Tentamen

Tentamenvorm

Regulier schriftelijk tentamen bestaande uit open vragen (ov).

Tentamentoelichting

Bij het tentamen wordt actieve kennis van Java en Haskell verondersteld. U moet desgevraagd programmacode kunnen geven. Daarbij is de syntaxis niet relevant. Van andere programmeertalen die in de cursus aan bod komen wordt passieve kennis verwacht. U hoeft alleen gegeven code te kunnen interpreteren.

Tentamendata

07-02-2019, 29-04-2019.

Tentamenhulpmiddelen

Een zakrekenmachine
Een 'schoon' verklarend Nederlands woordenboek (op eigen risico)

Tentamenmogelijkheden

Laatste tentamenmogelijkheid is 29-04-2019.

Meer info

Meer informatie

Voor een inkijkje in de cursus, ga naar de snapshot.

Cursusmateriaal

De cursus bestaat uit een Engelstalig tekstboek, Programming Language Design Concepts, David A. Watt, John Wiley & Sons, 2004, en een werkboek in twee delen.

Mediagebruik

Bij de cursus hoort een cursussite in de digitale leeromgeving. U vindt daar actuele studie-informatie, aanvullend cursusmateriaal en voorzieningen voor communicatie en discussie met docenten en medestudenten. Voor de bestudering van de cursus moet u gebruikmaken van de volgende software die gratis van internet op te halen is:
- Java JDK, recente versie, en desgewenst programmeeromgeving Eclipse
- Haskell-interpretator WinHugs
- Prolog-interpretator GNU Prolog
- Tekst-editor Notepad++.

Digitale leeromgeving

Bij de cursus hoort een cursussite in de digitale leeromgeving. U vindt daar actuele studie-informatie, aanvullend cursusmateriaal en voorzieningen voor communicatie en discussie met docenten en medestudenten.