Inhoud
Introductie tot de cursus 1 2
3
4
6
Plaats en functie van de cursus 7 Inhoud van de cursus 7 2.1 Tekstboek 7 2.2 Voorkennis 8 2.3 Leerdoelen 8 2.4 Opbouw van de cursus 9 Leermiddelen en wijze van studeren 3.1 Leermiddelen 9 3.2 Wijze van studeren 10 Toetsing 10
9
Introductie tot de cursus
Om u wegwijs te maken in de cursus Formele talen en automaten, informeren wij u eerst over de bedoeling van de cursus, de opzet van het cursusmateriaal, de manier waarop u de cursus kunt bestuderen en de wijze waarop deze getoetst wordt. U vindt in deze introductie praktische en studietechnische informatie die u inzicht geeft in de aard en opzet van de cursus en u helpt bij het studeren. 1
Plaats en functie van de cursus
De cursus Formele talen en automaten is een cursus van het derde niveau met een studielast van 4.3 EC, wat overeenkomt met circa 100 uur. De cursus maakt deel uit van de postpropedeuse van de bacheloropleiding Informatica. Formele talen zijn talen die met behulp van een eindige formele beschrijving volledig gedefinieerd kunnen worden. Programmeertalen vallen onder deze categorie, maar natuurlijke talen zoals het Nederlands en Engels niet. Voorbeelden van zulke beschrijvingen zijn grammatica’s en automaten. Beide kunnen gebruikt worden om de structuur van een formele taal vast te leggen, en aan beide kunnen redeneringen over eigenschappen van formele talen worden opgehangen. In deze cursus bekijken we verschillende families van formele talen met elk specifieke eigenschappen en verschillende soorten van formele beschrijvingen. Aan het einde van de cursus worden turingmachines behandeld. Dat zijn automaten waarmee elk algoritmisch probleem opgelost kan worden. Ook wordt een indeling van talen aan de hand van de Chomsky-hiërarchie besproken. Als slotstuk komt het begrip beslisbaarheid aan de orde. We zien dan dat er problemen zijn waarvoor geen algoritme bestaat. Deze cursus is ontwikkeld onder het toeziend oog van prof. dr. W.J. Fokkink, Vrije Universiteit Amsterdam. In het werkboek is op een aantal plaatsen dankbaar gebruik gemaakt van het lesmateriaal dat hij ter beschikking heeft gesteld. 2
Inhoud van de cursus
2.1
TEKSTBOEK
In de cursus bespreken we een deel van het vakgebied formeletalentheorie, aan de hand van het Engelstalige tekstboek An introduction to formal languages and automata, fifth edition, van Peter Linz (2012, Jones & Bartlett Learning).
OU
7
Formele talen en automaten
Het tekstboek is een introductie op de theorie van formele talen, automaten, allerlei modellen van berekenbaarheid en complexiteit. In de cursus beperken we ons tot de eerste twee onderwerpen en kijken we op één manier naar berekenbaarheid. Met het tekstboek wordt een cd-rom meegeleverd. Hiervan maken we in de cursus ook gebruik. Verwijzing naar Tekstboek
In het werkboek, dat leidend is voor de studie van de cursus, wordt naar het tekstboek verwezen. Voor die verwijzingen handhaven we de Engelse termen van het tekstboek. Zo hebben we het over chapter, section, subsection, theorem, definition, enzovoort, als we het over onderdelen van het tekstboek van Linz hebben. We gebruiken ook vaak kortweg ‘Linz’ om te verwijzen naar het tekstboek. De titels van leereenheden en van de paragrafen in het werkboek dragen dezelfde Engelse namen als de corresponderende onderdelen in het tekstboek. Zo is de relatie tussen werkboek en tekstboek meteen duidelijk. 2.2
VOORKENNIS
We geven aan welke voorkennis nodig is om de cursus te bestuderen. De cursus Formele talen en automaten veronderstelt wiskundekennis op ten minste havoniveau, aangevuld met kennis over in ieder geval (elementaire) logica, verzamelingen, relaties, functies, grafen en bomen. Verder is kennis van elementaire wiskundige bewijsmethoden nodig. Deze wiskundevoorkennis kan opgedaan worden in de cursussen Discrete wiskunde A en Discrete wiskunde B van de Open Universiteit. De cursus veronderstelt ook basiskennis van programmeren, en bij voorkeur ook enige programmeervaardigheid in Java. De theorie van formele talen is terug te vinden in programmeertalen, en dit komt natuurlijk ter sprake tijdens de cursus. Er worden illustratieve voorbeelden gebruikt van de syntaxis van sommige programmeertalen. Tevens wordt het compileren en interpreteren van een computerprogramma ter sprake gebracht. Voor de uitvoering van een practicumopdracht wordt van u verwacht dat u eenvoudige Java-opdrachten kunt opstellen. De Open Universiteit biedt cursussen aan over al deze onderwerpen; op Studienet vindt u links naar de relevante cursussen. 2.3
LEERDOELEN
Na het bestuderen van de cursus wordt verwacht dat u – kunt aangeven wat een formele taal is en een globale indeling van formele talen op eigenschappen kunt maken – de belangrijkste eigenschappen van reguliere en context-vrije talen kunt aangeven – een grammatica kunt interpreteren, construeren en transformeren – kunt aangeven hoe een eindige automaat, een stapelautomaat en een turingmachine werken – het verband kunt uitleggen tussen automaten, talen en grammatica's – het begrip beslisbaarheid kunt omschrijven – praktische toepassingen van de theorie kunt noemen.
8
OU
Introductie tot de cursus
2.4
OPBOUW VAN DE CURSUS
Introductie studielast 1 uur
Het lezen van deze introductie en het verkennen van de cursussite worden begroot op 1 uur studielast.
Blok 1 studielast 8 uur
Het eerste blok bestaat uit één introductieleereenheid over de basisconcepten taal, grammatica en automaat. In dit stadium worden deze concepten, die nauw verband met elkaar houden, slechts globaal beschreven. In twee voorbeelden wordt meteen de link van de theorie met computers en computerprogramma's gelegd.
Blok 2 studielast 25 uur
In dit blok komen reguliere talen en hun eigenschappen aan de orde. Een reguliere taal kan op verschillende manieren formeel of informeel beschreven worden. Wij verdiepen ons in drie formele beschrijvingen: eindige automaten, lineaire grammatica's en reguliere expressies.
Blok 3 studielast 30 uur
In het vorige blok hebben we gezien dat sommige talen niet regulier zijn. Het thema van blok 3 zijn de context-vrije talen, een andere familie van talen, waarvoor andere formele beschrijvingen bestaan. We leren wat de eigenschappen van context-vrije talen zijn en hoe we een context-vrije taal kunnen beschrijven met behulp van een context-vrije grammatica en een stapelautomaat.
Blok 4 studielast 15 uur
Er bestaan ook talen die niet context-vrij zijn. Talen blijken ingedeeld te kunnen worden in een hiërarchie: de hiërarchie van Chomsky. Deze hiërarchie bestuderen we in het laatste blok van de cursus. In dit blok bestuderen we ook de turingmachine, een automaat die krachtig genoeg is om een algoritmisch probleem te kunnen oplossen. Maar ook in dit blok ontdekken we dat er grenzen zijn aan wat mogelijk is. Er bestaan namelijk problemen die niet algoritmisch zijn en die dus niet door een turingmachine opgelost kunnen worden.
Practicum studielast 17 uur
Het practicum is onderverdeeld in een programmeeropdracht en een discussieopdracht.
Eindtoets studielast 4 uur
De eindtoets is representatief voor een schriftelijk tentamen. 3
Leermiddelen en wijze van studeren
3.1
LEERMIDDELEN
Tekstboek
Het tekstboek bevat de leerstof die behandeld wordt in de cursus.
Werkboek
Het werkboek geeft per leereenheid aan welk deel van het tekstboek bestudeerd moet worden. Daarnaast bevat het werkboek aanvullingen, opgaven en opdrachten. Een opgave wordt gemaakt met pen en papier; een opdracht werkt u uit met behulp van de computer. Elke leereenheid bevat ook een zelftoets. De opgaven uit deze zelftoets zijn representatief voor de soort opgaven die u op het tentamen kunt verwachten.
Opgave Opdracht Zelftoets
Het werkboek bevat ook de uitwerkingen van de opgaven en opdrachten.
OU
9
Formele talen en automaten
Studienet
De cursussite op Studienet is een onlosmakelijk onderdeel van de cursus. Op deze site staat alle informatie die aan verandering onderhevig is en alles wat te maken heeft met de gebruikte software. Meer specifiek treft u hier het volgende aan: – informatie over de studiebegeleiding – informatie over de practicumopdrachten – informatie over tentaminering (details over de toetsvorm, tentamendata en -locaties) – eventuele aanvullingen op en wijzigingen van de verplichte leerstof – de practicumopdrachten die u thuis moet maken en in moet leveren – een eindtoets die representatief is voor het tentamen en uiterlijk een jaar na het verschijnen van de cursus nog een extra proeftentamen – een lijst met terminologie (in het Engels en in het Nederlands) – een lijst met errata voor het tekstboek en het werkboek (indien beschikbaar) – links naar relevante of interessante websites – informatie over het installeren van en het werken met de software – bouwstenen voor sommige opdrachten. We raden u aan om aan het begin van het bestuderen van de cursus de cursussite goed te verkennen en alle aanvullende informatie te lezen.
Software
De cursus maakt gebruik van Java versie 1.6. Alle software bij de cursus is uitgetest onder Windows XP. Alle verdere informatie over de gebruikte software vindt u op Studienet. 3.2
WIJZE VAN STUDEREN
U bestudeert de cursus vanuit het werkboek; daarin wordt aangegeven welke delen van het tekstboek bestudeerd moeten worden. Bij het verschijnen van de cursus behoren alle leereenheden in het werkboek tot de verplichte stof, met uitzondering van een deel van leereenheid 1. Het gebeurt wel eens dat hier na verloop van tijd verandering in komt; raadpleeg dus Studienet om er zeker van te zijn dat dit nog geldt. U kunt bij het bestuderen van een leereenheid precies de aanwijzingen in het werkboek volgen. Als alternatief kunt u ook per leereenheid eerst de te bestuderen delen van de tekstboeken in hun geheel doornemen en daarna pas de aanvullingen in het werkboek bekijken. We raden u aan om de eerstgenoemde werkwijze te volgen, tenzij u al bekend bent met de materie. Wij raden u een actieve studeerhouding aan. Het is met name van belang dat u de opgaven en opdrachten zoveel mogelijk zelfstandig uitwerkt voordat u naar de terugkoppeling kijkt. 4
Toetsing
De cursus wordt getoetst door middel van opdrachten in het practicum en een schriftelijk tentamen. Alle details over de schriftelijke toetsing (zoals wat u mee mag nemen naar het tentamen) en de practicumopdrachten (planning en beoordeling), vindt u op Studienet. Ook de tentamendata en -locaties zijn daar te vinden.
10
OU