Uitwerking Onderdelen Major-Minor Curriculum

Vergelijkbare documenten
Discrete Structuren. Piter Dykstra Sietse Achterop Opleidingsinstituut Informatica en Cognitie

Bijlage bacheloropleiding Informatica

faculteit wiskunde en natuurwetenschappen Bijlagen bachelopleiding Informatica

Curriculum Informatica 2003/04

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie 9 februari 2009 INLEIDING

Studiewijzer BACHELOR KUNSTMATIGE INTELLIGENTIE EXTRA KEUZENVAK VAK: C++ PROGRAMMEERMETHODEN

Introductie tot de cursus

Inhoud. Introductie tot de cursus

Programma Bachelor- en Masteropleiding Informatica

Vakbeschrijvingen Servicevakken Informatica. Curriculumcommissie Informatica October 10, 2003

Programma Bachelor- en Masteropleiding Informatica

Studiewijzer. Bachelor Informatica. Inleiding Programmeren Studiejaar en semester: jaar 1, semester 1 (blok 1)

Modulewijzer tirprog02/infprg01, programmeren in Java 2

Getallensystemen, verzamelingen en relaties

Introductie tot de cursus

Modulewijzer Tirdat01

Logica voor Informatica

Inhoud. Introductie tot de cursus

Automaten & Complexiteit (X )

Bijlage bacheloropleiding Informatica

Bijlagen gentie. Bijlage. Bijlage. Bijlage - - vakgebied. Educatie en. Major van. Minor van

Modulewijzer InfPbs00DT

Lineaire algebra en vectorcalculus

BSc Kunstmatige Intelligentie. : Bachelor Kunstmatige Intelligentie Studiejaar, Semester, Periode : semester 1, periode 2

Inhoud introductie. Introductie tot de cursus

Lineaire Algebra voor E (VKO)

(On)Doenlijke problemen

Vernieuwing Bacheloropleidingen Informatica en Informatiekunde

Opleidingsonderdelen Telecommunicatie Bachelor Informatica. C. Blondia

volgens het Major-Minor Model

Practicumhandleiding. (versie 2010)

Praktische informatie m.b.t. College Lineaire Algebra en Beeldverwerking Bachelor Informatica en Economie 2 e jaar Voorjaar semester 2013 Docent:

Bijlagen bacheloropleiding Kunstmatige Intelligentie

Bijlagen bacheloropleiding Kunstmatige Intelligentie

Werkdocument Major-Minor Informatica

Programmeren met Java

vwo A deel 4 13 Mathematische statistiek 14 Algebraïsche vaardigheden 15 Toetsen van hypothesen 16 Toepassingen van de differentiaalrekening

Studiewijzer Digitale Systeemengineering , versie 1.7, , J.E.J. op den Brouw

Studiewijzer Inleiding Digitale Techniek, versie 1.6, , J.E.J. op den Brouw

Inhoud introductie. Introductie tot de cursus

Introductie tot de cursus

Bijlagen Bacheloropleiding Kunstmatige Intelligentie. Bijlage I Eindtermen van de bacheloropleiding

Referentieniveaus uitgelegd. 1S - rekenen Vaardigheden referentieniveau 1S rekenen. 1F - rekenen Vaardigheden referentieniveau 1F rekenen

slides2.pdf 2 nov

Inhoud. Introductie tot de cursus

RuG-Informatica-cursus Discrete Structuren, versie 2009/2010

Helden van de wiskunde: L.E.J. Brouwer Brouwers visie vanuit een logica-informatica perspectief

Vakgroep CW KAHO Sint-Lieven

: Afstudeerproject BSc KI : Bachelor Kunstmatige Intelligentie Studiejaar, Semester, Periode : semester 2, periode 5 en 6

Uitwerking tentamen Analyse van Algoritmen, 29 januari

LANDSEXAMEN VWO Het examenprogramma Het examenprogramma voor het commissie-examen Wiskunde D bestaat uit de volgende (sub)domeinen:

Praktische Numerieke Wiskunde

Inhoud. Introductie tot de cursus

Studiehandleiding Basiswiskunde cursus

Formeel Denken 2014 Uitwerkingen Tentamen

Programmeren. Inleiding

Voorbereiding onderwijsvisitatie: Bachelor Opleidingsonderdelen J. Broeckhove

Modulen voor Calculus- en Analysevakken

V = {a, b, c, d, e} Computernetwerken: de knopen zijn machines in het netwerk, de kanten zijn communicatiekanalen.

Logica voor Informatica

Bachelorproject (15 EC), BSK. Docent: MSc, Drs. C. Nagtegaal

Ontwerp van Algoritmen: opgaven weken 3 en 4

Studiewijzer Calculus 2 voor Bouwkunde (2DB90), cursus 2011/2012

Programmeren in Java 2

Je hebt twee uur de tijd voor het oplossen van de vraagstukken. µkw uitwerkingen. 12 juni 2015

Ter Leering ende Vermaeck

Mededelingen. TI1300: Redeneren en Logica. Metavariabelen Logica, p Minder connectieven nodig

Vernieuwing Bacheloropleidingen Informatica en Informatiekunde

Algoritmiek. 2 februari Introductie

Processoren. Marc Seutter & David N. Jansen 12 November 2013

Oefening 2.2. Welke van de volgende beweringen zijn waar?

Hoorcollege 1 datavisualisatie

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk.

rh276a 0 We breiden nu bovenstaand programmafragment uit door assignments toe te voegen aan een nieuwe variabele m, aldus:

Java. Basissyllabus. Egon Pas

Grafen. Indien de uitgraad van ieder punt 1 is, dan bevat de graaf een cykel. Indien de ingraad van ieder punt 1 is, dan bevat de graaf een cykel.

CURSUSBESCHRIJVING Deel 1

Scientific Computing

In Vlaanderen bestaat er nog geen leerlijn programmeren! Hierdoor baseren wij ons op de leerlijn die men in Nederland toepast voor basisscholen.

Voortgezet Prog. voor KI

Eindtermen Lineaire Algebra voor E vor VKO (2DE01)

Het toelatingsonderzoek, bedoeld in art van de wet, heeft betrekking op de volgende vakken op VWO-niveau: Wiskunde A of B en Engels.

Python (gem=1,86) Java (gem=1,57) Enquete cursus informatica 1e bachelors oefeningen beter aansluiten bij project?

Inleiding programmeren

Algoritmiek. 8 uur college, zelfwerkzaamheid. Doel. Hoe te realiseren

PTA VWO wiskunde B 1518

Onderwijsbehoeften: - Korte instructie - Afhankelijk van de resultaten Test jezelf toevoegen Toepassing en Verdieping

RuG-Informatica-cursus Discrete Structuren, versie 2009/2010

recursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie

Domein A: Vaardigheden

Introductie tot de cursus

Programmeren in Java 3

Officiële uitgave van het Koninkrijk der Nederlanden sinds 1814.

Eigenschap (Principe van welordening) Elke niet-lege deelverzameling V N bevat een kleinste element.

Datastructuren en algoritmen voor CKI

Programmeren in C++ (deel 1)

Uitgebreide uitwerking Tentamen Complexiteit, juni 2017

PTA VWO wiskunde A 1518

Inhoud. Introductie tot de cursus

Onderwijs- en Examenregeling van de opleiding Informatica aan de Universiteit Utrecht

Transcriptie:

