Devising a Computer Based Maths lesson: 
from Inception to Development

Robert M. Cook, WREL & CBM

Join the Conversation #WolframTechConf

What is Computer Based Maths?

Maths education is high on the political agenda.

But it is the wrong subject.

What is Maths?

Manipulate[With[{
scale=0.5,
size=63,
clrset=3,
clrs1={
{{,},{,},{,},{,}},
{{,},{,},{,},{,}}},
clrs={
{{,},{,},{,},{,}},
{{,},{,},{,},{,}},
{{,},{,},{,},{,}}
}
},
define=[[1]];
translate=[[1]];
compute=[[1]];
interpret=[[1]];
handcalc=[[1]];
translateFull=[[1]];
interpretFull=[[1]];

If[v==0,

Column[{
Mouseover[Graphics[{
clrs1[[2,1,1]],
Polygon[Chevron[{18,1},{550,0},40,10]],
clrs1[[2,1,2]],
{Opacity[.5],Text[Style["1.",40],{53,21}]},
Translate[Scale[define,scale],{-10,-5}]
},ImageSize->{Automatic,size},ImagePadding->0,PlotRangePadding->0],
Graphics[{
clrs1[[1,1,1]],
Polygon[Chevron[{18,1},{550,0},40,10]],
clrs1[[1,1,2]],
{Opacity[.65],Text[Style["1.",40],{53,21}]},
Translate[Scale[define,scale],{-10,-5}]
},ImageSize->{Automatic,size},ImagePadding->0,PlotRangePadding->0]],

Spacer[{20,20}],


Mouseover[
Graphics[{
clrs1[[2,2,1]],
Polygon[Chevron[{-6,1},{550,0},40,10]],
clrs1[[2,2,2]],
{Opacity[.5],Text[Style["2.",40],{29,21}]},
Translate[Scale[translateFull,scale],(*XXX*){-132,-5}]
},ImageSize->{Automatic,size},ImagePadding->0,PlotRangePadding->0],
Graphics[{
clrs[[1,2,1]],
Polygon[Chevron[{-6,1},{550,0},40,10]],
clrs1[[1,2,2]],
{Opacity[.65],Text[Style["2.",40],{29,21}]},
Translate[Scale[translateFull,scale],{-132,-5}]
},ImageSize->{Automatic,size},ImagePadding->0,PlotRangePadding->0]],
Spacer[{20,20}],

Mouseover[
Graphics[{
clrs[[2,3,1]],
Polygon[Chevron[{5,1},{550,0},40,10]],
clrs1[[2,3,2]],
{Opacity[.5],Text[Style["3.",40],{40,21}]},
Translate[Scale[compute,scale],{-30,-5}]
},ImageSize->{Automatic,size},ImagePadding->0,PlotRangePadding->0],
Graphics[{
clrs1[[1,3,1]],
Polygon[Chevron[{5,1},{550,0},40,10]],
clrs1[[1,3,2]],
{Opacity[.65],Text[Style["3.",40],{40,21}]},
Translate[Scale[compute,scale],{-30,-5}]
},ImageSize->{Automatic,size},ImagePadding->0,PlotRangePadding->0]],
Spacer[{20,20}],

Mouseover[Graphics[{
clrs1[[2,4,1]],
Polygon[Chevron[{-3,1},{550,0},40,10]],
clrs1[[2,4,2]],
{Opacity[.5],Text[Style["4.",40],{32,21}]},
Translate[Scale[interpretFull,scale],(*XXX*){-120,-5}]
},ImageSize->{Automatic,size},ImagePadding->0,PlotRangePadding->0],
Graphics[{
clrs1[[1,4,1]],
Polygon[Chevron[{-3,1},{550,0},40,10]],
clrs1[[1,4,2]],
{Opacity[.65],Text[Style["4.",40],{32,21}]},
Translate[Scale[interpretFull,scale],{-120,-5}]
},ImageSize->{Automatic,size},ImagePadding->0,PlotRangePadding->0]]

}],


(*xxxx slider xxx*)
Column[{
Graphics[{
clrs[[clrset,1,1]],
Polygon[Chevron[{18,1},{340-170v,0},40,10]],
clrs[[clrset,1,2]],
{Opacity[.75],Text[Style["1.",40],{53,21}]},
Translate[Scale[define,{scale-.3v,scale}],{-10-60v,-5}]
},ImageSize->{Automatic,size},ImagePadding->0,PlotRangePadding->0],Spacer[{20,20}],

Graphics[{
clrs[[clrset,2,1]],
Polygon[Chevron[{18,1},{340-160v,0},40,10]],
clrs[[clrset,2,2]],
{Opacity[.75],Text[Style["2.",40],{53,21}]},
Translate[Scale[translate,{scale-.3v,scale}],{-25-67v,-5}]
},ImageSize->{Automatic,size},ImagePadding->0,PlotRangePadding->0],Spacer[{20,20}],

Graphics[{
Blend[{,Gray},v],
Polygon[Chevron[{-6,1},{340+160v,0},40,10]],
White,{Opacity[.75-.75Min[2v,1]],Text[Style["3.",40],{29,21}]},
{Opacity[1-Max[(2v),0]],Translate[Scale[compute,{scale,scale}],{-42,-5}]},
{Opacity[2Max[v,.5]-1],Translate[Scale[handcalc,.85],{160,-12}]}
},ImageSize->{Automatic,size},ImagePadding->0,PlotRangePadding->0],Spacer[{20,20}],

Graphics[{
clrs[[clrset,4,1]],
Polygon[Chevron[{18,1},{340-160v,0},40,10]],
clrs[[clrset,4,2]],{Opacity[.75],Text[Style["4.",40],{53,21}]},
Translate[Scale[interpret,{scale-.3v,scale}],{-15-65v,-5}]
},ImageSize->{Automatic,size},ImagePadding->0,PlotRangePadding->0]
}]]],{{v,0,""},0,1,ImageSize->820, ControlPlacement->Bottom}, Paneled->False,AppearanceElements->None,

Initialization:>(
Chevron[start_,size_,ywidth_,arrow_]:=
{start, 
start+size,
start+size+{0,ywidth/2}+{arrow,0},
start+size+{0,ywidth}, 
start+{0,ywidth},
start+{0,ywidth/2}+{arrow,0}};
)
]

