Modulewijzer
Hogeschool Rotterdam
Hogeschool Rotterdam / CMI
Programmeren in Java 2 Tinpro01-2
Aantal studieunten: 2 ects Modulebeheerder: Wessel Oele
Tinpro01-2 12 november 2015
Goedgekeurd door: (namens toetscommissie) Datum:
Modulewijzer
Hogeschool Rotterdam
Inhoudsopgave 1 Algemene omschrijving 1.1 Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Relatie met andere onderwijseenheden . . . . . . . . . . . . . . . . . . . . . . . 1.3 Leermiddelen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 3 3 3
2 Programma
4
3 Toetsing en beoordeling 3.1 Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4 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
Modulewijzer
Hogeschool Rotterdam
Modulebeschrijving Modulenaam: Modulecode: Aantal studiepunten en studiebelastingsuren:
Programmeren in Java 2 Tinpro01-2 Deze module levert 2 studiepunten op, hetgeen overeenkomt met 56 uur. • 8 × 120 minuten hoorcollege • 8 × 120 minuten practicum • 12 × 120 minuten zelfstudie
Vereiste voorkennis: Werkvorm: Toetsing: Leermiddelen:
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
advies
ontwerp
realisatie
1
1
2
2
beheer
analyse
Draagt bij aan competentie
gebruikersinteractie bedrijfsprocessen software infrastructuur hardware interfacing
Leerdoelen:
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¨ enteerde denkwijze. Het in correct Nederlands en met gebruikmaking van het juiste jargon kunnen communiceren over het objectgeori¨ enteerde paradigma.
Inhoud: • 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: Datum:
Wessel Oele 12 november 2015
Tinpro01-2 12 november 2015
2
Modulewijzer
1
Hogeschool Rotterdam
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 ´e´en 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¨enteerde 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
Modulewijzer
Hogeschool Rotterdam
• 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 1
Literatuur Schaum t/m blz. 135,
2
Schaum t/m blz. 140
3
Schaum t/m blz. 155
4
Schaum t/m blz. 170
5
Schaum t/m blz. 185
6
Schaum t/m blz. 200
7
Schaum t/m blz. 215
8
Schaum t/m blz. 230
9
voorbeeldtentamen
10
3
Lesinhoud inleiding, classes, objecten, modifiers get- en set methodes, modifiers constructoren, pointers, overloading inheritance, overriding, generalisatie/specialisatie polymorphisme, abstracte classes abstracte methodes, interfaces javadoc, inleiding Java a.p.i. static, this, statische methodes bespreking voorbeeldtentamen vragenuur/inhaalles
Producten
inleveren dracht 1 inleveren dracht 2 inleveren dracht 3
practicumop-
inleveren dracht 3 inleveren dracht 4 inleveren dracht 4 inleveren dracht 5 inleveren dracht 5
practicumop-
practicumoppracticumop-
practicumoppracticumoppracticumoppracticumop-
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
Modulewijzer
Hogeschool Rotterdam
• 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 ´e´enmalig worden herkanst. • Studenten die vanwege een handicap behoefte hebben aan een groter lettertype dienen de modulebeheerder minimaal ´e´en 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
Modulewijzer
4
1
2
3 4 5 6 7
Hogeschool Rotterdam
Bijlage 1: Toetsmatrijs Leerdoelen
Dublin descriptoren
Classes en objecten, evt. herhaling diverse onderwerpen uit tinpro01-1 Set- en getmethodes, pointers, data-hiding, modifiers Overloading, constructor
1,2,3,4
Overerving, generalisatie/specialisatie Keywords super en abstract Abstracte classes, polymorphisme Interfaces
1,2,3,4
Verwijzing naar opdracht / vraag / criteria practicumopdracht 1 t/m 5, tentamen
1,2,3,4
practicumopdracht t/m 5, tentamen
1,2,3,4
practicumopdracht 2 t/m 5, tentamen practicumopdracht 3 t/m 5, tentamen practicumopdracht 5, tentamen practicumopdracht 4 en 5, tentamen practicumopdracht 4 en 5, tentamen
1,2,3,4 1,2,3,4 1,2,3,4
1
Dublin-descriptoren: 1. Kennis en inzicht 2. Toepassen kennis en inzicht 3. Oordeelsvorming 4. Communicatie
Tinpro01-2 12 november 2015
6
Modulewijzer
5
Hogeschool Rotterdam
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¨eren? (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
Modulewijzer
Hogeschool Rotterdam
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
Modulewijzer
6
Hogeschool Rotterdam
Bijlage 3: Studielast (normering in ecs) aantal weken
lesuren
10
aantal lesuren van 50 minuten 4
klokuren 33
zelfstudie leestijd
aantal pagina’ s
120
3 per uur 6 per uur 10 per uur
12
presentaties overlegtijd uitzoektijd/research
11
niet ingeroosterde lestijd toetsen
voorbereiden toets nabespreking
werkstuk,verslag,rapport,scriptie
uitzoeken overleggen schrijven
Stage, Praktijkopdracht
voorbereiding aanwezigheid overleg
Subtotaal in klokuren Ruis 5% Totaal in klokuren Totaal in studiepunten (ects)
Tinpro01-2 12 november 2015
3.5 1.5 1
56 56 2
9