Modulehandleiding voor Programmeren met Java PRO1 Progress code : PRO1 Schooljaar : 2012 – 2013 Docenten : R.van den Ham / U. Van Heesch Module omvang : 6 credits, 168 studiebelastingsuren Doel • • • Inleiding in objectgeoriënteerd programmeren Kennismaken met de programmeertaal Java Kennismaken met de Java-ontwikkelomgeving BlueJ Motivatie en Inhoud Deze module is een inleiding tot objectgeoriënteerd programmeren voor beginners. De module richt zich op algemene objectgeoriënteerde- en programmeerconcepten, gezien vanuit het gezichtspunt van de programmeur. Een belangrijk aspect van deze module is de oriëntatie op fundamentele opgaven van softwareontwikkeling en niet noodzakelijkerwijze op de specifieke details van de taal Java. De module volgt een iteratieve lijn. Alle belangrijke onderwerpen komen verschillende keren terug. Concepten worden meestal geïntroduceerd met juist voldoende detaillering om het besproken probleem op te lossen. Later komen ze in een andere context opnieuw naar voren, waardoor het begrip ervan steeds meer toeneemt. We gebruiken twee gereedschappen om de besproken concepten in de praktijk te brengen: de programmeertaal Java en de Java-ontwikkelomgeving BlueJ. De taal Java is een overzichtelijke implementatie van de belangrijkste objectgeoriënteerde concepten en is als zodanig erg geschikt als onderwijstaal. BlueJ is een Java-ontwikkelomgeving, die expliciet ontworpen is om te dienen als ontwikkelomgeving bij een inleidende cursus objectgeoriënteerd programmeren ("Objects First"). De onderwerpen in deze module worden aan de hand van projecten geïntroduceerd. De module bevat talloze programmeerprojecten en veel oefeningen. Leerdoelen De student • • • • Kent de algemene concepten van objectgeoriënteerde software-ontwikkeling. Kent de basisprincipes van Java-programmering. Kan de kwaliteit van een klein softwaresysteem beoordelen. Kan een klein softwaresysteem in de ontwikkelomgeving BlueJ implementeren. Competenties Deze module leidt op voor de competentie Realiseren. Voorafgaande modulen Er zijn geen voorafgaande modulen. Gelijktijdige modulen Deze module is onafhankelijk van de andere theoriemodulen in het eerste semester. Vervolgmodulen Directe vervolgmodule: PRO2. Steeds opnieuw worden in andere theoriemodulen en projecten objectoriëntatie en Javaprogrammering toegepast. Leermaterialen Bij deze module wordt het volgende boek gebruikt: de Barnes , Kölling: programmeren in Java met BlueJ , 5 editie, ISBN 978-90-430-2389-4, www.pearsoneducation.nl/barnes e De 4 editie van het bovengenoemde BlueJ-boek kan ook gebruikt worden. Het boek is nodig bij de colleges en bij de opgaven in het practicum. Online (zie module website) zijn er ook nog studiematerialen zoals oa deze modulehandleiding en powerpoint diaseries. Website van de engelstalige editie (hier kan ook BlueJ gedownload worden) : http://www.bluej.org/objects-first . Werkwijze Elke week zijn er 2 theorielessen. De docent legt tijdens de lessen de stof uit en geeft praktijkvoorbeelden. Daarnaast is er wekelijks een practicum van 3 lesuren waarvan het eerste deel onder begeleiding van de docent. Daarnaast bestudeer je gedurende 4-5 uur zelf de hoofdstukken uit het boek, leer je de concepten en begrippen, en maak je de opgaven. De tentamenvoorbereiding vergt ook nog eens 20 uur. Elke week is er ook een aantal opgaven (theorie en practicum) te maken. Deze opgaven zullen deels tijdens de zelfstudie afgemaakt moeten worden. Weekindeling De volgende tabel geeft aan welke onderwerpen in welke weken aan de orde komen (voorlopige planning), alsmede de te maken opdrachten: Week 1.1 Thema Inleiding - Objecten en klassen overzicht van de module; inleiding in OO, Java en BlueJ Boek 1 Opgaven: 1.15, 1.16, Calculator 1.2 Klassedefinities (1) broncode lezen; constructors; methodes; velden;statements 2 Opgaven: 2.55, 2.57 Klassedefinities (2) 1.3 2 Opgaven: 2.75, 2.77, 2.78, 2.82 1.4 Interactie van objecten (1) modularisatie; klassendiagrammen; objectdiagrammen; this 3.1 - 3.12, 3.15 Opgaven: 3.31, 3.32, 3.45 + Breuken Interactie van objecten (2) debugger (studenten zelfstandig) 3.13 - 3.14 1.5 Objecten groeperen (1) collecties, herhaallussen 4.1 - 4.8 Opgaven: 4.1, 4.12, 4.13 1.6 Objecten groeperen (2) herhaallussen; iteratoren 4.8 - 4.11 Opgaven: 4.22, 4.28, Word list 1.7 Objecten groeperen (3) arrays 4.11 - 4.12 Opgaven: 4.54, 4.56, 4.58 + Car park Tentamen 1 2.1 Geavanceerde werking (1) bibliotheekklassen gebruiken; klassedocumentatie lezen; random getallen Opgaven: 5.2 t/m 5.5, 5.14, 5.16, 5.18 + Intrestberekening 5.1 - 5.5 Geavanceerde werking (2) 2.2 Hashmaps; klassedocumentatie schrijven; interfaces; public vs private; klassevariabelen 5.6 , 5.10 - 5.14 Opgaven: 5.25 t/m 5.30 + practicumopgave tree Applets en GUIs (1) applets met BlueJ; inleiding in graphics; Graphical 2.3 User Interfaces; GUI-Komponenten; events Slides Opgaven: zie slides Applets en GUIs (2) 2.4 Dictaat Opgaven: zie dictaat, DigitalClock Testen Unit testing 2.5 Regression testing 6.1 – 6.4 Opgaven: 6.5 6.6 6.10 6.11 6.18 - 6.20, TestingAssignment 2.6 De structuur verbeteren met overerving (1) overerving; superklassen; subklassen; polymorfe variabelen 8 Opgaven: 8.8, 8.14 2.6 De structuur verbeteren met overerving (2) Meer over overerving (1) polymorfisme 8 9.1 – 9.3 Opgaven: 8.16, 9.2 Tentamen 2 Toetsing en beoordeling De module PRO1 wordt getoetst door middel van een zogenaamd performance assessment. Het betreft een toets die plaatsvindt in een van onze practicumlokalen aan de eigen laptop of aan een van onze PC’s. Een aantal programmeeropgaven wordt individueel uitgewerkt in een omgeving waarmee in het practicum ervaring is opgedaan. Dit betekent dat je beschikt over alle programmeerhulpmiddelen die je normaliter in de praktijk ook tot je beschikking hebt (met uitzondering van internet), zoals een IDE (BlueJ) en de java api documentatie. De performance assessments bepalen het basis eindcijfer. Van dit ciifer kan aftrek plaatsvinden, wanneer reguliere practicumopdrachten niet tijdig ingeleverd worden, of wanneer geen serieuze poging onderniomen wordt. Er zullen 3 reguliere performance assessments en één inhaal assessment plaatsvinden. Toetsen worden beoordeeld door middel van een cijfer tussen 1 en 10, met één cijfer achter de komma. Onderstaande items zijn in de beoordeling van deze module van belang: A. Proeftentamen Performance assessment na drie lesweken. Dit assessment dient hoofdzakelijk ter kennismaking met het toetssysteem. Wanneer het resultaat van deze toets als ‘zeer goed’ wordt beoordeeld, kan daarmee toelating tot een minder frequente les voor gevorderden (master lecture) worden verkregen. B. Tentamen Performance assessment kwartester 1. Dit assessment zal plaatsvinden tijdens de eerste reguliere tentamenperiode (rond herfstvakantie). C. Tentamen Performance assessment kwartester 2. Dit assessment zal plaatsvinden tijdens de tweede reguliere tentamenperiode (rond kerstvakantie). D. Hertentamen Performance assessment. Dit assessment vindt plaats tijdens de reguliere hertentamenweek in januari. E. Uitwerking van practicumopdrachten. Voor het practicum worden opdrachten beschikbaar gesteld, die door studenten vóór de op de modulepagina vermelde deadline dienen te worden ingeleverd in de persoonlijke PRO1 SVN-repository. Voor iedere niet tijdig ingeleverde uitwerking, kan (controle vindt steekproefsgewijs plaats) 0.5 punt van het eindcijfer worden afgetrokken. Dit geldt overigens ook wanneer de ingeleverde uitwerking niet als een serieuze poging mag worden beschouwd. Wanneer niet voor alle practicumopdrachten een uitwerking wordt ingeleverd, dan wordt geen eindcijfer voor de module verkregen. Een deel van deze opgaven wordt mogelijk één-op-één in het performance assessment opgenomen. Wekelijks worden aselect enkele studenten gekozen waarmee een mondeling (mini) assessment wordt gehouden over de opdracht die in de week daaraan voorafgaand is ingeleverd. Indien alles in orde is, heeft dit geen invloed op het practicumcijfer; indien het resultaat daarentegen onvoldoende is en / of niet als een serieuze poging mag worden beschouwd, dan leidt dit tot een aftrek van één punt (per keer) van het eindcijfer. Een student kan door toeval voor 0 of juist voor meerdere mondelinge assessments worden uitgenodigd. Is een geselecteerde student zonder afmelding niet aanwezig, dan wordt ook één punt afgetrokken. F. Uitwerking van de in de modulehandleiding genoemde opgaven uit het theorieboek. Deze opgaven hoeven niet ingeleverd te worden en zullen ook niet worden beoordeeld. Een deel van deze opgaven wordt mogelijk één-op-één in het performance assessment opgenomen. Ieder performance assessment heeft een maximale duur van drie klokuren. Bij iedere toets zal de stof bestaan uit de onderwerpen die voorafgaand aan de toets binnen de module zijn behandeld. Het eindcijfer voor de module komt als volgt tot stand: Eindcijfer PRO1 = MAX( (0.4 * B + 0.6 * C) / 2 ; D) - E Waarbij de onderdelen B, C en D (laatstgenoemde alleen bij deelname aan het hertentamen) ieder afzonderlijk minimaal met een 4 afgerond dienen te worden. Zoals uit de formule blijkt, kan aan een hertentamen worden deelgenomen ter verbetering van het eindcijfer; het beste resultaat telt. Practicumopdrachten worden individueel gemaakt en ingeleverd. Natuurlijk is het toegestaan om opdrachten en oplossingen met medestudenten te bespreken. Dit kan namelijk zeer leerzaam zijn. Zorg er echter voor dat ingeleverd werk te allen tijde eigen werk blijft. Vermeld altijd met wie je hebt samengewerkt. Wanneer oplossingen, of delen daarvan, zonder bronvermelding gekopieerd worden, dan wordt dit als plagiaat beschouwd. In dit geval zullen maatregelen genomen worden (zie onderwijs- en examenreglement (OER)). Evaluatie De docent stelt het zeer op prijs terugkoppeling te krijgen over de sterke en zwakke punten van deze module. Als je opmerkingen hebt m.b.t. de boeken, de lessen, het materiaal enz., hou die niet voor je maar bespreek ze met de docent. Opbouwende kritiek is in je eigen belang en in belang van je medestudenten. Aan het einde van het semester is er ook een zogenaamd "klankbordgesprek" met docenten (die niet bij de module betrokken waren) en studenten, waarin alle aspecten van het eerste semester besproken worden.