K.Becker & J.R.Parker Learning with Games - MRU SoTL Nov. 2010 1 Do Game Assignments Help Do Game Assignments Help Programming Students Learn Programming Students Learn More? More? Katrin Becker J.R.Parker Nov 2010 This session focuses on the measurable effects of using games as assignments in a programming class.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
K.Becker & J.R.Parker
Learning with Games - MRU SoTL Nov. 2010 1
Do Game Assignments Help Do Game Assignments Help Programming Students Learn Programming Students Learn
More?More?
Katrin Becker J.R.ParkerNov 2010
This session focuses on the measurable effects of using games as assignments in a
programming class.
K.Becker & J.R.Parker
Learning with Games - MRU SoTL Nov. 2010 2
What I’m Playing Now
K.Becker & J.R.Parker
Learning with Games - MRU SoTL Nov. 2010 3
What Are We Trying to Do?
Constructivist and Behaviourist (Instructionist) approaches are both useful in some circumstances. Can
we see an advantage to either one in the first CS
courses?
K.Becker & J.R.Parker
Learning with Games - MRU SoTL Nov. 2010 4
What Are We Trying to Do?
Can we suggest a method or protocol for experimenting with this kind of question?
Eve online
K.Becker & J.R.Parker
Learning with Games - MRU SoTL Nov. 2010 5
Can We Determine If One Is Working Better?
Use each method on different but equivalent CS102 classes.
Record: o Amount of work done o Progress in successor courses
Blood Magic
K.Becker & J.R.Parker
Learning with Games - MRU SoTL Nov. 2010 6
An Opportunistic Experiment
• Different sections of the same course - (Computer Science 233) were allowed to proceed individually, with no formal coordination of assignments or exams.
• This was not the norm, but it did allow us to conduct a simple comparison of the methods used in the two courses.
• Specifically, the assignments given to the students could be assessed and compared. Heavy Rain
K.Becker & J.R.Parker
Learning with Games - MRU SoTL Nov. 2010 7
Experimental Protocol
Four sections of the class were offered in the Winter session.
One instructor chose to assign a behaviorist assignment set, the other a constructivist set, both using the Java language.
The courses were taught to the same course description and explicit syllabus, and should have included the same basic content. Limbo
K.Becker & J.R.Parker
Learning with Games - MRU SoTL Nov. 2010 8
Experimental Protocol
Students submit their assignment solutions using an on-line system, allowing us to collect all of the solutions as they were completed.
We used standard software engineering complexity metrics to determine how complex the solutions were.
Student grades in successor course were collected and averaged for comparison.
Limbo
K.Becker & J.R.Parker
Learning with Games - MRU SoTL Nov. 2010 9Tomb Raider
Assuming that the assignment grades in both classes are equivalent, then the assignments that involved the largest amount of work or effort should be an indicator of how much was learned.
Using Observed Effort
K.Becker & J.R.Parker
Learning with Games - MRU SoTL Nov. 2010 10
Behaviourist vs Contructivist
•Specified in great detail (methods, parameters, even names)
•Little room for variation
•Designed to mimic a specific tiny application that is fully understood.
•Stated Objective; details left to student
•Considerable room for variation
•Designed to reside at the edge of the student’s ZPD
K.Becker & J.R.Parker
Learning with Games - MRU SoTL Nov. 2010 11
Constructivist Assignments*
1. Be accessible to everyone at the start.
2. Invite students to make decisions.
3. Encourage "what if" questions.
4. Encourage students to use their own methods.
5. Promote discussion and communication.
6. Be replete with patterns.
7. Lead somewhere.
8. Have an element of surprise.
9. Be enjoyable.
10. Be extendable. (*G. H. Wheatley)School Tychoon
K.Becker & J.R.Parker
Learning with Games - MRU SoTL Nov. 2010 12
Behaviourist Assignments
1. Student Grades (% to letter)2. A Point class3. Class extension (shape, circle)4. Mortgage Calculator (Swing GUI)5. Greenhouse simulation (Sensors
control devices)
Secret of Monkey Island
K.Becker & J.R.Parker
Learning with Games - MRU SoTL Nov. 2010 13
Constructivist Assignments
1.Transition - convert small program to Java2. First Class - implement a class that serves as
an enhanced version of a data type that was used in the previous program.
3. Encapsulation; Simple Data Structures - Write an ACSII-graphics version of the Four Seasons Solitaire game.
4. Parsing -Design and write a recursive parser for expressions.
5. Inheritance -ASCII-graphics version of the Centipede arcade game.
Mass Effect
K.Becker & J.R.Parker
Learning with Games - MRU SoTL Nov. 2010 14
Measuring the Programs
They are some of the oldest measures of program complexity (1977).
We chose the commonly encountered Halstead metrics because… they are commonly encountered.
Grim Fandango
K.Becker & J.R.Parker
Learning with Games - MRU SoTL Nov. 2010 15
Measuring the Programs
Elder Scrolls IV: Oblivion
These metrics are based on the simple measurements:
n1 = the number of distinct operatorsn2 = the number of distinct operandsN1 = the total number of operatorsN2 = the total number of operands
K.Becker & J.R.Parker
Learning with Games - MRU SoTL Nov. 2010 16
Measuring the Programs
Program Length N
A measure of program length in terms of the number of tokens used by the program.
It is calculated as
N = N1 + N2(total # operators & operands)
K.Becker & J.R.Parker
Learning with Games - MRU SoTL Nov. 2010 17
Measuring the Programs
Vocabulary nThe number distinct symbols used by the
program. It is calculated as
n = n1 + n2
(# distinct operators & operands)
K.Becker & J.R.Parker
Learning with Games - MRU SoTL Nov. 2010 18
Measuring the Programs
Lines of Code (LOC)The number distinct symbols used
by the program. It is calculated as LOC = N / 3.14
K.Becker & J.R.Parker
Learning with Games - MRU SoTL Nov. 2010 19
Measuring the Programs
Effort: the relationship between an estimate of the volume of information required to specify a software program (V) and the program level, a measure of the relation between the volumes of the most compact representation and the actual program. E = V/PL PL = 1 / (( n1 / 2 ) * ( N2 / n2 )) V= N * (LOG2 n)
K.Becker & J.R.Parker
Learning with Games - MRU SoTL Nov. 2010 20
Measuring the Programs
Time to code: This is an estimate of how long it would generally take to write the program.
T = E/K For the Java language the constant 0.9 was used.
Cyclomatic Complexity: A measure of how many paths there are through a program.
A graph can be created in which each node corresponds to a block of code, and each arc to a branch. The cyclomatic number is the maximum number of linearly independent circuits.
K.Becker & J.R.Parker
Learning with Games - MRU SoTL Nov. 2010 25
Measuring the Programs
Cyclomatic Complexity
The results of multiple experiments (G.A. Miller) suggest that modules approach zero defects when McCabe's Cyclomatic Complexity is within 7+/- 2. Cyclomatic Complexity between 10 and 15 minimized the number of module changes.