MODULEWIJZER
HOGESCHOOL ROTTERDAM /CMI
HOGESCHOOL ROTTERDAM / CMI
Internettechnologie INFITT01
Aantal studiepunten: 3 Modulebeheerder: A. L. J. Busker
INFITT01 21-7-2014
1
MODULEWIJZER
HOGESCHOOL ROTTERDAM /CMI
Modulebeschrijving Modulenaam: Modulecode: Aantal studiepunten en studiebelastinguren:
Vereiste voorkennis: Werkvorm: Toetsing: Leermiddelen:
Draagt bij aan (HBO-i) competentie:
Internettechnologie INFITT01 Deze module levert drie studiepunt op, wat overeenkomt met een studie last van 84 uur. De verdeling van de 84 uur over de periode is als volgt: Begeleide uren: - Werkcollege 8 weken: 8 * 3 * 50 minuten.............................................20 uur Onbegeleide uren: - Literatuurstudie (8 * 3 uur) ....................................................................24 uur - Opdrachten/cases (8 * 2 uur) ...............................................................16 uur - Eindopdracht ........................................................................................24 uur - Totaal: ...................................................................................................84 uur Programmeermodules propedeuse Werkcollege: 8 * 3 * 50 min Gebaseerd op: a. Opdrachten, week 1 t/m 6 (individueel) b. Eindopdracht, week 6 t/m 9 (groep) Aanbevolen boek: Titel: Head First Servlets & JSP Auteur(s): Bryan Basham, Kathy Sierra, Bert Bates Uitgever: O’Reilly ISBN-13: 978-0596516680 Analyseren, ontwerpen, en realiseren van software op beheersingsniveau 2 (zie HBO-I competentiematrix)
Leerdoelen:
Je kan de verschillende type servers en hun eigenschappen benoemen en uitleggen. Je kan de verschillende technologieën die gebruikt worden bij het ontwikkelen van webapplicaties toepassen. Je kan de standaarden (webapplicatie framework) die gebruikt worden bij het ontwikkelen van een webapplicatie toepassen. Je kan diverse technieken voor het ontwikkelen van een webapplicatie integreren tot een onderhoudbaar geheel.
Inhoud:
De module bestaat uit 8 lessen, waarin verschillende aspecten van het ontwikkelen van een webapplicatie in Java m.b.v. een containerserver (Tomcat) geleerd. De docent geeft de werkcolleges met behulp van voorbeelden. De studenten voert opdrachten uit om de theorie in de praktijk te brengen. De lessen zijn interactief, er wordt geen nadruk gelegd op abstracte concepten. Aanwezigheid is verplicht. A.L.J. Busker 20 november 2012
Opmerkingen: Modulebeheerder: Datum:
INFITT01 21-7-2014
2
MODULEWIJZER
HOGESCHOOL ROTTERDAM /CMI
1.
Algemene omschrijving
1.1
Inleiding
Bij het ontwikkelen van een complexe, schaalbare websites, webapplicaties of webservices gaat veel (kostbare) tijd zitten in aspecten als: transaction support, security, configuratie, etc. Hierom zijn applicatieservers met een web application frameworks ("WAF") ontworpen. Een WAF is een software framework met het doel om veel voorkomende bewerkingen uit handen te nemen en een standaard hiervoor te leveren. Bijvoorbeeld van frameworks zijn bibliotheken voor database toegang, sessiebeheer, navigatie, etc. Het gebruik van applicatieservers t.o.v. ander internetoplossingen heeft meerdere voordelen op o.a. kosten, performance onderhoud. Integriteit data en code - Door gebruik te maken van een gecentraliseerd business logica op een eigen server (of een cluster van servers) worden updates en upgrades van een applicatie voor alle users gegarandeerd. Er is geen risico dat oude versies van de applicatie toegang hebben, of erger de mogelijkheid hebben om data te wijzigen, op de ‘oude’, niet compatible manier. Configuratie centraal - Aanpassingen op de applicatie configuratie zoals het verplaatsen van database servers of systeeminstellingen kunnen centraal en vaak onafhankelijk van de applicatie worden uitgevoerd. Beveiliging - Een centraal punt waarlangs service providers toegang tot gegevens en delen van de applicatie zelf kunnen beheren draagt bij aan een verbeterde beveiliging, weermee de verantwoordelijkheid voor de authenticatie van de potentieel onveilige clientlayer wordt overgeheveld zonder dat hierbij de databaselaag wordt blootgesteld. Performance - Door netwerkverkeer te laten bepalen door perfomance-tier verkeer wordt de performance (in client-server model) verbeterd bij grote applicatie in ‘heavy usage’ omgevingen. Total Cost of Ownership - De hierboven genoemde voordelen (kunnen) resulteren in een kostenbesparing voor organisaties die (enterprise) applicaties ontwikkelen (toepassen). In de praktijk hebben de technische uitdagingen voor het ontwikkelen van software dat voldoet aan dit paradigma, samen met de noodzaak om de software te distribueren een negatief effect. Transactiesupport - End-users (ontwikkelaars) hebben de beschikking over een systeembreed standaard gedrag wat resulteert in minder ontwikkeltijd en minder kosten doordat de server hiervoor veel ‘vervelend werk’ uit handen neemt zodat ontwikkelaars zich kunnen richten op de business logica. 1.2
Leerdoelen
bedrijfsprocessen
1
software
1
1
2
2
beheer
Realisatie
1
Ontwerp
gebruikersinteractie
Advies
HBO-i domeinbeschrijving niveaus
Analyse
De volgende tabel toont de reikwijdte van de module binnen de HBO-i domeinbeschrijving.
infrastructuur Hardware interfacing
INFITT01 21-7-2014
3
MODULEWIJZER
1.3
HOGESCHOOL ROTTERDAM /CMI
Werkvorm
De module bestaat uit acht (8) bijeenkomsten. Per bijeenkomst geeft de docent de les en werken studenten aan opdrachten. De docent legt de concepten en de methoden met behulp van voorbeelden uit. De lessen zijn hoog interactief, er wordt geen nadruk gelegd op abstracte concepten. 1.4
Inhoud
1.4.1
Sessie 1: Inleiding en de context -
1.4.2
Sessie 2 -
1.4.3
JavaServer Pages Standard Tag Library (JSTL) Uitgebreide demonstratie Opdrachten week 6
Sessie 7: -
1.4.8
3rd party libraries Standard actions Expression language (EL) Opdrachten week 5
Sessie 6: -
1.4.7
Vervolg JSP Opdrachten week 4
Sessie 5: -
1.4.6
Sessies Introductie JSP Opdrachten week 3
Sessie 4: -
1.4.5
Contexten Listeners Scope/attributes Thread safety Opdrachten week 2
Sessie 3 -
1.4.4
Essentie van webapplicatie Protocollen Talen Java en inleiding servlets & containers Opdrachten week 1
Beveiliging Filters Uitreiking eindopdracht
Sessie 8: -
Databases (JDBC, JNDI, ORM, JPA)
INFITT01 21-7-2014
4
MODULEWIJZER
-
1.5
HOGESCHOOL ROTTERDAM /CMI
MVC en Spring/Struts EJB
Relatie met andere onderwijseenheden
Je beheerst de basis van programmeren (loops, arrays, object-oriented programming, exception handling etc.). Daarnaast is basiskennis van XML wenselijk. 1.6
Leermiddelen / Literatuur
Er is geen verplicht lesmateriaal, maar onderstaande literatuur wordt sterkt aanbevolen. Tevens geven de presentaties tijdens de lessen de nodige informatie. De studenten worden aangemoedigd om zelfstandig naar de bronnen te zoeken wanneer dat noodzakelijk is. Er wordt naar de volgende literatuurbron(nen) verwezen: [1] Basham, Sierra en Bates, Head First Servlets and JSP, 2nd edition, O’Reilly Media, 2008
INFITT01 21-7-2014
5
MODULEWIJZER
2.
HOGESCHOOL ROTTERDAM /CMI
Programma
Het programma voor alle lessen, uitgewerkt per week, is in de volgende tabel samengavat. Week 1
Literatuur [1] H1 t/m 4
2
[1] H5
3 4 5
[1] H6, H7 [1] H7, H8 [1] H9
6
[1] H9, H10, H11
7 8
[1] H12, H13 [1] H14
9
INFITT01 21-7-2014
Lesinhoud Producten Essentie van webapplicatie, Opdrachten week 1 protocollen, (programmeer)talen, Java en inleiding servlets & containers Contexten, listeners, Opdrachten week 2 scope/attributen, thread safety
Sessions, Introduktie JSP JSP 3rd party libraries, standard actions, expression language (EL) JavaServer Pages Standard Tag Library (JSTL), uitgebreide demonstratie Beveiliging, filters Databases (JDBC, JNDI, ORM, JPA), Model View Controler (MVC) en Spring/Struts, Enterprise Java Beans (EJB)
Opdrachten week 3 Opdrachten week 4 Opdrachten week 5 Opdrachten week 6 Eindopdracht Eindopdracht
Eindopdracht inleveren
6
MODULEWIJZER
3.
HOGESCHOOL ROTTERDAM /CMI
Toetsing en beoordeling
3.1 Procedure De module wordt afgesloten met een praktijkopdracht Studenten mogen in groepjes van maximaal 2 studenten samenwerken.. Deze eindopdracht (opdracht 7) telt 100% mee als eindcijfer. De overige individuele opdrachten (1 t/m 6) moeten worden goedgekeurd (afgetekend) door de docent om een eindcijfer te kunnen krijgen, maar maken zelf geen onderdeel uit van het eindcijfer. Er is geen tentamen. De deadline voor het inleveren van de eindopdracht is week 9. De eindopdracht moet voor of uiterlijk op de deadline worden ingeleverd aan het begin van de les. Bij het inleveren van de opdrachten moet de complete groep aanwezig zijn en moet elk groepslid alle code kunnen verklaren. Bij het inleveren/bespreken, kan de docent een groep vragen om ter plekke wijzigingen aan te brengen in hun code. De code wordt o.a. gecontroleerd op kwaliteit met Sonar (een code analyse tool). Het cijfer kan afhankelijk van de verklaringen over de code bij het inleveren per student binnen de groep verschillen. Je krijgt echter een individueel cijfer. Je uitwerking wordt beoordeeld wanneer je aan onderstaande voorwaarden voldoet: Voorwaarde Tijdigheid
Verzorging
Toelichting Je levert de practicumopdrachten op tijd in. Deadline is week 9 (laatste les), aan het bigin van de les. Lever je opdracht op cd en het verslag in hardcopy aan bij de docent (postvak). Je practicumopdracht is netjes verzorgd. Verslag: de richtlijnen voor rapporteren zijn gevolgd, stijl en spelling zijn correct en het voorblad bevat alle voorgeschreven informatie (modulenaam, modulecode, studiejaar, onderwijsperiode, naam, studentnummer, klas, datum, enz). Cd: op de cd staan je naam, studentnummer, modulecode en datum van inleveren.
Je eindcijfer wordt bepaald aan de hand van onderstaande criteria. Tijdens de toelichting van je practicumopdracht en met behulp van een quality assurance tool wordt aan de hand van deze criteria getoetst in hoeverre je de leerstof beheerst en de gemaakte keuzes kunt onderbouwen en reproduceren. Criterium 1. 2. 3. 4. 5.
Architectuur en ontwerp Toepassen commentaar/documentatie Complexiteit van coding (vermijden cyclomatische complexiteit, etc.) Toepassen coderingstandards (identation, naming, etc.) Gebruik technologieën TOTAAL
Punten 2 2 2 2 2 10
3.2 Herkansing Indien het cijfer onvoldoende (< 5.5) is en/of als de opdrachten week 1 t/m 6 niet zijn afgetekend door de docent krijgt de studenten een nieuwe individuele opdracht in week 1 van de periode volgend op de periode waarin de module is gegeven. De deadline voor deze opdracht, inclusief de opdrachten 1 t/m 6 indien deze nog niet zijn afgetekend, is week 4 woensdag om 17.00. Tijdens de herkansing heeft de student geen mogelijkheid op feedback van de docent.
INFITT01 21-7-2014
7
MODULEWIJZER
HOGESCHOOL ROTTERDAM /CMI
Bijlage 1: Toetsenmatrijs De relatie tussen de leerdoelen en de vragen dan wel opdrachten van een toets en de niveau het leerdoel getoetst wordt zijn in de volgende tabel weergegeven.
1. 2. 3. 4.
Leerdoelen Je kan de verschillende type servers en hun eigenschappen benoemen en uitleggen. Je kan de verschillende technologieen die gebruikt worden bij het ontwikkelen van webapplicaties toepassen. Je kan de standaarden die gebruikt worden bij het ontwikkelen van een webapplicatie toepassen. Je kan diverse technieken voor het ontwikkelen van een webapplicatie integreren tot een onderhoudbaar geheel.
Criterium 1, 5 4, 5 2, 4 2, 3, 4
Dublin descriptoren 1. Kennis en inzicht: Heeft aantoonbare kennis en inzicht van een vakgebied, waarbij wordt voortgebouwd op het niveau bereikt in het voortgezet onderwijs en dit wordt overtroffen; functioneert doorgaans op een niveau waarop met ondersteuning van gespecialiseerde handboeken, enige aspecten voorkomen waarvoor kennis van de laatste ontwikkelingen in het vakgebied vereist is; 2. Toepassen kennis en inzicht: Is in staat om zijn/haar kennis en inzicht op dusdanige wijze toe te passen, dat dit een professionele benadering van zijn/haar werk of beroep laat zien, en beschikt verder over competenties voor het opstellen en verdiepen van argumentaties en voor het oplossen van problemen op het vakgebied; 3. Oordeelsvorming: Is in staat om relevante gegevens te verzamelen en interpreteren (meestal op het vakgebied) met het doel een oordeel te vormen dat mede gebaseerd is op het afwegen van relevante sociaalmaatschappelijke, wetenschappelijke of ethische aspecten; 4. Communicatie: Is in staat om informatie, ideeën en oplossingen over te brengen op publiek bestaande uit specialisten of niet-specialisten; 5. Leervaardigheden: Bezit de leervaardigheden die noodzakelijk zijn om een vervolgstudie die een hoog niveau van autonomie veronderstelt aan te gaan.
INFITT01 21-7-2014
8