Uitwerking Onderdelen Major-Minor Curriculum Curriculumcommissie Informatica Laatst gewijzigd: 9 november 2005 In dit document staan de voorlopige uitwerkingen van het nieuwe curriculum. Hierbij is het RUG/FWNuitgangspunt gevolgd dat alle cursussen een omvang van 5 EC krijgen. Op veel punten moet nog verder werk gedaan worden. Op dit moment ontbreken nog: 1. Oriëntatie Intell. Systemen (KI) 2. Wet. basisvaard. (KI+Informatica) 3. Functioneel programmeren (weekschema aanwezig) 4. Automaten (weekschema aanwezig) 5. Statistiek 6. Operating Systems 7. IT-Beroepspraktijk Over de in dit stuk opgenomen onderdelen heeft de curriculumcommissie inmiddels vergaderd. Op diverse inhoudelijke discussiepunten zijn beslissingen genomen, en aanbevelingen voor verbeteringen en nadere uitwerkingen gedaan. Om deze reden zijn de notulen van de curriculumcommissie van 23 juni aan het begin van het document opgenomen. Ook opgenomen zijn de samenstelling van de teams en de meest recente versie van het concept-rooster. Opmerkingen zijn uiteraard altijd welkom (naar Jan Jongejan of Jos Roerdink).

Curriculumcommissie Informatica, June 24, 2005 1 Verslag Curriculumcommissie Informatica, 23 juni 2005 Aanwezig: Michael Biehl, Wim Hesselink (verslag), Marten Pijl, Gerard Renardel, Jos Roerdink (voorzitter), Rein Smedinga. Afwezig: Jan Jongejan. Algemene opmerkingen Bespreking van de uitwerkingen van Curriculumonderdelen zoals door de gevormde teams ingestuurd zijn. We zijn nog in afwachting van de uitwerkingen door de teams Bakker-Terlouw en Achterop-Jonker-Petkov. We zijn in het algemeen tevreden over het werk dat geleverd is. In een later stadium zullen de vakken ingedeeld moeten worden overeenkomstig de drie standaardniveau s. Er wordt de aandacht op gevestigd, dat de conceptverroostering van het eerste jaar van de major gewijzigd is door een permutatie binnen de periodes 2, 3 en 4. Het is geworden: periode 2: WetBaVa, OrInf, Mod1; periode 3: OOA (=OO), DiscStruct, PCor; periode 4: OOB (=OOO), A&N, Mod2. Naar aanleiding van de bijdragen van en over Software Engineering wordt vastgesteld, dat besloten is dat het Afstudeerproject (AP) per specialistische minor verschillend zal zijn. Dit impliceert, dat Project Software Ontwikkeling (PSO) van het huidige AP losgekoppeld wordt en dat het algemene leerdoel leren projectmatig werken zoveel mogelijk in PSO gerealiseerd zal moeten worden. Het Concept Eindtermen (2 juni) De eindtermen verwijzen naar doelstellingen. Deze moeten hier worden opgenomen, zie het Workshop document van Jan. 2005, sectie 2.2. We vinden voorts, dat de zes geformuleerde CCV s, hoewel niet dekkend, toch richtinggevend zijn voor het curriculumontwerp. Ze moeten dus niet verloren gaan maar een goede plaats krijgen in het uiteindelijk curriculumontwerpdocument, zeg ergens tussen de doelstellingen en de eindtermen. We voegen toe een eindterm als (2b): Het doelmatig gebruiken van een methode van software ontwikkeling (bv. Unified Process). Explicieter dan thans dient in het onderwijs nagestreefd te worden: het aankweken van een engineering attitude (het beschouwen van zaken als performance, reliability en andere quality aspects) en vaardigheden op het gebied van ontwerpen (opnemen in de eindtermen?). Bespreking van de voorgestelde vak-uitwerkingen Imperatief Programmeren. Met instemming overgenomen. Logica, Discrete Structuren en Algoritmen & Datastructuren. Renardel zegt toe met een voorstel te komen voor formuleringen van de doelstellingen, die begrijpelijk en overtuigend zijn voor mensen die de cursussen (nog) niet gelopen hebben. Verder akkoord.

Curriculumcommissie Informatica, June 24, 2005 2 Modelleren 1 (Wiskunde A) en 2 (Wiskunde B). Er is hier eerst overleg met KI nodig, over de namen, de inhoud en de projectmatige opzet. Vervolgens met Wiskunde over de uitvoering. Zichtbare betrokkenheid van één docent vanuit Informatica en/of KI zal nodig zijn voor de projectorganisatie en ter motivatie en ondersteuning van de studenten. Een studiewijzer is inderdaad onontbeerlijk om de studenten inzicht in de opbouw van de cursus te geven. Het doet wat vreemd aan, dat de eindtermen van Modelleren 1 en 2 gelijk zijn. Objectgeoriënteerd Programmeren A. Het voorstel (in punt 9) om de namen van OOA en OOB te wijzigen in Objectgeoriënteerd Programmeren en Objectgeoriënteerd Ontwerpen wordt overgenomen. Programmacorrectheid. Overgenomen. Objectgeoriënteerd Ontwerpen (vroeger OOB). Afkortingen zoals MVC en IDE zullen ingevoerd of vermeden worden. Verder akkoord. Software Analyse en Ontwerp (SAO). Overgenomen. De wijze van toetsing moet iets explicieter gemaakt worden. Aan het eind van de cursus kan projectmatig werken worden geïntroduceerd ter voorbereiding van PSO. Invulling van PSO volgt nog. Databases. Verzoek een begrijpelijke subsectie Doelstellingen toe te voegen. Voorkennis: Objectgeoriënteerd Programmeren en Objectgeoriënteerd Ontwerpen. Verder akkoord. Signalen en Systemen. Voorstel akkoord. Het is niet nodig naar een alternatief voor het boek uit te kijken. Het lijkt nuttig het modelleeraspect wat te versterken, bv. via nadere uitwerking van het practicum (vgl Modelleren 1 en 2). De minoren De specialistische minoren hebben een omvang van 30 ec en een structuur van drie verplichte vakken, één keuzevak en een Afstudeerproject (AP) van 10 ec. Het keuzevak dient te passen in de betreffende richting. Het kan ook ingevuld worden als een project van 5 ec (of als een uitbreiding van het AP tot 15 ec). De keuze van een specialistische minor is een belangrijke voorsortering voor de masterphase, maar wordt niet dwingend opgelegd. De namen van de minoren zijn in beginsel gelijk aan de namen van de aansluitende mastervarianten. Dit roept de vraag op naar het ontbreken van het woord Systems in de minor Software Engineering. Voorstel Minor Software Engineering. Opname van het vak Software Engineering spreekt hier van zelf. Het voorstel om het vak Translators op te nemen in de major vindt geen meerderheid. Dit vak blijft derhalve in de minor SE. Als derde verplichte minorvak wordt voorgesteld een vak Software Quality and Process Improvement (een combinatie van Software Quality and Management en Software Process Improvement ). De Curriculumcommissie is ermee

Curriculumcommissie Informatica, June 24, 2005 3 akkoord, dat het vak Ontwerp van Intelligente Systemen niet verplicht wordt gesteld. Voorstel Minor Computational Science and Visualization. Akkoord. De vakken dienen nog uitgewerkt te worden. Voorstel Minor Intelligent Systems. Akkoord. Het vak Ontwerp van Intelligente Systemen wordt hier niet voorgesteld en vervalt dus vooralsnog. Het stuk over de vrije minor(en) stelt vragen waarop we nog geen antwoord weten. Er zijn incidenteel studenten die een informatica (service) vak bij ons willen volgen, maar we voorzien dat vrijwel geen enkele student zal kiezen voor een vrije minor informatica van 30 ec. Er zullen vast ook studenten zijn, die in hun major wat informaticavakken moeten doen (bv naast wiskunde of natuurkunde) en die daarnaast nog wat informatica willen doen, maar niet 30 ec erbij. Het zou ons veel beter uitkomen als elke bachelorstudent naast zijn major van 120 ec en zijn specialistische minor van 30 ec een profileringsruimte van 30 ec zou hebben die hij/zij cumulatief kan invullen. Het is de vraag of dit toegestaan zal zijn of dat het uitdrukkelijk verboden, cq onmogelijk gemaakt wordt. Hesselink legt dit voor aan Bart van der Laar. Actiepunten en slotopmerkingen We verwachten de uitwerkingen van OrInf, A&N, FP, Automaten, OS, ITB, APPHPS en Net Computing zo spoedig mogelijk. Renardel komt nog met mooiere doelstellingen voor Logica, Discrete Structuren en Algoritmen & Datastructuren. Jongejan wordt gevraagd doelstellingen voor Databases te formuleren. Smedinga c.s. zullen de SE-vakken nader uitwerken. Statistiek moet nog gemaakt worden. Uitwerkingen van OrInt en WetBaVa zullen van KI moeten komen of in samenspraak met hen moeten worden opgesteld. Tevens moet er met KI overlegd worden over Modelleren 1 en 2. Hesselink deelt mee, dat de zelfstudie voor de accreditatie van 2007 per 1 maart 2006 bij de QANU zal dienen te zijn. We zullen hier dus in het najaar hard aan moeten trekken. Er worden thans namen gevraagd voor potentiële leden van een visitatiecommissie.

