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.
$altText
Concepten van programmeertalen
Informatica en informatiekunde | 5 EC | Voor dit product gelden ingangseisen
Code IB2702
Prijsindicatie € 324
Deze cursus heeft een vast startmoment. Kijk in het Jaarrooster wanneer de cursus van start gaat en wanneer de begeleiding is ingeroosterd.

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 en Geavanceerd Objectgeoriënteerd programmeren. 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.

Leerdoelen
Na het bestuderen van deze cursus wordt verwacht dat u:
- een goed inzicht hebt in de basisconcepten van programmeertalen, zoals waarden, typen, expressies, variabelen, opdrachten, bindingen en abstractiemechanismen;
- kunt 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;
- een goed inzicht hebt in inkapseltechnieken, typesystemen en manieren om de programmaverwerking te onderbreken;
- een goed inzicht hebt in de concepten van parallel programmeren en de problemen die hierbij kunnen optreden;
- met eigen woorden kunt beschrijven welke taalconcepten kenmerkend zijn voor respectievelijk de imperatieve, de objectgeoriënteerde, de functionele de parallelle, de logische en de scripting programmeertalen.

Aanmelden

Ingangseisen

Aanmelden voor deze cursus is mogelijk als u de propedeuse van de bachelor Informatica en de cursussen 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

Deze cursus start 10 februari 2020. We adviseren om uiterlijk zondag 26 januari 2020 hiervoor aan te melden zodat u tijdig het eventuele cursusmateriaal ontvangt, toegang heeft tot de leeromgeving en (indien van toepassing) ingedeeld kunt worden in een studiegroep. Bij aanmelding na 26 januari 2020 kunnen we dit niet garanderen. Aanmelden is mogelijk tot en met 9 februari 2020.

De cursus wordt éénmaal per academisch jaar aangeboden.

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 Geavanceerd objectgeoriënteerd programmeren) 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.

Begeleiding

Begeleidingsvorm

Deze cursus heeft een vast startmoment. Kijk in het Jaarrooster wanneer de cursus van start gaat en wanneer de begeleiding is ingeroosterd.

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 10-02-2020 / 19.00-20.45 uur
2. do 27-02-2020 / 19.00-20.45 uur
3. ma 09-03-2020 / 19.00-20.45 uur
4. ma 23-03-2020 / 19.00-20.45 uur
5. ma 06-04-2020 / 19.00-20.45 uur

Docenten

Dhr. dr. S. de Gouw, mw. dr. ir. F. Aivaloglou en dhr. dr. B. van Gastel.

Bereikbaarheidsoverzicht

Bereikbaarheidsinformatie docenten/examinatoren

Tentamen

Tentamenvorm

Regulier schriftelijk tentamen bestaande uit open vragen (ov).

Tentamentoelichting

U dient zelf tijdig aan te melden voor een tentamen.

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

13-11-2019, 23-04-2020, 06-07-2020.

Tentamenhulpmiddelen

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

Meer info

Meer informatie

Voor een inkijkje in de cursus, ga naar de snapshot van de voorgaande cursus (T12341 Concepten van programmeertalen).

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.