Concepten van programmeertalen

Concepten van programmeertalen

  • Informatica
  • IB2702
  • 5 EC
  • Vanaf € 352
  • 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 is reeds gestart en wordt pas in het volgend academisch jaar opnieuw aangeboden.

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


Studiedag Informatica en Informatiekunde Utrecht, onder voorbehoud
Kwartiel 3 - begeleider: dhr.T. Steenvoorden en dhr. S. de Gouw
vr 16-02-2024 / startbijeenkomst / tijd ntb
Tijdig aanmelden via: ou.nl/inf-studiedag

Online-bijeenkomsten
Kwartiel 3 - begeleider: dhr.T. Steenvoorden en dhr. S. de Gouw
1. ma 26-02-2024 / 19.00-21.00 uur
2. ma 11-03-2024 / 19.00-21.00 uur
3. ma 25-03-2024 / 19.00-21.00 uur
4. ma 08-04-2024 / 19.00-21.00 uur

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

23-04-2024 19:00, 08-07-2024 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.