Uitwerking Major-minor curriculum Wim Hesselink, Jos Roerdink, 9 mei 2005 Hierbij vragen wij jullie om de curriculumonderdelen in een elftal teams (met overlap) nader uit te werken wat betreft eindtermen, inhoud, onderwijsvormen, onderwijsmateriaal, naamgeving, onderwijsorganisatie. We verzoeken de teams vóór 10 juni met een afgerond voorstel te komen. De samenstelling van de teams kan uiteraard in onderling overleg aangepast worden. Zie ook het Werkdocument, versie 2, http://www.cs.rug.nl/~roe/curriculum/majorinf.pdf. Voorstellen s.v.p. per e-mail naar Jos Roerdink, roe@cs.rug.nl. Team Onderdeel Aandachtspunten Gerard Renardel Discr. Structuren Logica Elementen uit Dig. Techniek verwerken. Gemeensch. vak 1e semester. Rein Smedinga OO-B Naar 5 EC. Afstemmen met OO-A. CV elementen opnemen. Dieter Hammer SAO Naar 5 EC. PSO Naar 5 EC. CV elementen opnemen. Afstudeerproject in verdiepende minor, dus minder aanbod van studenten die AP1/2 in richting SE doen. Wim Hesselink Imp. Prog. CV elementen opnemen. Harm Bakker OO-A Rudy Moddemeijer Prog. Correctheid Valt in propedeuse. Alg & Datastructuren Behandeling FFT wenselijk Harm Bakker Orient. Informatica Gemeensch. vak 1e semester Jan Terlouw Func. Progr. Automaten Nieuw vak 5 EC. Vervangt Talen en Automaten. ITB Naar 5 EC. Extra elementen CV ter grootte 2 EC opnemen. Sietse Achterop Arch. & Netwerken Aansluiting tussen en eventuele overlap Jan Eppo Jonker Net Computing van deze vakken. Nicolai Petkov Operating Systems Elementen uit Concurrency APPHPS verwerken. Jan Jongejan Databases Naar 5 EC. Michael Wilkinson Modelleren: Overleg met Wiskunde over verroostering Jos Roerdink - Wisk. A+B van Wisk. A+B, Statistiek. Gert Vegter - Statistiek Rudy Moddemeijer - Sign.& Systemen p.m. Rein Smedinga, Dieter Hammer, Jan Jongejan, Rudy Moddemeijer Gert Vegter, Jos Roerdink, Henk Bekker Nicolai Petkov, Michael Biehl, Michael Wilkinson, Gerard Renardel, Jan Terlouw Harm Bakker, Sietse Achterop, Rein Smedinga, Jan Jongejan Wet. Basisvaardigheden Minor Software Engineering Minor Computational Science & Visualisatie Minor Intelligente Systemen Gemeenschappelijke vakken, b.v. beeldbewerking. Gemeenschappelijke vakken, b.v. beeldbewerking. Vrije minor Uit bestaand service-onderwijs?

4.3 Minoren We gaan uit van een verdiepende minor voor elk van de bestaande mastervarianten. Tabel 9: Drie verdiepende minoren. Software Engineering Computational Science & Visualisatie Intelligente Systemen Software Engineering Computer Graphics Kennisrepresentatie & Redeneren Translators Computational Geometry Neurale Netwerken Ontw. Intell. Syst. Beeldbewerking Beeldbewerking keuze keuze keuze AP1 AP1 AP1 AP2 AP2 AP2 De genoemde invulling is een eerste aanzet. Nieuw zijn de vakken Translators en Beeldbewerking (dit vak is gemeenschappelijk in minor 2 en 3). Het vak Neurale Netwerken in minor 3 behoeft mogelijk aanpassing. De haalbaarheid van de minor Software Engineering hangt af van het tijdig opvullen van vacatures binnen de basiseenheid Software Engineering. Ook over een vrije minor voor studenten buiten Informatica kan nagedacht worden. 4.4 Verroostering major Hieronder een concept verroostering. Hierbij hebben we tevens gekeken naar de voorlopige semesterindeling die tijdens Workshop 3 is vastgesteld, en naar de bijbehorende CCV s. Tabel 10: Concept verroostering van de major (120 EC). Semester 1 Semester 2 Semester 3 Semester 4 Semester 5 Orient Intell Sys OO-A Algor & Datastr Softw Arch&Ontw Operating systems Imper Progr Discr Structuren Func Progr Signalen&Systemen IT-Beroepspraktijk Logica Progr Correctheid minor minor minor Wet Basisvaard. OO-B Automaten Statistiek Paral. Computing Orient Informatica Arch & Netw Databases Proj Softw Ontw Net Computing Modell 1: Wisk A Modell 2: Wisk B minor minor minor Opmerkingen: APPHPS is omgedoopt tot Parallel Computing. Semester 6 is niet opgenomen, dit wordt geheel besteed aan verdiepende minor (incl. afstudeerproject). Wiskunde A, Wiskunde B, Statistiek en Signalen & Systemen maken deel uit van het voorgestelde project Modelleren, zie Appendix A, uitwerking CCV4. We concluderen dat een aantal CCV s hier wel degelijk in aan te wijzen is, maar er zijn ook lacunes, zoals we al eerder hadden geconstateerd. Het gebruiken van thema s per blok kan een punt van discussie zijn. 11

1 Inleiding 1.1 Omschrijving Imperatief Programmeren (Harm Bakker, Wim Hesselink, Rudy Moddemeijer) Het vak Imperatief Programmeren vormt samen met de vakken Objectgeoriënteerd Programmeren A en Objectgeoriënteerd Programmeren B de brede basiscursus imperatief en objectgeoriënteerd programmeren. In deze eerste cursus komen de gebruikelijke controlestructuren uit imperatieve talen aan de orde (keuze, herhaling, recursie); methoden worden in eerste instantie geïntroduceerd als mechanisme om structuur aan te brengen in het programma. Omdat de programma s worden genoteerd in Java, zal er ook aandacht zijn voor objecten; klasse-hiërarchieën en overerving vallen buiten het bereik van dit vak. 2 Doelstelling De bedoeling van dit vak is om een begin te maken met het ontwikkelen van de vaardigheid van studenten om vanuit een (informele) probleemstelling te komen tot een correct programma. Naast het behandelen van de syntax en semantiek van een aantal constructies uit de taal java, is er expliciet aandacht voor probleem-oplossen: hoe kom je van een vraagstelling tot een algoritme/programma in java. 2.1 Plaats in het curriculum Periode 1.1; omvang 5 EC. 3 Voorkennis Als voorkennis wordt niet anders verondersteld dan de verplichte stof uit het profiel Natuur en Gezondheid uit de tweede fase van het vwo (of daarmee vergelijkbaar). In het bijzonder zal enige vertrouwdheid met onderwerpen uit het wiskunde-programma nodig zijn. 4 Einddoelen De student kent de begrippen variabele en toekenning; De student heeft een (informele) notie van het begrip toestand en kan aangeven hoe een opeenvolging van toekenningen de toestand verandert. De student kent de basistypen in java en de onderlinge verhoudingen tussen deze typen; De student kent de syntax en semantiek van de java-constructies if, for, while, do; De student kent één- en meerdimensionale arrays; De student kent de begrippen type en variabele; de student kent de begrippen klasse en object; 1

