Introductie en organisatie

11/12/2014
Introductieproject
Informatica
Introductiecollege
10 november 2014
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
1
11/12/2014
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
2
11/12/2014
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
3
11/12/2014
Groepen en begeleiders
 groepsindeling uit Osiris is niet van toepassing!
 eerstejaars: ingedeeld per (halve) tutorgroep
 begeleider: tutor of andere docent; mede bepaald door
opdracht
 de meesten weten dus al in welke groep ze zitten!
 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
4
11/12/2014
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:
•
•
•
•
•
•
•











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!!
10
5
11/12/2014
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
6
11/12/2014
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
Groepen en begeleiders
Eerste bijeenkomsten met begeleider:
(NB: 1-6 zijn twee projectgroepen per tutorgroep!!!)







1, phi, Jeroen Fokker, [email protected], neem contact op.
2, sigma, Paul Bergervoet, [email protected], vrijdag 14/11, vanaf
13.15u, volgens rooster.
3, rho, Gerard Vreeswijk, [email protected], vrijdag 14/11, vanaf 13.15u, volgens
rooster.
4, psi, Ad Feelders, [email protected], vrijdag 14/11, vanaf 15u, BBG563.
5, pi, Atze Dijkstra, [email protected], donderdag 13/11, vanaf 15u, BBG568.
6, S/T,TWIN, Hans Bodlaender, [email protected], di 11/11, vanaf 11u,
BBG503.
Honours, Paul Bergervoet, [email protected], woensdag 12/11, vanaf
10u, BBG472.
14
7
11/12/2014
Betrokkenen: studentassistent
Assistenten:
 Gerben Aalvanger (ICA)
 ?? (GT)
Taak en rol:
 je kunt ze benaderen voor technisch- en
programmeeradvies
 een aantal verplichte bezoeken
 ....
15
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
16
8
11/12/2014
Hoorcolleges
1. Introductie & organisatie
2. Software engineering & teamwerk
3. Tools, rights, en resources
4. Gastspreker van
VALORI│BUSINESS IT OPTIMIZATION
(testen)
5. Gastspreker …
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!
17
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.
18
9
11/12/2014
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
19
Projectdocument
Wat wil je en wat heb je er voor nodig?
 een planning die het team en de begeleider in staat stelt het
juiste ambitieniveau van het project te bepalen
 een eenduidige beschrijving van de eisen en specificaties waar
het product aan moet voldoen: wat wil je kunnen en wat heb je
nodig om dat te kunnen? Welke dingen zijn optioneel: wat kan je
er eventueel uitlaten, wat kan je eventueel nog toevoegen?
 een beschrijving of verbeelding van de 'oplossing' voor het
gekozen probleem en hoe je dit naar een implementatie gaat
vertalen.
Helder geschreven, duidelijk maar beknopt.
(een andere groep moet met jouw document in de hand
precies het door jou gewenste systeem kunnen bouwen!)
Inleverwijze en deadline: zie website
20
10
11/12/2014
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 (hoorcollege 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.
21
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!
22
11
11/12/2014
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.
23
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!
24
12
11/12/2014
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?
25
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
26
13
11/12/2014
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
27
Planning informaticaproject: vanaf Kerst
 Week 2
 bouwen en testen
 eindverslag schrijven
 website afmaken
 Week 3
 bouwen en testen
 eindverslag schrijven
 flyer maken
 Week 4
 afronden
 vr: eindverslag (reflectie) + werkend systeem inleveren (bij
begeleider)
 vr: definitieve website op projectspace; flyer mailen naar
coördinator
 Week 5
 wo: presentatie voor jury
 Vr: symposium
 CD/DVD box inleveren met alle deliverables (op symposium)
28
14
11/12/2014
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!!
29
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 voor volgende week
 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!
30
15