What is wrong with Educational Maths?

Human beings can become bored.

Computers are inherently dumb.

Where should students be focused?

colorBars[{{,},{,},{,},{,}}]

What are the outcomes of a CBM course?

Students should be able to:

Solve problems

Abstract

Interpret

Critique

Communicate

In short:

Print@Style["Don't try to make students calculators - make them problem solvers.","Section",28,TextAlignment-> Center]

What is wrong with problem solving at the moment?

The problems are:

Contrived.

"At a fish and chip shop
	2 fish and 1 portion of chips cost £10.05
	3 fish and 4 portions of chips cost £19.20
	
Work out the cost of 4 fish and 3 portions of chips."

Answer:

Advise your sales department to re-write the menu.

Boring.

Trivial.

The “Where’s Wally” of numbers.

Key principles to keep in mind when designing a lesson:

1. Pose a challenge.

2. Explore assumptions.

3. Teach abstraction.

4. Encourage discussion.

1. Pose a challenge.

What topics to cover:

size=500;CellPrint[ExpressionCell[Row[{Mouseover[Graphics[{Lighter@ColorData[3][6],Rectangle[{-1,-1},{1,1},RoundingRadius->.3],Black,Text[Style["Topics in \ntraditional maths",40]]},ImageSize-> size],Graphics[{Lighter@ColorData[3][6],Rectangle[{-1,-1},{1,1},RoundingRadius->.3],Black,Table[Text[Style[i[[2]],26,Italic],{0.8 Cos[Pi/4+i[[1]] Pi/2],0.8 Sin[Pi/4+i[[1]] Pi/2]}],{i,{{1,"Complete\nthe square"},{2,"Simplifying\nfractions"},{3,"Solving\nsimultaneous\nequations"},{4,"The chain rule"}}}]},ImageSize-> size]],TextCell["vs","Text",FontSize-> 25],Mouseover[Graphics[{Lighter@ColorData[3][6],Rectangle[{-1,-1},{1,1},RoundingRadius->.3],Black,Text[Style["Topics in \nCBM",40]]},ImageSize-> size],Graphics[{Lighter@ColorData[3][6],Rectangle[{-1,-1},{1,1},RoundingRadius->.3],Black,Table[Text[Style[i[[2]],26,Italic],{0.8 Cos[Pi/4+i[[1]] Pi/2],0.8 Sin[Pi/4+i[[1]] Pi/2]}],{i,{{1,"Am I Normal?"},{2,"Can I spot\na cheat?"},{3,"How do I\ndesign controls\nfor my game?"},{4,"Where was the\nshot fired from?"}}}]},ImageSize-> size]]},BaseStyle-> FontSize-> 20],TextAlignment-> Center]]

The key difference:

Print@Style["Always work in a context.\nBase the lesson around a problem, not a mechanic.","Section",28,TextAlignment-> Center]

1. Pose a challenge.

Can I spot a cheat?

So - what do we offer that’s different to traditional maths?

i) Dynamic classroom activities:

ii) Real time simulations:

iii) Interactive illustrations:

2. Explore assumptions.

Maths makes assumptions:

Continuous vs. discrete

Normality

Spherical chickens in a vacuum.

When do we approach the why?
Maths should introduce:

Why assumptions are made.

How they effect calculations.

Why they might fail.

What happens if they do.

2. Explore assumptions.

Do I know what I don’t know?

Let’s look at how we highlight assumptions:

Focus on contexts students know:

And explore how the assumption can change:

Button["Drawing pins vs Coins",SystemOpen[FileNameJoin[{NotebookDirectory[],"Assumptions.nb"}]]]

3. Teach abstraction.

Basic maths education starts with real world scenarios. We teach:

addition through apples:

fractions with cake:

Half the challenge of applied Mathematics is deciding the right question to ask.
Key aims of abstraction:

Find pertinent facts

Present data

Simplify situation

3. Teach abstraction.

Why do we have two eyes?

In CBM we can break abstraction down into discrete steps

Experience the problem:

Button["The human blind spot",SystemOpen[FileNameJoin[{NotebookDirectory[],"BlindSpot.nb"}]]]

Abstract it to a model:

Button["Abstraction",SystemOpen[FileNameJoin[{NotebookDirectory[],"Abstract.nb"}]]]

And use the model to calculate:

Button["Model",SystemOpen[FileNameJoin[{NotebookDirectory[],"Model.nb"}]]]

4. Encourage discussion

Applied maths is not a passive topic:

What assumptions have been made.

Brainstorm other approaches, or similar cases.

Students need confidence in critical analysis:

“If you thought that science was certain - well, that is just an error on your part.” 
R. Feynman

Balancing resource requirement against outcomes.

4. Encourage discussion

Where was the shot fired from?

Problems don’t always have a perfect solution - student’s must be critical about what they are doing:

Be it because they are overloaded with information:

They have to assess if the models produced are valid:

And by debating the error involved:

In conclusion:

In each lesson:

Pose a challenge.

Discuss assumptions.

Abstract the situation.

Critique.

Related talks:

Creating Cross-Platform Applications with the Wolfram Language: CBM Example
	
	 Gerli J. Thursday, 2pm.

Thank you for listening - any questions?