De student kent het begrip methode en kent het mechanisme van parameteroverdracht in java; De student kent het begrip recursie en weet dit mechanisme in te zetten; De student kan de orde van tijdcomplexiteit van een programma met herhalingsstructuren aangeven en beargumenteren; De student is in staat om op adequate wijze gebruik te maken van de online APIdocumentatie van java, voorzover dit behandelde klassen betreft; De student kan een probleemstelling herformuleren tot een programmeerprobleem (modelleren); De student kan helder verslag doen van het traject van een (informele) probleemstelling tot de uitwerking in de vorm van een java-programma. 5 Werkvormen 5.1 Hoorcollege Tijdens de hoorcolleges worden systematisch constructies uit de taal java gepresenteerd, steeds geïnpireerd vanuit een probleemstelling. 5.2 Werkcollege Tijdens het werkcollege krijgen de deelnemers de gelegenheid om onder begeleiding van een docent de leerstof te verwerken aan de hand van min of meer elementaire oefeningen. 5.3 Practicum Daar waar het werkcollege bedoeld is om elementaire vaardigheden te ontwikkelen is het practicum bedoeld om de diverse vaardigheden te integreren en toe te passen in iets complexere probleemstellingen. Verder zal bij een aantal problemen de gevonden oplossing moeten worden gepresenteerd in een (kort) verslag. 5.4 Zelfwerkzaamheid Per week in de collegeperiode 7 uur met daarna 20 uur voor de afsluitende keuzeopdracht. 6 Literatuur Ira Pohl/ Charlie McDowell: Java by Dissection Addison-Wesley (2001) ISBN 0201751585 7 Collegeschema Er wordt uitgegaan van één hoorcollege van twee uur, één werkcollegezitting van twee uur en één practicumsessie van twee klokuren per week. 2

week 1 2 3 4 5 6 7 onderwerpen Wat is programmeren?; editen, compileren, uitvoeren; (basis-)structuur van een java-programma; het type int; variabelen, toekenning en sequentie; in- en uitvoer met Extractor; het if-statement. De primitieve types in java; operatoren; type-casting; de klasse Math; de klasse String; (statische) methoden met (primitieve) parameters; parameter-overdracht. Het for-statement; arrays. Klassen en objecten; de overeenkomst met typen en variabelen; objecten als bundeling van data-elementen en operatoren (methoden). Het while-statement; het do - while statement; oneindige herhaling; het break-commando. Recursie: recursieve functies uit de wiskunde; generalisatie; recursieve oplossingen bij array-problemen. Complexiteit van algoritmen: tel het aantal elementaire operaties dat het programma (maximaal) moet uitvoeren om de oplossing te berekenen (als functie van de lengte van de invoer). 8 Toetsing Elke week is er een verzameling opgaven die op het practicumsysteem uitgewerkt moeten worden. De uitwerkingen moeten voor het verstrijken van de deadline door het electronisch controle systeem zijn geaccepteerd. De geaccepteerde uitwerkingen worden van commentaar voorzien; er worden geen beoordelingen gegeven. Bij een aantal opgaven moeten de studenten (in tweetallen) een schriftelijk verslag maken; dit verslag wordt besproken met en beoordeeld door een van de begeleiders. Tweemaal wordt er een verplicht individueel toetspracticum georganiseerd, eenmaal halverwege en eenmaal aan het eind van de college periode. De ingeleverde werkstukken worden door de begeleiders voorzien van een beoordeling. De afsluiting wordt gevormd door een wat grotere programmeeropdracht (keuzeopdracht) die individueel wordt uitgewerkt en wordt nabesproken met een begeleider. 3

Deze keuzeopdracht valt buiten de collegeperiode. De eindbeoordeling wordt gevormd door een gewogen gemiddelde van de gegeven beoordelingen. Een student die één of meer van de genoemde onderdelen heeft gemist krijgt geen voldoende beoordeling. Door middel van een tentamen krijgt zo n student alsnog de mogelijkheid dit vak met een voldoende af te sluiten. 4

voorstel voor invulling van het vak Logica Gerard Renardel 8 november 2005 Dit is een voorstel voor invulling van het vak Logica, ten behoeve van het herontwerp van de Major van de bacheloropleiding Informatica. Positionering 1e jaar, 1e semester, 5 EC. Dit vak is onderdeel van het gemeenschappelijke 1e semester met Kunstmatige Intelligentie. Doelstelling Doel van deze cursus is de student kennis te laten maken met de predikatenlogica, een wiskundig instrument voor het formuleren van en redeneren over allerhande begrippen. Eindtermen De student heeft kennis van en inzicht in de propositie- en de predikatenlogica (syntax, semantiek en afleidingssysteem); kan formules van deze logica s lezen, interpreteren en vertalen van en naar informele beweringen; kan formele afleidingen voor formules van deze logica s opstellen; kan formules omzetten in normaalvormen; heeft kennis van en inzicht in de begrippen soundness (gezondheid) en volledigheid. Onderwerpen Propositielogica: connectieven, propositionele variabelen, waarheidswaarden, waarheidstafels, axioma s bewijsregels, formele afleidingen, onderlinge definieerbaarheid van connectieven, disjunctieve en conjunctieve normaalvorm. Predikatenlogica: individuele variabelen, constanten, gelijkheid, predikaten, kwantoren, modellen, interpretaties, axioma s, bewijsregels, formele afleidingen. 1

Tevens voor beide logica s de begrippen geldig, vervulbaar, weerlegbaar, soundness (gezondheid) en volledigheid, en het vertalen van zinnen en redeneringen in de logica s. In het prakticum wordt gewerkt met het leerprogramma s Tarski s World en Fitch. Onderwijsvormen Per week 4 uur hoorcollege, 2 uur werkcollege en 2 uur computerprakticum. Toetsing Prakticumopdrachten en schriftelijk tentamen. Literatuur J. Barwise & J. Etchemendy, The Language of First-Order Logic, ISBN 0-937073-90-3 Aanvullende syllabus 2

1 Inleiding 1.1 Omschrijving Oriëntatie Informatica Het vak Oriëntatie Informatica geeft een bloemlezing van een aantal fundamentele aspecten van het vakgebied Informatica. De nadruk zal liggen op die onderwerpen die in nagenoeg alle deelgebieden van de informatica een rol spelen, meer dan dat aandacht wordt besteed aan de verschillende toepassingen waarin informatica een rol speelt. De behandelde onderwerpen worden verderop in de opleiding uitgebreid en verdiept. Op deze wijze vormt dit vak niet alleen een panorama van de informatica als wetenschap, maar ook een oriëntatie op vaardigheden die in het vervolg van de opleiding nodig zijn. 1.2 Doelstelling In aansluiting op wat hierboven is gezegd, heeft het vak Oriëntatie Informatica tot doel de student kennis te laten maken met een aantal wezenlijke aspecten van de informatica: algoritmen, talen waarin algoritmen kunnen worden genoteerd, automaten om algoritmen te laten uitvoeren, complexiteit van algoritmen en algoritmische problemen. Aan het eind van de cursus leert de student dat er algoritmische problemen zijn die niet algoritmisch zijn op te lossen. 1.3 Voorkennis Als voorkennis wordt niet anders verondersteld dan de verplichte stof uit het profiel Natuur en Gezondheid in de tweede fase van het voortgezet onderwijs. In het bijzonder zal enige vertrouwdheid met onderwerpen uit het wiskunde-programma en enkele onderdelen van het natuurkunde-programma nodig zijn. 1.4 Haskell Centraal in de cursus staat het begrip algoritme. Allerlei zaken die met dit begrip te maken hebben passeren de revue. Om al deze aspecten handen en voeten te geven, wordt de functionele taal Haskell ingezet. Het is expliciet niet de bedoeling dat de cursus verwordt tot een cursus Programmeren in Haskell. Alleen die zaken worden aangereikt die nodig zijn om de behandelde onderwerpen te verwerken: functies, parameters, recursie, lijsten, datastructuren. 1.5 Einddoelen de student weet en kan omschrijven wat een algoritme is; de student kan (eenvoudige) algoritmen noteren in de functionele taal Haskell; de student kent de automatenmodellen Eindige Automaat en Turingmachine; de student kan bij een informele beschrijving een grafische voorstelling maken van een Eindige Automaat of een Turingmachine; de student kent het begrip (worst case tijd-)complexiteit van een algoritme; de student kan voor (eenvoudige) gevallen een (orde-)schatting geven van de complexiteit van een algoritme en deze schatting beargumenteren; 1

