Concepten van programmeertalen

Concepten van programmeertalen

  • Informatica
  • IB2702
  • 5 EC
  • Vanaf € 384
  • Voor dit product gelden ingangseisen
Deze cursus heeft een vast startmoment. Kijk in het Jaarrooster wanneer de cursus van start gaat en wanneer de begeleiding is ingeroosterd.

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 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

Aanmelden voor deze cursus is mogelijk als je:
- de volgende cursussen conform je online studiepad hebt afgerond, dan wel hebt vrijgesteld gekregen: Computernetwerken (IB0702), Formele talen en automaten (IB0802), Geavanceerd objectgeoriënteerd programmeren (IB0902), Inleiding informatica (IB0102), Logica, verzamelingen en relaties (IB0402), Objectgeoriënteerd programmeren (IB1102) en Practicum ontwerpen en implementeren (IB1202); en daarnaast
- minimaal ingeschreven bent voor de volgende cursussen en deze grotendeels bestudeerd hebt: Datastructuren en algoritmen (IB1502) en Functioneel programmeren (IB1602) conform je online studiepad.

Toelichting aanmelden

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

De cursus wordt eenmaal per academisch jaar aangeboden.

Voorkennis

Om de cursus met succes te kunnen volgen, moet je 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.

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 online leeromgeving aangeboden.

Begeleidingsbijeenkomsten


Bijeenkomsten (hybride) tijdens studiedag Informatica en Informatiekunde

Kwartiel 3 - begeleiders: dhr.dr. S. de Gouw en/of dhr.dr. T. Steenvoorden
- vr 14-02-2024 / introductie / tijd wordt nader bekend gemaakt




Tentamenvorm

Digitaal groepstentamen met open vragen.

Tentamentoelichting

U dient zelf tijdig aan te melden voor een tentamen.

Bij het tentamen wordt actieve kennis van Java en Haskell verondersteld. Je 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. Je hoeft alleen gegeven code te kunnen interpreteren.

Tentamendata

12-11-2024 19:00, 23-04-2025 19:00, 07-07-2025 19:00.

Tentamenhulpmiddelen

Het online woordenboek
De online rekenmachine
Het online woordenboek t.b.v. ANS

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. Je vindt daar actuele studie-informatie, aanvullend cursusmateriaal en voorzieningen voor communicatie en discussie met docenten en medestudenten. 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++.

Digitale leeromgeving

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