/ CMI Programmeren in Java 2 Tinpro01-2 Aantal studieunten: 2 ects Modulebeheerder: Wessel Oele Goedgekeurd door: (namens toetscommissie) Datum: Tinpro01-2 12 november 2015
Inhoudsopgave 1 Algemene omschrijving 3 1.1 Inleiding....................................... 3 1.2 Relatie met andere onderwijseenheden....................... 3 1.3 Leermiddelen..................................... 3 2 Programma 4 3 Toetsing en beoordeling 4 3.1 Procedure...................................... 4 4 Bijlage 1: Toetsmatrijs 6 5 Bijlage 2: Voorbeeldtoets 7 6 Bijlage 3: Studielast (normering in ecs) 9 Tinpro01-2 12 november 2015 1
Modulebeschrijving Modulenaam: Programmeren in Java 2 Modulecode: Tinpro01-2 Aantal studiepunten en Deze module levert 2 studiepunten op, hetgeen overeenkomt met 56 uur. studiebelastingsuren: 8 120 minuten hoorcollege 8 120 minuten practicum 12 120 minuten zelfstudie Vereiste voorkennis: Werkvorm: Toetsing: Leermiddelen: Draagt bij aan competentie tinpro01-1 hoorcollege en practicum schriftelijk tentamen, gesloten boek zonder hulpmiddelen Schaum s outlines Programming with Java second edition, auteur: John R. Hubbard, uitgever: McGraw hill, ISBN: 0-07-142040-1 analyse advies ontwerp realisatie beheer gebruikersinteractie bedrijfsprocessen software 1 1 2 2 infrastructuur hardware interfacing Leerdoelen: Inhoud: Het kunnen adviseren over en analyseren, ontwerpen en realiseren van een computerprogramma op niveau 2. Het kunnen ontwerpen, schrijven, compileren en uitvoeren van een correct werkend Java programma vanuit een objectgeoriënteerde denkwijze. Het in correct Nederlands en met gebruikmaking van het juiste jargon kunnen communiceren over het objectgeoriënteerde paradigma. Classes en objecten Variabelen en referenties naar objecten (pointers) Modifiers: public, private en protected Data hiding Overloading De constructor Overerving en generalisatie/specialisatie De keywords super, static Abstracte classes en interfaces Opmerkingen: Modulebeheerder: Wessel Oele Datum: 12 november 2015 Tinpro01-2 12 november 2015 2
1 Algemene omschrijving 1.1 Inleiding In eerdere modules werd een begin gemaakt met het leren programmeren in Java. De nadruk lag bij deze module op het wennen aan de taal en het aanleren van een aantal elementaire taalconstructies zoals het werken met variabelen, if-else constructies, loops en het werken met methodes. Verder heeft de voorgaande module vooral tot doel gehad stelselmatig en gestructureerd te leren denken, alsmede het bedenken van algoritmen te ontwikkelen. In deze module wordt de nadruk niet gelegd op het bedenken van algoritmen, maar op de structuur van Java programma s. Zo zul je leren dat een Java programma is opgebouwd uit een aantal losse legostenen die objecten worden genoemd. Het zelf maken van één legosteen is in de voorgaande module op basaal niveau aangeleerd. In deze module ga je leren hoe je kunt werken met grote aantallen legostenen en zul je zien hoe je een verzameling verschillende stenen in elkaar kunt klikken. Net als met echt lego kun je niet zomaar iedere steen op iedere andere steen klikken. Er zijn regels, waarin is vastgelegd wat kan en wat niet kan. Deze module laat zien hoe die regels in elkaar zitten en waar je rekening mee moet houden bij het ontwerpen van een programma. Ook zul je in deze module op basaal niveau leren hoe je gebruik kunt maken van een grote verzameling kant en klare legostenen waar de hele wereld mee werkt: de Java API... De stof in deze module is aanzienlijk abstracter dan de leerstof in de vorige module. Het belangrijkste aspect om in de gaten te houden vormt het verkrijgen en behouden van overzicht. Hiermee wordt bedoeld dat er in deze module een groot aantal begrippen wordt behandeld, waarvan je precies zult moeten weten wat ze betekenen en hoe en wanneer je ze gebruikt. Wanneer je het overzicht kwijtraakt, ontstaat al snel een situatie, waarin je tegen ondoorgrondelijk taalgebruik en al even ondoorgrondelijke programmeercode aanloopt. De enige manier om dit te voorkomen is door zeer veel te oefenen en te experimenteren met kleine programma s, opdat je begrijpt hoe specifieke concepten in elkaar zitten. Oefening baart kunst 1.2 Relatie met andere onderwijseenheden Op deze module wordt voortgebouwd in de modules tinpro01-3, tinpro01-4, tinpro01-5 en diverse andere vakken, waarin verondersteld wordt het programmeren in een imperatieve en/of objectgeoriënteerde taal te beheersen. De module tinpro01-1 wordt verondersteld als voorkennis. 1.3 Leermiddelen Verplicht: Boek: Schaum s outlines Programming with Java second edition, auteur: John R. Hubbard, uitgever: McGraw hill, ISBN: 0-07-142040-1 Software: Java Development Kit (JDK) versie 6, te downloaden van http://www.javasoft. com Presentaties die gebruikt worden in de hoorcolleges (pdf): te vinden op http://med.hro. nl/oelew Tinpro01-2 12 november 2015 3
Opdrachten, waaraan gewerkt wordt tijdens het practicum (pdf): te vinden op http:// med.hro.nl/oelew Facultatief: Boek: Introduction to Java programming, auteur: Y. Daniel Liang, uitgever: Prentice Hall, ISBN:0132221586 Text editors: Emacs, VI, Jedit, Gedit, etc. 2 Programma Week Literatuur Lesinhoud Producten 1 Schaum t/m blz. 135, inleiding, classes, objecten, modifiers 2 Schaum t/m blz. 140 get- en set methodes, inleveren modifiers dracht 1 3 Schaum t/m blz. 155 constructoren, pointers, inleveren overloading dracht 2 4 Schaum t/m blz. 170 inheritance, overriding, inleveren generalisadracht 3 tie/specialisatie 5 Schaum t/m blz. 185 polymorphisme, abstracte inleveren classes dracht 3 6 Schaum t/m blz. 200 abstracte methodes, interfacedracht inleveren 4 7 Schaum t/m blz. 215 javadoc, inleiding Java inleveren a.p.i. dracht 4 8 Schaum t/m blz. 230 static, this, statische methodedracht inleveren 5 9 voorbeeldtentamen bespreking voorbeeldtentamedracht inleveren 5 10 vragenuur/inhaalles 3 Toetsing en beoordeling 3.1 Procedure Deze module wordt getoetst middels een schriftelijk tentamen (gesloten boek, zonder verdere hulpmiddelen) dat aan het einde van deze module wordt gegeven. Alvorens je aan het tentamen mag deelnemen zul je eerst in het practicum de uitwerkingen van een aantal opdrachten bij de docent of assistent moeten laten aftekenen. Deze opdrachten zijn te vinden op de website van de docent (http://med.hro.nl/oelew) Voorwaarden en uitgangspunten: Het tentamen bepaalt het eindcijfer. Met practicumopdrachten kunnen geen punten behaald worden. Tinpro01-2 12 november 2015 4
Practicumopdrachten dienen bij de practicumdocent te zijn afgetekend voor de dag, waarop het tentamen wordt afgenomen. De practicumdocent kan een deadline stellen voor het mogen inleveren van opdrachten. In de eerste les van het volgende kwartaal wordt het tentamen in zijn geheel besproken tijdens het hoorcollege. Inzage in het tentamen kan altijd: maak per email een afspraak met de docent. Het tentamen kan tijdens een collegejaar éénmalig worden herkanst. Studenten die vanwege een handicap behoefte hebben aan een groter lettertype dienen de modulebeheerder minimaal één week van te voren een email te sturen, zodat hier rekening mee kan worden gehouden. Spel- en grammaticafouten worden door de vingers gezien, tenzij het maken van een spelfout of grammaticale fout de betekenis van de zin zodanig verandert dat deze onbegrijpelijk of onjuist is. Voor deze manier van toetsen is gekozen om de volgende redenen: De programmeervaardigheid (het daadwerkelijk in een editor kunnen schrijven van een programma) wordt aangetoond middels de practicumopdrachten. Het in correct Nederlands kunnen communiceren over een progammeertaal en het, op papier, kunnen aantonen van kennis over en inzicht in de programmeertaal wordt getoetst tijdens het tentamen. Tinpro01-2 12 november 2015 5
4 Bijlage 1: Toetsmatrijs Leerdoelen Dublin descriptoren Verwijzing naar opdracht / vraag / criteria 1,2,3,4 practicumopdracht 1 t/m 5, tentamen 1 Classes en objecten, evt. herhaling diverse onderwerpen uit tinpro01-1 2 Set- en getmethodes, pointers, data-hiding, modifiers 1,2,3,4 practicumopdracht 1 t/m 5, tentamen 3 Overloading, constructor 1,2,3,4 practicumopdracht 2 t/m 5, tentamen 4 Overerving, generalisatie/specialisatie 1,2,3,4 practicumopdracht 3 t/m 5, tentamen 5 Keywords super en 1,2,3,4 practicumopdracht 5, abstract tentamen 6 Abstracte classes, polymorphisme 1,2,3,4 practicumopdracht 4 en 5, tentamen 7 Interfaces 1,2,3,4 practicumopdracht 4 en 5, tentamen Dublin-descriptoren: 1. Kennis en inzicht 2. Toepassen kennis en inzicht 3. Oordeelsvorming 4. Communicatie Tinpro01-2 12 november 2015 6
5 Bijlage 2: Voorbeeldtoets Dit tentamen bestaat uit vijf open vragen. Werk netjes en overzichtelijk; Onleesbare tekst wordt fout gerekend... Lees goed en let op de tijd. Vraag 1 Verklaar het verschil tussen private, public en protected modifiers. Beperk het antwoord tot maximaal een halve pagina. Vraag 2 Wat is het verschil tussen method overloading en method overriding? Gebruik het woord afleiding in het antwoord. (max. halve pagina) Vraag 3 Wat is een constructor? Waarom kan men zonder een constructor in een klasse op te nemen deze klasse toch instantiëren? (max. halve pagina) Vraag 4 Wat wordt bedoeld met polymorphisme? Verklaar dit begrip aan de hand van een treffend voorbeeld. Bespreek ook het gebruik van abstracte classes en abstracte methodes. (max. 1 pagina) Vraag 5a Gegeven de klasse Foo: public class Foo { private int x=1; } public Foo() { } public Foo(int _x) { x=_x; } public void print() { System.out.println("x= "+x); } Tinpro01-2 12 november 2015 7
Noteer de uitvoer van het volgende stukje code: Foo x = new Foo(); Foo y=new Foo(2); Foo z=x; x=y; x.print(); y.print(): z.print(); new Foo(3).print(); new Foo().print(); Vraag 5b Schrijf een stukje code, waarin een array van vijf Foo objecten wordt aangemaakt Voor elk Foo object geldt dat de x variabele gelijk is aan het kwadraat van de array index. Tinpro01-2 12 november 2015 8
6 Bijlage 3: Studielast (normering in ecs) aantal weken aantal lesuren van klokuren 50 minuten lesuren 10 4 33 zelfstudie leestijd aantal pagina s 3 per uur 6 per uur 120 10 per uur 12 presentaties overlegtijd uitzoektijd/research 11 niet ingeroosterde lestijd toetsen voorbereiden 3.5 toets 1.5 nabespreking 1 werkstuk,verslag,rapport,scriptie Stage, Praktijkopdracht uitzoeken overleggen schrijven voorbereiding aanwezigheid overleg Subtotaal in klokuren 56 Ruis 5% Totaal in klokuren 56 Totaal in studiepunten (ects) 2 Tinpro01-2 12 november 2015 9