de student kent het begrip complexiteit van een algoritmisch probleem; de student kent de complexiteitsklassen P, NP en NPC; de student kan beargumenteren dat een probleem van nondeterministische tijdcomplexiteit is; de student kent het begrip reductie en weet dit in te zetten om in (zeer eenvoudige gevallen) de NP-volledigheid van een algoritmisch probleem aan te tonen. 2 Werkvormen 2.1 Hoorcollege Tijdens de hoorcolleges wordt de leerstof gepresenteerd. De behandeling loopt grotendeels parallel aan hoofdstukken uit het leerboek Harel: Algorithmics, the Spirit of Computing. 2.2 Werkcollege Tijdens het werkcollege krijgen de deelnemers de gelegenheid om onder begeleiding van een docent de leerstof te verwerken aan de hand van min of meer elementaire oefeningen. Aspecten van de behandelde onderwerpen worden concreet gemaakt, veelal door middel van problemen die moeten worden uitgewerkt in de functionele taal Haskell. 2.3 Practicum Daar waar het werkcollege bedoeld is om elementaire vaardigheden te ontwikkelen is het practicum bedoeld om de diverse vaardigheden te integreren en toe te passen in iets complexere probleemstellingen. Verder zal de gevonden oplossing moeten worden gepresenteerd in een (kort) verslag. 3 Literatuur Het boek Harell: Algorithmics, the spirit of computing biedt achtergrondinformatie bij de op college behandelde onderwerpen. Daarnaast is er een bundeltje waarin voldoende over Haskell wordt uitgelegd om de opgaven te kunnen doen. Dit bundeltje bevat ook de opdrachten voor werkcollege en practicum. 4 Collegeschema Er wordt uitgegaan van vier maal drie kwartier hoorcollege per week, één werkcollegezitting van tweemaal drie kwartier en één practicumsessie van twee klokuren per week. 2

0 Hoorcollege-1 Hoorcollege-2 Werkcollege 1 digitaal electronische poorten; elementaire functies in Haskell data: representatie en interpretatie digitaal electronische schakelingen (doorrekenen, ontwerpen); elementaire functies in Haskell 2 data: overdracht (foutdetectie en -correctie); lijsten in Haskell datastructuren; bomen in Haskell data: representatie en interpretatie, foutdetectie en -correctie; lijsten in Haskell 3 algoritmische methoden (verdeel en heers; greedy; dynamisch programmeren; exhaustive search) efficiëntie en complexiteit van algoritmen datastructuren; algoritmische methoden; bomen in Haskell 4 talen en grammatica s automaten: Turingmachines efficiëntie en complexiteit van algoritmen 5 automaten: eindige automaten correctheid van algoritmen talen en grammatica s; Turingmachines; eindige automaten 6 complexiteit van algoritmische problemen complexiteit van algoritmische problemen: complexiteitsklassen P, NP, NPC efficientie en complexiteit van algoritmen 7 beslisbaarheid (Halting Problem) probabilistische methoden complexiteit van algoritmische problemen; beslisbaarheid 3

Modelleren 1, November 9, 2005 1 Voorstel Invulling Modelleren 1 (Wiskunde A) Opmerkingen (Jos Roerdink, Gert Vegter, Michael Wilkinson) 1. Dit vak vormt één geheel met het vak Modelleren 2 (Wiskunde B). 2. Vergeleken met het huidige Wiskunde A zijn de gewone differentiaalvergelijkingen doorgeschoven naar Modelleren 2 (Wiskunde B). 3. Over de precieze invulling van de wiskundestof moet nog verder worden gesproken met Wiskunde. 4. Over dit gehele vak moet nog overleg plaatsvinden met KI i.v.m. het gemeenschappelijk eerste semester. 5. Een goede projectorganisatie is essentieel. Aan te bevelen is een informaticadocent de coördinatie in handen te geven voor beide vakken Modelleren 1 en 2 (overleg met wiskundedocenten, overleg met studentassistenten, samenhang bewaken, enz.). 6. Te overwegen is elke groep studenten door twee studentassistenten te laten begeleiden, één van wiskunde en één van informatica. Max. 5 groepjes per tweetal studentassistenten. 1 Positionering van het vak Periode 1.2, omvang 5 EC. Voorkennis: VWO Wiskunde 2 Doelstelling De algemene doelstelling van het vak Modelleren-1&2 is ervaring opdoen met het wiskundig modelleren, analyseren, implementeren en interpreteren van een (informeel beschreven) proces uit natuur- of levenswetenschap, economie, enz.; het vergroten van de hierbij benodigde wiskundige kennis; het verkrijgen van vaardigheid in het gebruiken van deze kennis voor het analyseren van wiskundige modellen; en het verkrijgen van vaardigheid in het hanteren van bijbehorende software-tools. Belangrijke elementen hierbij zijn het plaatsen van de benodigde wiskunde in een duidelijke probleemcontext en een combinatie van werkvormen zoals traditionele hoorcolleges en projecten. Er wordt veel zelfwerkzaamheid van de student verwacht. - Eén van de belangrijkste doelen van de in Modelleren-1 aangeboden wiskunde is om de VWO-ervaring met functies van één variabele op te rekken naar (vector)functies van meerdere variabelen. Voor de analyse van deze functies speelt de lineaire algebra een belangrijke rol, waaruit een aantal onderwerpen wordt behandeld. Verder worden de reële getallen uitgebreid naar de complexe getallen en zullen enkele eenvoudige functies hierop geïntroduceerd worden, o.a. de complexe e-macht. 3 Eindtermen Vaardigheid in het doordringen tot de kern van een informeel gespecificeerd (fysich, economisch, biologisch) proces

Modelleren 1, November 9, 2005 2 Vaardigheid in het kiezen van een geschikt wiskundig formalisme en/of model voor het betreffende proces Vaardigheid in opsporen en verwerken van relevante literatuur op het gebied van het betreffende proces Kennis opdoen van de analyse van (vector)functies van meerdere variabelen, het rekenen met complexe getallen en elementaire lineaire algebra Vaardigheid in de toepassing van de behandelde wiskundestof bij het analyseren van een eenvoudig wiskundig model Vaardigheid in het vertalen van een eenvoudig wiskundig model naar een computerimplementatie of simulatie Vaardigheid in gebruiken van tools zoals Matlab en Mathematica bij de implementatie en analyse van het betreffende probleem Vaardigheid in het interpreteren en analyseren van de resultaten in termen van het oorspronkelijke proces Vaardigheid in het samenwerken met medestudenten in projecten Vaardigheid in het schriftelijk en mondeling presenteren van de resultaten van projecten 4 Onderwijsvormen Een mengvorm van hoorcollege, werkcollege, en project. Zelfwerkzaamheid totaal xx uur. 5 Onderwerpen De onderwerpen bij het klein project worden zo gekozen dat de benodigde wiskundekennis op VWO-niveau ligt. Bij het groot project zijn de onderwerpen iets geavanceerder, waarbij de benodigde wiskunde tijdens de cursus wordt opgebouwd. De lijst van projectonderwerpen kan jaarlijks variëren. Mogelijke onderwerpen: mechanische systemen (slinger, snaar), populatiedynamica (roofdier-prooi systemen, ecosysteem-modellen), elektrische circuits, chemische reacties, speltheorie. Onderwerpen uit de wiskunde die aan bod komen: Uit boek, secties: vectoren, vectorfuncties en krommen: 8.1-8.3 (niet scalar triple product ), 8.4-8.6 complexe getallen: 12.1, 12.2, 12.6 (niet ëntire function ) lineaire algebra: 6.1-6.7, 7.1, 7.2, 7.5 functies van meerdere variabelen: 8.8, 8.9, 9.3 Uit dictaat, secties: limieten, differentieren, integreren: 1.1-1.7 Taylorontwikkeling: 1.9 functies van meerdere variabelen, extrema, lineaire benaderingen: 5

