Introductieproject
Informatica Introductiecollege 10 november 2015 Paul Bergervoet (presentatie door Silja Renooij, met dank aan F. Wiering en W. Hürst)
1
Hoofddoel van het project Ontwikkelen en uitbreiden van kennis en vaardigheden Informatica: programmeren vele andere aspecten (datastructuren, databases, (web)interfaces, ...) Academisch: analytisch denken argumenteren / logisch redeneren interpreteren Algemeen: samenwerken in teams communicatie zelfwerkzaamheid eigen verantwoordelijkheid presenteren (schriftelijk en mondeling) voor variërend publiek
2
Hoe verloopt een project in het algemeen? project kent fasen deliverables (documenten, producten)
fasen opdrachtkeuze planning analyseren van vereisten ontwerpen bouwen en testen
opleveren en presenteren
meer hierover in hoorcollege 2
3
Waarom de projectvorm? realistisch, gericht op beroepspraktijk algemene vaardigheden toepassen van verworven vaardigheden verwerf en pas kennis toe die je nu nodig hebt werken aan je eigen probleem inzetten van je eigen sterke punten, creativiteit wetenschappelijke methoden van de informatica vroege kennismaking met onderwerpen die later in de bachelor
opleiding aan de orde komen
motiverend!
4
Bachelor Informatica Informatica: automatiseren wat we al kunnen/weten • systeemontwerp en implementatie oplossen wat we nog niet kunnen/weten
• modelleren, ontwerp methoden en algoritmen oorspronkelijk prescriptief, maar steeds vaker ook descriptief
• zo werkt apparaat, proces, systeem, ... • data-analyse, visualisatie
Gametechnologie: specifiek domein • nieuw vakgebied
Informatiekunde: bestudeert maatschappelijke rol ICT, informatiemaatschappij descriptief • geeft context
5
Bachelorvakken: plaats in het curriculum
6
http://www.cs.uu.nl/bama/IcaMajor.html
Groepen en begeleiders
groepsindeling uit Osiris is niet van toepassing! eerstejaars: ingedeeld per (halve) tutorgroep begeleider: tutor of andere docent; mede bepaald door
opdracht
definitieve indeling aan het eind van dit college ben je niet in een groep ingedeeld? in de pauze even melden!!
eerste actie van groep: onderwerpkeuze! bepalen voor eerste bijeenkomst met begeleider
7
Informaticaproject: inleiding Jullie gaan iets bouwen! Deliverables (zie website): begin: een projectdocument: met de planning, het ontwerp en de constructieplannen eind: een werkend en demonstreerbaar product een website en flyer een verslag met reflectie op het project + handleiding
Op verschillende momenten toon je op verschillende manieren je voortgang. Verwachte inzet (p.p.): 7,5 ECTS = 7,5 x 28 uur = 210 uur 8
Soorten opdrachten Bouw een complete tool. Doorgaans eenvoudige theorie; meer nadruk op ‘uiterlijkheden’.
Bouw een deel van een complex systeem. Meer nadruk op probleemoplossing dan op ‘uiterlijkheden’.
9
Opdrachten
(niet vastomlijnd)
Eigen idee; laat je bijv inspireren door: • • • • • • •
10
Computer Detective EHBO trainer Image stitching / panorama reconstructie Steganografie (data hiding) / digitaal watermerken ASCII-art generator Geotagging 2D `matrixcodes'
MyMap: kortste-pad kaart Weet wat je eet Verkiezingsuitslagen; berekenen en analyseren Sport: wie speelt er tegen wie? Simulatie van een 4-bits processor Shopping assistent 3D-illustraties Stoplichtsimulatie Logische puzzels Taalkist: leg het begrip grammatica uit Fanatiek geocachen
Wees creatief en ambitieus!!
Procedure: hoe?
Wie gaan dit doen? Jij (met je team)
Hoe word je geacht dit te doen? Zoek dat zelf maar uit Dit is geen standaard vak waar we je leren hoe je dingen moet doen; je moet het hier jezelf leren. Maak je geen zorgen: we helpen wel (komt straks)
11
Procedure: waarom? Leer te werken in een team essentieel in meeste werkomgevingen, zeker in software engineering samen verantwoordelijk zijn voor het geheel Leer hoe je dingen zelf uit moet zoeken we kunnen niet alles onderwijzen vakgebied is erg aan veranderingen onderhevig Leren door te doen is vaak effectiever je leert beter door dingen zelf te ervaren, dan door te luisteren naar iemand die er over vertelt timemanagement Leren van fouten is vaak nog beter!
12
Betrokkenen: de begeleider Je tutor is doorgaans ook je begeleider. Taak en rol: de begeleider is geen onderdeel van het project team
hij/zij heeft de rol van adviseur hij/zij ondersteunt met management en organisatorische
zaken hij/zij biedt hulp, waar nodig
hij/zij kan contact leggen met experts uit het Departement hij/zij monitoort je prestaties en vooruitgang hij/zij is betrokken bij de uiteindelijke beoordeling
13
Betrokkenen: studentassistent
Assistant is: Sam van der Wal
Taak en rol: je kunt ze benaderen voor technisch- en programmeeradvies een aantal verplichte bezoeken ....
14
Betrokkenen: coordinator en juryleden
Coordinator: Paul Bergervoet voor alles rondom de organisatie van het vak:
teamindeling, opdrachttoewijzing, regelingen, website, schema’s van colleges, presentaties en symposium Juryleden:
Verschillende interne en externe experts bij eindpresentaties en symposium
15
Hoorcolleges 1. Introductie & organisatie 2. Software engineering & teamwerk 3. ‘Tools & recht’ vervalt, materiaal op site 4. Gastspreker van
VALORI│BUSINESS IT OPTIMIZATION
(testen)
5. Gastspreker … (software kwaliteit) Doel: algemeen, globale introducties
geen “blauwdruk” maar hints en tips oriëntatie op arbeidsmarkt (niet direct relevant voor je project)
Aanwezigheid: verplicht, ook bij 4 en 5!
16
Projectmeetings wekelijks; gaan bij default door verplicht voor iedereen 1 in aanwezigheid van begeleider; rest zelf jullie organiseren ze (voorzitter, agenda, notulen....) begeleider observeert en adviseert begeleider grijpt in, indien nodig
In het ideale geval doet de begeleider niets, maar hij/zij heeft wel het laatste woord.
17
Teamwerk (kort) Dit project vereist inspanning van het hele team Werken in een team is lastig (met name als heel divers)
Zorg er dus voor dat: je met elkaar praat je elkaars talenten ontdekt en gebruikt je ook werkt aan de dingen waar je weinig/niets van weet je ook anderen helpt om te leren en zichzelf te verbeteren iedereen evenveel bijdraagt Het bijhouden van een logboek is verplicht! aantal gewerkte uren + wat je daarin gedaan hebt tenminste wekelijks ge-update
18
Projectdocument een beschrijving of verbeelding van het probleem of wens. Beschrijf je probleemstelling een beschrijving van het product dat je gaat ontwikkelen. Maak een requirements analyse waarin je de eisen en specificaties formuleert. Geef daarin een priotering aan je projectaanpak. Beschrijf hoe je in de groep gaat samenwerken: taakverdeling, werkwijze bij het samenwerken aan programmacode, etc. Gebruik een projectmethodiek! een beschrijving van de aanpak bij het ontwerp van je product. Kies een ontwikkelprincipe of -methodiek een planning voor het project praktische informatie: namen, e-mail, telefoonnummers, url's...
Helder geschreven, duidelijk maar beknopt. (een andere groep moet met jouw document in de hand precies het door jou gewenste systeem kunnen bouwen!) Stuur in week 3 concept in voor feedback, definitief op 2 dec.
19
Vragen
Mogen we open source software gebruiken? Mogen we code hergebruiken (bijv. van ander vak)? Mogen we plaatjes, geluiden etc van internet gebruiken?
Ja, gebruik vooral wat er beschikbaar is, maar geef het duidelijk aan: ivm beoordeling ivm credits denk aan juridische zaken (zie materiaal college 3)! Ook het gebruik van hardware is toegestaan, mits je daar over beschikt (of via Departement: overleg met je begeleider) en je zelf de benodigde support regelt.
20
Advies Bereid je voor op het ergste dingen kunnen en zullen mis gaan teamgenoten kunnen uitvallen Zorg dus voor een plan B! hou teamgenoten goed in de gaten, bespreek problemen in een vroeg stadium problemen zijn niet erg, maar er niets mee doen wel!
Mik hoog en wees ambitieus, echter wees ook realistisch in je planning je ambities niet realiseren is acceptabel mislukken door luiheid, te weinig inspanning of een chaotisch aanpak is dat niet!
21
Implementatie en testen
implementatie: kies zelf je taal gebruik versiecontrol, bijv. met Git/GitHub, TFS, SVN (zie ook hoorcollege 3)
zorg dat je code netjes op orde is (voorzien van commentaar)
Belangrijk: implementatie betekent ook testen! testen van correctheid: geen bugs? testen van functionaliteit, usability, etc.
22
Presentaties
Halverwege presenteer je aan je begeleider en de studentassistent je ‘tussenproduct’; tevens geef je een ‘tussenpresentatie’ aan je medestudenten. kort, wat is opdracht, wat kan je systeem al en wat nog niet. noem eventuele problemen de zaal draagt tips en ideeën aan
Aan het eind volgt ook een eindpresentatie en demonstratie van je eindproduct, op de jurydag en het symposium Details: zie website; aanwezigheid verplicht!
23
Reflectieverslag hoe is je project verlopen? alles volgens plan? haalbaar? voortschrijdend inzicht?
wat wist/kon je al? onverwachte inbreng?
hoe heb je gewerkt (individueel, groep)? planning, organisatie?
nieuwe kennis/vaardigheden opgedaan? wat is nog niet opgelost? waar ben je nieuwsgierig naar geworden? plus individueel verslagje over bijdrage aan het project
24
Promotiemateriaal & beoordeling Om je project te promoten maak je een website een flyer Overtuig hiermee het publiek, en de jury.... Zie website voor details; de aandacht die je aan deze onderdelen besteedt wordt ook meegewogen in het cijfer.
Het uiteindelijke cijfer wordt bepaald door de begeleider; dit kan zijn: hetzelfde voor het hele team iets beter of slechter afhankelijk van verschillen in individuele bijdragen veel beter of slechter, afhankelijk van (te laag) aantal gewerkte uren afwezigheid bij projectmeetings en hoorcolleges luiheid of bovengemiddelde inspanning
25
Planning informaticaproject: tot Kerst Week 46 kennismaking onderwerp (eigen -> neem contact op met coordinator
en begeleider!); organiseren team + omgeving, logboek, website, svn(?)
Week 47 planning analyseren vereisten + ontwerpen brainstormen met student assistent; kennismaking begeleider,
logboek aan begeleider tonen (verplicht!)
Week 48 website opzetten (webspace beschikbaar) bouwen
Week 49 bouwen en testen projectdocument in definitieve vorm inleveren (bij begeleider).
Week 50 bouwen en testen website tonen aan studentassistent tussenproduct tonen aan studentassistent
Week 51 bouwen en testen tussenpresentaties teams
26
Planning informaticaproject: vanaf Kerst Week 1 bouwen en testen eindverslag schrijven website afmaken
Week 2 bouwen en testen eindverslag schrijven flyer maken
Week 3 afronden vr: eindverslag (reflectie) + werkend systeem inleveren (bij
begeleider) vr: definitieve website op projectspace; flyer mailen naar coördinator
Week 4 wo: presentatie voor jury vr: symposium Projectdossier met alle deliverables inleveren (op symposium)
27
Meer informatie vakwebsite bevat alle regels, deadlines etc. Let ook op evt afwijkende tijden en zalen!
nuttig materiaal op site documenten over projectmatig werken links naar tools collegeslides
volg het nieuws op de vakwebsite!!
28
Groepen
Verdeling van studenten over projectgroepen:
29
Honoursgroep: 1 groep twinfo: 1 groep Tutorgroep Paul Bergervoet: 3 groepen, met overige studenten Tutorgroep Mehdi Dastani: 2 groepen Tutorgroep Frank Dignum: 2 groepen Tutorgroep Dirk Thierens: 1 groep
Groepen en begeleiders
Eerste bijeenkomsten met begeleider Neem snel contact op met je begeleider voor een eerste afspraak!
30
Honoursgroep: Frank Dignum,
[email protected] Tutorgroep Paul B: Paul Bergervoet,
[email protected] Tutorgroep Dirk Thierens en twinfo-groep: Dirk Thierens,
[email protected] Tutorgroep Frank Dignum: Arno Siebes,
[email protected] Tutorgroep Mehdi Dastani: Henry Prakken,
[email protected]
Aan de slag Deze week nog: onderwerpen + begeleiders toebedeeld (eigen? -> neem gelijk contact
op met coordinator en begeleider!) bedenk een naam voor je team bijeenkomst zonder begeleider wijs iemand aan die de communicatie met begeleider, coördinator en studentassistent verzorgt (voorzitter) maak een afspraak met de studentassistent zet alles klaar voor een logboek (urenregistratie), de team-website en het project (svn, dropbox, googledocs, facebook, ...?)
Ga vervolgens aan de slag met een planning en analyse: wat ga je bouwen? aan wat voor eisen moet het voldoen?
college woensdag over
software-ontwikkelcyclus en teamwerk
veel succes gewenst! 31