interac(ve*classroom*games** for*teaching*so7ware*engineering* · each group writes the plot for...

38
Interac(ve Classroom Games for Teaching So7ware Engineering Yuriy Brun University of Massachuse@s, Amherst h@p://people.cs.umass.edu/brun

Upload: nguyentuyen

Post on 17-Dec-2018

213 views

Category:

Documents


0 download

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*

material*reten(on*

[1]*Na(onal*Training*Laboratories*(early*1960s)*Bethel,*ME,*USA*

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*

What*about*inNclass*assignments?*

•  Let’s*try*doing*homework*in*a*class*

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*

fun*inNclass*learning*ac(vi(es*

h@p://www.controlalthack.com****$35*on*Amazon*

controlNaltNhack*

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

[email protected]

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*

SimSE*

h@ps://www.ics.uci.edu/~emilyo/SimSE**

Summary*

•  Lecturing:*one*of*the*least*effec(ve*ways*to*teach*Instead:*

•  group*work*•  make*students*teach*each*other*

•  fun*inNclass*ac(vi(es*•  skills*relevant*to*industrial*development*

•  borrow*from*others’*great*work!*