Modelleren 1, November 9, 2005 3 Weekschema week 1-2 week 3-8 week 9-10 inleidend college (doelstelling, voorbeelden, richtlijnen). projectgroepen maken (tweetallen). Klein project modelleren programmeren analyseren. Oplossingen in matlab uitwerken twee werkcolleges waarin VWO-wiskunde (limieten,differentieren en integreren) wordt opgehaald. Groot project modelleren programmeren analyseren. Parallel hieraan de wiskundestof, omvang lineair aflopend naar eind van projectperiode. Tussenrapportages. Toetsperiode. Wiskunde via individueel tentamen; project via eindverslag en mondelinge presentatie (per tweetal). 6 Toetsing Het eindcijfer is het gemiddelde van het cijfer voor de projecten en het cijfer voor het schriftelijk tentamen. 7 Literatuur De cursus wordt gegeven aan de hand van: 1. E. Kreyszig: Advanced Engineering Mathematics (8th ed.), New York: John Wiley and Sons Ltd (1999) 2. R. Verstappen: Wiskunde 1 (dictaat). 3. Studiewijzer met informatie over de werkwijze bij de projecten, onderwerpen, literatuur, enz.

Architectuur en Netwerken Let op: een 4 punts variant van dit vak is deel van het TBK-IT curriculum. 0.1 Positionering van het vak Periode 1.4., studielast 5 ects. 0.2 Doelstelling en eindtermen Het goed doorgronden van de werking, opbouw en implementatie van een computer, alsmede een netwerk van computers. Het leren werken met, een groot aantal geheel verschillende, abstractieniveau s bij de structurering van dergelijke complexe systemen. 0.3 Voorkennis Logica, Discrete structuren : boolese algebra, normaalvormen, dualiteit. Oriëntatie informatica: eindige automaat. Imperatief programmeren. 0.4 Onderwerpen Uitgaande van de elementaire bouwstenen uit digitale techniek worden de machines gebouwd die onze programma s uit kunnen voeren. De behandeling is bottom-up, gebruik makend van de gebruikelijke structurering in abstractieniveau s zoals het 7-laags referentie model van het ISO. In het architectuurdeel komen aan de orde: Mechanisch rekenen, digitale techniek, overzicht computer architecturen. Processor, control unit, datapad, microprogrammering. Pipelining, (branch) cacheing, meerdere functionele eenheden, speculatieve executie. Machinetaalprogramma s: instructies, adresseringsmethoden, procedure mechanisme. Excepties, supervisor mode, memory managment unit. In het netwerkdeel behandelen we alleen onderste netwerklagen tot aan de transportlaag: het kale Internet. De afronding van het netwerkgedeelte gebeurt in het vak NetComputing. OSI referentie model, protocollen. 1

Fysieke laag: communicatie capaciteit, transmissie media, (mobiele) telefoonsysteem. Datalink laag: fouten controle, flow control, sliding window protocollen. Medium access sublaag: switches. MAC protocollen, ethernet (wireless) LAN s, Netwerk laag: routerings algoritmen, congestie controle, Quality of Service, internetwerking, het Internet. Transport laag: elementaire transport protocollen: TCP, UDP. 0.5 Literatuur Tanenbaum, Structured Computer Organization (5), Prentice Hall, 0-13- 148521-0 Tanenbaum, Computer Networks (4), Prentice Hall, 0-13-066102-3 0.6 Werkvormen Hoorcollege 3 uren, verroosterd practicum 2 uren, practicum 3 uren, zelfwerkzaamheid (totaal) 80 uur 0.7 Toetsing Schriftelijk tentamen en practicum verslagen. 2

Modelleren 2, November 9, 2005 1 Voorstel Invulling Modelleren 2 (Wiskunde B) Opmerkingen (Jos Roerdink, Gert Vegter, Michael Wilkinson) 1. Dit vak vormt één geheel met het vak Modelleren 1 (Wiskunde A). 2. Vergeleken met het huidige Wiskunde B is de inleiding in de gewone differentiaalvergelijkingen uit het huidige Wiskunde A opgenomen, en is een aantal onderwerpen uit de vectoranalyse (zoals Stelling van Green) geschrapt. 3. Over de precieze invulling van de wiskundestof moet nog verder worden gesproken met Wiskunde. 4. Een goede projectorganisatie is essentieel. Aan te bevelen is een informaticadocent de coördinatie in handen te geven voor beide vakken Modelleren 1 en 2 (overleg met wiskundedocenten, overleg met studentassistenten, samenhang bewaken, enz.). 5. Te overwegen is elke groep studenten door twee studentassistenten te laten begeleiden, één van wiskunde en één van informatica. Max. 5 groepjes per tweetal studentassistenten. 1 Positionering van het vak Periode 1.4, omvang 5 EC. Voorkennis: Modelleren 1 (Wiskunde A) 2 Doelstelling De algemene doelstelling van het vak Modelleren-1&2 is ervaring opdoen met het wiskundig modelleren, analyseren, implementeren en interpreteren van een (informeel beschreven) proces uit natuur- of levenswetenschap, economie, enz.; het vergroten van de hierbij benodigde wiskundige kennis; het verkrijgen van vaardigheid in het gebruiken van deze kennis voor het analyseren van wiskundige modellen; en het verkrijgen van vaardigheid in het hanteren van bijbehorende software-tools. Belangrijke elementen hierbij zijn het plaatsen van de benodigde wiskunde in een duidelijke probleemcontext en een combinatie van werkvormen zoals traditionele hoorcolleges en projecten. Er wordt veel zelfwerkzaamheid van de student verwacht. De in Modelleren-2 aangeboden wiskunde gaat over differentiaalvergelijkingen, reeksen, vectoranalyse, partiele differentiaalvergelijken en iteratieve methoden. Bij de differentiaalvergelijkingen komen aan de orde: richtingsveld, scheiden van variabelen, exacte differentiaal, lineaire differentiaalvergelijkingen, superpositie, beginwaardeprobleem, randwaardeprobleem, tweede-orde differentiaalvergelijkingen met constante coëfficiënten, harmonische oscillator, stelsels differentiaalvergelijkingen, fasevlak, kritieke punten. Bij reeksen staan de begrippen convergentie/divergentie, machtreeks en Fourierreeks centraal. Bij de vectoranalyse draait het om begrippen als gradiënt, potentiaal, niveau-oppervlak, parametriseren van oppervlakken. Daarnaast worden lijnintegralen behandeld, hierbij komen de begrippen arbeid, potentiaal, afhankelijkheid van integratie-weg, exacte differentiaalaan de orde. Tenslotte volgt een inleiding tot iteratieve methoden voor het oplossen van vergelijkingen (o.a. de Newton-methode) en differentiaalvergelijkingen (Picard-iteratie).

