interac(ve*classroom*games** for*teaching*so7ware*engineering* · each group writes the plot for...
TRANSCRIPT
Interac(ve*Classroom*Games**
for*Teaching*So7ware*Engineering*
Yuriy*Brun*
University*of*Massachuse@s,*Amherst*
h@p://people.cs.umass.edu/brun*
warning*
This*talk*will*prac(ce*what*it*advocates*
• The*next*hour*will*be*interac(ve*• There*will*be*significant*audience*par(cipa(on*• There*will*be*concrete*take*aways*for*improving*teaching*
who*am*I?*
• Yuriy*******************h@p://people.cs.umass.edu/brun**
• 3rdNyear*assistant*professor*at*UMass*Amherst*
• I*teach:*– Introduc(on*to*So7ware*Engineering*
• senior*undergraduate,*“build*a*system”*from*scratch*class*
• UMass*and*University*of*Washington*
– Advanced*So7ware*Engineering*• graduate*+*senior*undergraduate*• focus*on*program*analysis*techniques,*state*of*the*art*
goals*of*SE*educa(on*
• Convey*informa(on*to*students*
• Have*students*retain*informa(on*
• Have*students*learn*how*to*write*so7ware*– design*– group*work*– communica(on*(both*direct*and*indirect)*
• Prepare*students*for*jobs*as*so7ware*developers*
what*helps?*
• Answering*ques(ons*in*class*improves*lagging*students’*test*scores*[2].*
*
• Peer*teaching*improves*both*the*teaching*students’*and*learning*students’*informa(on*reten(on*[1].*
• Top*students*perform*even*be@er*through*group*work*[3].*
[2]*M.*D.*Ernst*(2006)*The*Groupthink*specifica(on*
exercise.*In*So7ware*Engineering*Educa(on*in*the*
Modern*Age:*Challenges*and*Possibili(es.*
[3]*R.*J.*Beichner*et*al.*(2007)*The*StudentNCentered*
Ac(vi(es*for*Large*Enrollment*Undergraduate*
Programs*(SCALENUP)*Project.*
How*do*we*integrate*these*
ac(vi(es*into*a*class?*
• group*work*• students*teaching*students*
• answering*ques(ons*• wan(ng*to*come*to*class*
one*solu(on*
• Center*the*class*en(rely*around*group*work*
• Project*based*class*(e.g.,*CS*320*at*UMass)*
*
Students*form*groups*and*develop*a*so7ware*
system*from*scratch.***
• customer*• architecture*
• documenta(on*• presenta(ons*
• conflicts*• pressure*
project*management*
• creates*an*opportunity*for*an*advanced**“project*management”*class*
• one*class*alumnus/alumna*managing*each*team*
• provides*valuable*management*experience*
• …and*valuable*management*help*to*the*professor*
Does*it*work?*
• The*students*learn*by*doing*• Mistakes*are*the*best*learning*experiences*
– two*students*code*up*two*app*parts*without*designing*an*API,*and*the*parts*don’t*fit*together*
– live*through*losing*code*w/o*version*control*and*you’ll*never*make*that*mistake*again*
• But*learning*everything*though*mistakes*is*
frustra(ng*and*incomplete*
We*need*a*lecture*replacement*
inNclass*assignments*
• breaks*up*monotonic*lecturing*
• makes*asking*ques(ons*natural*
• make*par(cipa(on*natural*
• students*love*it*
• does*not*make*group*work*natural*
• can*become*repe((ve*
• hard*to*synchronize*students*
controlNaltNhack*experience*
• Students*like*it*• It’s*great*team*building,*early*in*the**
project*team*bonding*
• Students*likely*don’t*learn*that*much*about*
so7ware*and*even*security*
T.*Denning*et*al.*(2013)*ControlNAltNHack:*The*Design*and*Evalua(on*of*a*Card*Game*for*Computer*
Security*Awareness*and*Educa(on.*ACM*Conference*on*Computer*and*Communica(ons*Security.*
What*about*deeper,*fun*learning?*
• We*want*inNclass*ac(vi(es*that:*
– teach*so7ware*engineering*concepts*– are*fun*– encourage*group*work*– encourage*peer*teaching*
Three*example*ac(vi(es*
• Groupthink*specifica(on*exercise*• Pair*programming*collabora(on*exercise*
• SimSE*so7ware*process*simula(on*game*
• Great*inNclass*ac(vi(es*designed*by*top*SE*educators*
• Packaged*for*and*reusable*by*everyone*
Groupthink*
Teaches:*
• importance*of*communica(on*
• importance*of*documenta(on*
• importance*of*planning*
• importance*of*being*on*the*same*page*
*Original*design*by*Michael*Ernst*&*John*Chapin*
M.*D.*Ernst*(2006)*The*Groupthink*specifica(on*exercise.*In*So7ware*
Engineering*Educa(on*in*the*Modern*Age:*Challenges*and*Possibili(es.*
Groupthink*
1. A*short*lecture*on*the*importance*of*specifica(ons*
2. Descrip(on*of*the*game*
3. Students,*in*groups,*design*a*simple*phone*system*
4. Students*answer*ques(ons,*get*points,*win*prizes!*
*Original*design*by*Michael*Ernst*&*John*Chapin*
Specifica(ons*tell*you*what*to*do*
**** **(but*not*how*to*do*it)*
*
• It’s*difficult*to*create*a*specifica(on*that*is*
– complete*
– consistent*– precise*– concise*
Specifica(ons*ma@er*
• A*specifica(on:*– connects*customer*and*engineer*
– ensures*parts*of*implementa(on*work*together*
– defines*correctness*of*implementa(on*
• Therefore*everyone*must*understand*specs*– Designers,*implementers,*testers,*managers,*marke(ng,*technical*support,*...*users!*
• Good*specifica(ons*are*essen(al*
Groupthink*game*
As*a*group,*specify*behavior*of*a*desktop*telephone*
*
Individually,*answer*ques(ons*about*its*behavior*
*
Goal:**all*group*members*give*same*answer*
*
The*winning*group*receives*a*prize*
Desktop*telephone*
Handset*(speaker*and*microphone)*Keypad*
talk redial ansmachine end
24Ncharacter*display*
Answering*machine*
Phone*jack*
Requirements*
Display*indicates*current*func(onality*
– caller*ID*– number*being*called*
– "Answering*machine"*
– "Ready"*Answering*machine*picks*up*a7er*2*rings*
*
You*decide*other*aspects*of*system*behavior*
Defini(ons*
Lineidle:**phone*is*onNhook*("hung*up")*
– sent*from*phone*to*phoneline*
Lineac(ve:**phone*is*offNhook*("picked*up")*
– sent*from*phone*to*phoneline*
Ring*signal:**causes*phone*to*ring*once*
– sent*from*phoneline*to*phone*
System*architecture*
**
Display
Keypad
Phoneline interface
(phone co.)
Speaker/ microphoneController
Answering machine
startAnswerstartReviewstop
lineactivelineidletones(str)
audioON audioOFFtalk(str)redialansmachineend
displa
y(str)
incoming(str)hangup
ring
audi
o bu
s (c
oppe
r wire
)
ansON
ansOFF
lineON lineOFF
Sample*ques(on*
The*user*is*connected*to*an*outside*party.**The*
outside*party*hangs*up.**What*state*is*the*
phoneline*in?*
*A.**The*user*hears*a*dialtone*
*B.**The*user*does*not*hear*dialtone*
Question 0
Wrap*up*
• We*discuss*what*we*learned*
• What*strategies*worked*
– wri(ng*things*down*– making*fast*decisions*
• What*didn’t*work*
– one*person*doing*all*the*work*– complex*designs*
– long*discussions*
take*away:*without*planning*and*a*specifica(on,*
the*project*will*fail*
pair*programming*exercise*
• 4Nperson*groups*designing*small*systems*
quickly*
• First,*design*individually*and*the*combine*
• Second,*design*in*pairs,*and*combine*
• Third,*design*in*pairs,*periodically*switching*partners**
*Original*design*by*Laurie*Williams,*Lucas*Layman*
Collaboration Exercise
Laurie Williams, Lucas Layman
North Carolina State University
This exercise is copyrighted by Laurie Williams and Lucas Layman (2007). However, you are encouraged to download, forward, copy, print, or distribute it, provided you do so in its entirety (including this notice) and do not sell or otherwise exploit it for commercial purposes.
A Transportation Device
! Each person designs a transportation device. It needs to be able to:
! Transport people between 1 and 10 miles per hour ! Stop on demand ! Carry at least one person ! Restrain at least one person (so they don�t fall out) ! Look nice
! Draw your transportation device. Work alone! Don�t look at your neighbor�s paper! No collaboration! No talking!
Integration
! What time did you wake up this morning? Provide a rank order from earliest to latest.
! 1: Braking system ! 2: Restraint system ! 3: Propulsion system ! 4: Appearance
! Integrate!!
! Each group writes the plot for next summer’s movie hit. It needs to have:
! A love interest between well-known movie stars ! Attraction for the 18-45 age bracket ! Explosions. Lots of explosions ! A significant plot twist
! Work in pairs. ! Decide who is pair 1 and who is pair 2. ! Integrate…
! Pair 1’s: Movie stars and Explosions ! Pair 2’s: Romantic storyline and Plot twist
A Movie Script
Robotic classroom assistant ! Each group designs the features for a robotic
classroom assistant. The system must: ! Person 1: Monitor the number of people in the room ! Person 2: Have a mechanism the instructor can use to get
the students� attention ! Person 3: Make it possible to communicate materials
between instructor and student ! Person 4: Have an interesting, marketable name
! Pair: 1 and 2; 3 and 4 ! Pair: 1 and 3; 2 and 4 ! Pair: 1 and 4; 2 and 3 ! Individually: draw and name the product.
! No talking "
! Integrate!
pair*programming*teaches*
Importance*of*
• constant*communica(on*
• involving*everyone*• integra(on*• design*
How*to*work*in*pairs*on*tasks*most*students*have*done*individually*before.*
SimSE*
• Simulate*a*team*working*on*a*so7ware*
project*
• Compare*and*experiment*with*process*models*
– waterfall*– spiral*– extreme*programming*
– etc.*
E.*O.*Navarro*and*A.*van*der*Hoek*(2007)*Comprehensive*evalua(on*of*an*educa(onal*so7ware*
engineering*simula(on*environment.*Conference*on*So7ware*Engineering*Educa(on*and*Training.*
*Original*design*by*Emily*Navarro*and*André*van*der*Hoek*