Modelleren 2, November 9, 2005 2 3 Eindtermen Vaardigheid in het doordringen tot de kern van een informeel gespecificeerd eenvoudig (fysich, economisch, biologisch) proces Vaardigheid in het kiezen van een geschikt wiskundig formalisme en/of model voor het betreffende proces Vaardigheid in opsporen en verwerken van relevante literatuur op het gebied van het betreffende proces Kennis opdoen van de analyse van differentiaalvergelijkingen, reeksen, vectoranalyse, partiele differentiaalvergelijken en iteratieve methoden Vaardigheid in de toepassing van de behandelde wiskundestof bij het analyseren van een wiskundig model Vaardigheid in het vertalen van een wiskundig model naar een computerimplementatie of simulatie Vaardigheid in gebruiken van tools zoals Matlab en Mathematica bij de implementatie en analyse van het betreffende probleem Vaardigheid in het interpreteren en analyseren van de resultaten in termen van het oorspronkelijke proces Vaardigheid in het samenwerken met medestudenten in projecten Vaardigheid in het schriftelijk en mondeling presenteren van de resultaten van projecten 4 Onderwijsvormen Een mengvorm van hoorcollege, werkcollege, en project. Zelfwerkzaamheid totaal xx uur. 5 Onderwerpen De onderwerpen bij het project worden zo gekozen dat ze aansluiten bij de wiskundekennis op het niveau van Modelleren 1 en de nieuwe wiskunde die tijdens deze cursus wordt opgebouwd. De lijst van projectonderwerpen kan jaarlijks variëren. Mogelijke onderwerpen: mechanische systemen (meerdere deeltjes, gekoppelde oscillatoren), populatiedynamica (roofdier-prooi systemen, ecosysteem-modellen), economische modellen, diffusieprocessen, warmtegeleiding, stromingen, speltheorie. De wiskundestof betreft de volgende onderwerpen uit het cursusboek: gewone differentiaalvergelijkingen: 1.1-1.6, 2.1-2.3, 2.5, 2.7 2de-orde differentiaalvergelijkingen: 2.8, 2.9, 2.11, 2.12 stelsels differentiaalvergelijkingen: 3.0 t/m 3.4 reeksen: 14.1, 4.1, 4.2, 10.1 t/m 10.4 vector-analyse: 8.4, 8.9, 8.10, 9.1, 9.2 iteratieve methoden: 17.1, 17.2, 18.3, 1.9

Modelleren 2, November 9, 2005 3 Weekschema week 1 week 2-8 week 9-10 inleidend college (doelstelling, voorbeelden, richtlijnen). projectgroepen maken (tweetallen). 1e hoorcollege wiskunde. Project modelleren programmeren analyseren. Parallel hieraan de wiskundestof, omvang lineair aflopend naar eind van projectperiode. Tussenrapportages. Toetsperiode. Wiskunde via individueel tentamen; project via eindverslag en mondelinge presentatie (per tweetal). 6 Toetsing Het eindcijfer is het gemiddelde van het cijfer voor het projecten en het cijfer van het schriftelijk tentamen. 7 Literatuur De cursus wordt gegeven aan de hand van: 1. E. Kreyszig: Advanced Engineering Mathematics (8th ed.), New York: John Wiley and Sons Ltd (1999) 2. Studiewijzer met informatie over de werkwijze bij het project, onderwerpen, literatuur, enz.

Objectgeorienteerd Programmeren A 1 Inleiding 1.1 Omschrijving (Harm Bakker, Wim Hesselink, Rudy Moddemeijer) Samen met het voorafgaande vak Imperatief Programmeren en het volgende vak Objectgeoriënteerd Programmeren B vormt dit vak de brede basiscursus imperatief en objectgeoriënteerd programmeren. In Imperatief Programmeren zijn objecten alleen ter sprake gekomen als mechanisme om bij elkaar horende data (samen met operatoren hierop) te clusteren. In deze cursus ligt de nadruk meer op de objectgeoriënteerde aspecten van java: overerving, grafische userinterfaces, threads. Daarnaast is er aandacht voor het exceptiemechanisme als gereedschap om de robuustheid van software te vergroten. 2 Doelstelling De bedoeling van dit vak is de student in te wijden in objectgeorienteerde technieken, ondersteund door de faciliteiten die de taal java biedt. Het objectgeoriënteerd ontwerpen valt buiten de scope van deze cursus. 2.1 Plaats in het curriculum Periode 1.3; omvang 5 EC. 3 Voorkennis De student wordt verondersteld een programmeervaardigheid te hebben die overeenkomt met het eindniveau van het vak Imperatief Programmeren. 4 Einddoelen De student is in staat om in UML-notatie gegeven klassehiërarchieën te interpreteren en om te zetten in java. De student kent de java-begrippen klasseuitbreiding, abstracte klasse en interface en kan deze op adequate wijze gebruiken bij het implementeren van een klassestructuur. De student kent het begrip overriding en kan dit effectief gebruiken. De student kent de betekenis van de modifiers final, static, public, private en protected, en gebruikt ze op correcte wijze in de code. De student is in staat om gebruikmakend van een (klein) aantal faciliteiten uit de Swingbibliotheek een eenvoudige grafische userinterface te implementeren. De student heeft weet van een aantal java klassen voor collecties en kan met behulp van de documentatie bij een gegeven probleem een passende keus maken voor een van deze klassen. 1

De student kent het begrip exceptie en kent de manier waarop in java excepties worden afgehandeld. De student kent de manier waarop in java invoer en uitvoer wordt afgehandeld, in het bijzonder hoe invoer uit en uitvoer naar bestanden wordt gerealiseerd. De student kent het begrip thread en weet hoe hij dit mechanisme in java-programma s kan inzetten. De student kent de begrippen lock en synchronisatie. 5 Werkvormen 5.1 Hoorcollege Tijdens de hoorcolleges worden systematisch constructies uit de taal java gepresenteerd, steeds geïnpireerd vanuit een probleemstelling. 5.2 Werkcollege Tijdens het werkcollege krijgen de deelnemers de gelegenheid om onder begeleiding van een docent de leerstof te verwerken aan de hand van min of meer elementaire oefeningen. 5.3 Practicum Daar waar het werkcollege bedoeld is om elementaire vaardigheden te ontwikkelen is het practicum bedoeld om de diverse vaardigheden te integreren en toe te passen in iets complexere probleemstellingen. Het practicum wordt uitgevoerd in tweetallen. De uitwerkingen worden door een electronisch controle-systeem aan een aantal tests onderworpen. Uitwerkingen die niet door dit systeem worden geaccepteerd worden als niet-gemaakt beschouwd. Geaccepteerde oplossingen worden van commentaar voorzien. Verder zal bij een aantal problemen de gevonden oplossing moeten worden gepresenteerd in een (kort) verslag. 5.4 Zelfwerkzaamheid Per week in de collegeperiode 7 uur met daarna 30 uur voor tentamenvoorbereiding. 6 Literatuur Ira Pohl/ Charlie McDowell: Java by Dissection Addison-Wesley (2001) ISBN 0201751585 7 Collegeschema Er wordt uitgegaan van één hoorcollege van twee uur, één werkcollegezitting van twee uur en één practicumsessie van twee klokuren per week. 2

week onderwerpen 1 Overerving: klasse-uitbreidingen 2 Overerving: abstracte klassen en interfaces 3 Eenvoudige GUIs met Swing 4 Toepassing objecten: dynamische datastructuren (gelinkte lijsten en binaire bomen) 5 Java klassen voor collecties 6 Exceptiemechanisme in java ; Input en output 7 Threads; synchronisatie; wederzijdse uitsluiting 8 Toetsing Elke practicumopgave moet vóór het verstrijken van de aangegeven deadline zijn ingeleverd. Het ontbreken van één of meer uitwerkingen leidt tot uitsluiting van het tentamen. Bij een aantal opgaven moeten de studenten (in tweetallen) een schriftelijk verslag maken; dit verslag wordt besproken met en beoordeeld door een van de begeleiders. De cursus wordt afgesloten met een schriftelijk tentamen. De eindbeoordeling wordt gevormd door een gewogen gemiddelde van de gegeven beoordelingen (30% practicum, 70% tentamen). 9 Terzijde Gezien de inhoud van de vakken valt het te overwegen de naamgeving aan te passen. Objectgeoriënteerd programmeren A zou dan Objectgeoriënteerd programmeren kunnen heten en Objectgeoriënteerd programmeren B zou dan Objectgeoriënteerd ontwerpen kunnen worden. In bovenstaand voorstel worden alleen simpele grafische userinterfaces gebouwd. Komen GUI-builders in OOPB aan de orde? Doet OOPB ook iets aan tools m.b.t. UML? 3

voorstel voor invulling van het vak Discrete Structuren Gerard Renardel 8 november 2005 Dit is een voorstel voor invulling van het vak Discrete Structuren, ten behoeve van het herontwerp van de Major van de bacheloropleiding Informatica. Positionering 1e jaar, 2e semester, 5 EC. Voorkennis: Logica (1e jaar, 1e semester). Doelstelling Doel van deze cursus is de student bekend en vertrouwd te maken met een aantal basisbegrippen uit de discrete wiskunde die gebruikt worden om op abstract niveau de werking van computers en programmatuur te beschrijven en te begrijpen. Speciale nadruk wordt gelegd op wiskundige bewijzen, als correcte redeneermethode over wiskundige begrippen en uitspraken. Eindtermen De student heeft kennis van en inzicht in een aantal begrippen uit de verzamelingenleer en de discrete wiskunde: verzameling, functie, relatie, kardinaliteit, gehele en rationale getallen, graaf, boom, ordening, Boole-algebra; kan bewijzen opstellen van eenvoudige eigenschappen van deze begrippen; is bekend met diverse bewijsvormen, zoals bewijs uit het ongerijmde en bewijs met volledige inductie; kan eenvoudige recurrente betrekkingen oplossen, bv. de rij van Fibonacci; heeft inzicht in het verband tussen de propositielogica en de Boole-algebra, en kan beide toepassen bij het analyseren en ontwerpen van eenvoudige logische netwerken. 1

Onderwerpen Elementaire getaltheorie: deelbaarheid, priemgetallen, ggd, kgv. Elementaire verzamelingenleer: verzameling-notatie, doorsnede, vereniging, complement, verband met propositionele connectieven, cartesisch product, eindige kardinaliteit, paradox van Russell, relaties, functies (injectief, surjectief, bijectief). Oneindigheid: definitie van gelijkmachtigheid en aftelbaarheid, aftelbaarheid van de verzameling der rationale getallen, diagonaalmethode van Cantor. Relaties: eigenschappen (reflexief, symmetrisch, transitief, antisymmetrisch, lineair, functioneel), equivalentierelaties, equivalentieklassen, partities, partiële ordeningen, grootste/kleinste/maximaal/minimaal element, kleinste bovengrens, grootste benedengrens. Wiskundige bewijzen: rol van logische redeneerprincipes, bewijzen uit het ongerijmde (irrationaliteit van 2, oneindigheid van het aantal priemgetallen), bewijzen met volledige inductie. Recurrente betrekkingen: oplossen van lineaire rcurrenties van diepte 2. Grafen: knopen en kanten, gericht en ongericht, paden, samenhang, graad, ingraad, uitgraad, isomorfie, Eulerpaden, bomen, opspannende bomen. Boole-algebra s: atomen, Boole se expressies, logische netwerken. Onderwijsvormen Per week 4 uur hoorcollege en 4 uur werkcollege. Toetsing Schriftelijk tentamen. Literatuur Kenneth A. Ross & Charles R.B. Wright, Discrete Mathematics (of een vergelijkbaar leerboek) Aanvullende syllabus 2

ProgrammaCorrectheid (Harm Bakker, Wim Hesselink, Rudy Moddemeijer) 1 Inleiding 1.1 Omschrijving In de cursus ProgrammaCorrectheid maakt de student kennis met een aantal technieken waarmee de correctheid van programmafragmenten op formele manier kan worden aangetoond. Uitgaande van de ervaring die de student in voorlopende programmeervakken heeft opgedaan, worden bewijsregels geformuleerd bij het keuze-statement en het herhalings-statement. Deze bewijsregels worden vervolgens toegepast bij het hand in hand ontwikkelen van programmafragmenten samen met hun annotatie. 1.2 Doelstelling Van grote stukken software is eenvoudig vast te stellen dat ze correct zijn. Geregeld echter zijn er situaties waarin het lastig is in te zien dat een programmafragment aan zijn specificatie voldoet of waarin de correctheid zo belangrijk is, dat niet vertrouwd kan worden op informele overwegingen. Deze cursus heeft tot doel de student voldoende gereedschap aan te reiken om, op momenten dat dat nodig is, de correctheid van een programmafragment formeel vast te stellen. Om te komen tot een formeel correctheidsbewijs van een programmafragment is het nodig de specificatie in een formele taal te noteren. In deze cursus is de formele specificatie veelal gegeven; op een aantal plaatsen wordt van de student gevraagd om bij een informele beschrijving een formele specificatie te ontwerpen. 1.3 Plaats in het curriculum Periode 1.4; omvang 5 EC. 1.4 Voorkennis De student wordt verondersteld een vaardigheid te hebben in het programmeren in een imperatieve programmeertaal, overeenkomend met het eindniveau van het vak Imperatief Programmeren. Daarnaast zal de student vaardigheid moeten hebben in het opstellen en manipuleren van logische expressies, overeenkomend met het eindniveau van het vak Logica. 1.5 Einddoelen De student kent de bewijsregel voor de toekenning en de compositie en kan deze toepassen; De student kent de bewijsregel voor het keuze-statement (IF) en kan deze toepassen; De student kent de bewijsregel voor het herhalingsstatement (WHILE) en weet deze in te zetten om op systematische wijze een herhalingsprogramma af te leiden; 1

De student is in staat om één van de heuristieken toe te passen om bij gegeven pre- en postconditie een adequate invariant af te leiden; De student kent de winkelhaak/slope search - methode en kan deze techniek toepassen; De student kan bij het berekenen van recurrente betrekkingen vaststellen welke hulpinformatie aan de invariant moet worden toegevoegd. 2 Werkvormen 2.1 Hoorcollege Tijdens het hoorcollege worden, uitgaande van aanwezige programmeerkennis, bewijsregels afgeleid. Aan de hand van voorbeelden wordt duidelijk gemaakt hoe deze bewijsregels functioneren bij het ontwikkelen van geannoteerde programmafragmenten. 2.2 Werkcollege Tijdens het werkcollege krijgen de deelnemers de gelegenheid om onder begeleiding van een docent de leerstof te verwerken aan de hand van oefeningen. 2.3 Inleveropgaven Bij dit vak is het zorgvuldig noteren van een programmafragment met annotatie een dusdanig belangrijk aspect, dat studenten geregeld feedback moeten krijgen op hun manier van presenteren. Daartoe dienen de inleveropgaven: elke week is er de mogelijkheid de uitwerking van een opgave ter beoordeling in te leveren. De beoordelingen van deze uitwerkingen tellen licht mee in de eindbeoordeling van het vak. 2.4 Zelfwerkzaamheid In de collegeperiode 7 uur per week met een reserve van 40 uur voor tentamenvoorbereiding. 3 Literatuur Dictaat Wim. H. Hesselink: Programmacorrectheid en programmaderivatie. 4 Collegeschema Er wordt uitgegaan van eerst vier weken met vier uur hoorcollege en twee uur werkcollege per week. In de resterende weken zijn er twee uur hoorcollege en vier uur werkcollege per week. 2