Code

DoMatMul[]:=Manipulate[
If[col>Bcols,col=1;col=col];
If[row>Arows,row=1;row=row];

Brows=Acols;
matA=Take[A1,{1,Arows},{1,Acols}];
matB=Take[B1,{1,Brows},{1,Bcols}];

rowclr=Lighter[Green,0.7]; colclr=Lighter[Blue,0.7];

Pane[
Text@Column[{

Item[Row[{Column[{Text@Style["A",Italic,22],MatrixForm[{Style[Grid[matA,Alignment->{Right,Bottom},Spacings->{1,0.5},Background->{None,row->rowclr}],22]}]},Alignment->Center],
Column[{Text@Style["B",Italic,22],
MatrixForm[{Style[Grid[matB,Alignment->{Right,Bottom},Spacings->{1,0.5},Background->{col->colclr,None}],22]}]},Alignment->Center]}],ItemSize->{Automatic,7},Alignment->Center],

Item[Row[{Text@Style["AB = ",Italic,22],MatrixForm[{Style[Grid[matA.matB,Alignment->{Right,Bottom},Spacings->{1,0.5},Background->{None,None,{{row,col}->Blend[{rowclr,colclr}]}},Frame->{col->colclr,row->rowclr}],22]}]}],ItemSize->{Automatic,10},Alignment->Center],

Style[Column[{
Grid[{Prepend[Append[Riffle[Riffle[matA[[row]],Transpose[matB][[col]]],If[Acols==1,")(",{")(",") + ("}]],")"],"("]},Spacings->0,ItemSize->{Riffle[Table[Automatic,{Acols*2+1}],1.5],1.2},Alignment->Center,Background->{Prepend[Append[Riffle[Flatten[Table[{rowclr,colclr},{Acols}]],None],None],None]}]," = ",
Grid[{Riffle[Map[Apply[Times,#]&,Partition[Riffle[matA[[row]],Transpose[matB][[col]]],2]],"   +   "]}]," = ",
Grid[{{matA[[row]].Transpose[matB][[col]]}},ItemSize->{2.5,1.2},Background->Blend[{rowclr,colclr}]]
},Alignment->Center],22]

},Alignment->Center,Spacings->1,Frame->{{},True},FrameStyle->Lighter[Gray,0.5]
],
ImageSize->{400,500},
Alignment->{Center,Center}],
{{Arows,4,Style["A's rows",14]},Range[1,5],ControlType->PopupMenu},
"",
{{Acols,3,Column[{Style["A's columns", 14],     Style["B's rows",14]}]},Range[1,5],ControlType->PopupMenu},
"",
{{Bcols,4,Style["B's columns",14]},Range[1,5],ControlType->PopupMenu},
Button[Style["new matrices",14],A1=Table[RandomInteger[{-5,5}],{5},{5}];
B1=Table[RandomInteger[{-5,5}],{5},{5}];],
{{row,1,Style["row",14]},1,Arows,1,ImageSize->Tiny},
{{col,1,Style["column",14]},1,Bcols,1,ImageSize->Tiny},
{{A1,Table[RandomInteger[{-5,5}],{5},{5}]},ControlType->None},
{{B1,Table[RandomInteger[{-5,5}],{5},{5}]},ControlType->None},
ControlPlacement->Left,
TrackedSymbols:>Manipulate,
AutorunSequencing->{1,2,3,4,5}];

DoBottle[]:=Manipulate[
Module[{x,tmax,tmin,z0,z},
{x[a_],amin,amax,tmax[a_],tmin[a_],plotrange}=
Which[type==1,
{a Cos[#1]&,0.3,2,ArcSin[Min[1,(1/a)]],-ArcSin[Min[1,(1/a)]],{{0,2},{-2,2}}},type==2,
{a Cosh[#1]&,0.25,1.6,ArcSinh[(1/a)],-ArcSinh[(1/a)],{{0,2.},{-2,2}}},
type==3,
{Exp[-#1]&,0,0,4,0,{{0,1.1},{0,2.5}}},
type==4,
{a Sinh[-#1]&,0.1,0.9,0,-ArcCosh[(1/a)],{{0,1.1},{-2.8,0}}}];
If[a<amin,a=amin];
If[a>amax,a=amax];
z0=y/.First[NDSolve[{Derivative[1][y][t]==Sqrt[1-Derivative[1][x[a]][t]^2],y[0]==0},y,{t,tmin[a],tmax[a]},MaxSteps->∞]];
z[t_]:=Re[z0[t]];Grid[{{ParametricPlot[{x[a][t],z[t]},{t,tmin[a],tmax[a]},PlotRange->plotrange,PlotRangeClipping->False,ImageSize->250,BaseStyle->16,PlotStyle->Thick,Epilog->{PointSize[Large],Point[{{x[a][tmin[a]],z[tmin[a]]},{x[a][tmax[a]],z[tmax[a]]}}]}],Spacer[20],RevolutionPlot3D[{x[a][t],z[t]},{t,tmin[a],tmax[a]},PerformanceGoal->"Quality",Boxed->False,Axes->False,ImageSize->{500,360},PlotStyle->FaceForm[{Lighter@Blue,Specularity[White,50]},{Orange,Specularity[White,50]}],Lighting->"Neutral",Mesh->None,PlotRange->All,ViewPoint->{1,-3,1},BoxRatios->Automatic]}}]],
{{type,1,Style["surface type",24]},{
1->"positive curvature",
2->"negative curvature, first type",3->"negative curvature, second type (pseudosphere)",4->"negative curvature, third type"},ControlType->PopupMenu},
PaneSelector[{
True->Control[{{a,2,Style["a",12]},amin,amax}]},
Dynamic[type≠3]],
{{amin,.3},ControlType->None},
{{amax,2},ControlType->None},
{{plotrange,{{0,2},{-2,2}}},ControlType->None},
TrackedSymbols:>{type,a},AutorunSequencing->{1},SynchronousUpdating->True]

Developing an Online Linear Algebra Course using Mathematica

Sarah House       Advisor: John McGee 

Project sponsored by Radford University’s Summer Research Fellowship grants.

Technology-Assisted Learning

▸ Correct Cognitive Models are self-formed in Properly Constructed Learning Environments

▸ Mastery Learning and Virtual Manipulatives presented in a pedagogical context

▸ References: Khan Academy, Commercial Learning Systems

Project Motivation

▸ The need for a distance-learning tool to assist comprehension of higher-level mathematics

DoBottle[]

▸ The need for a distance-learning tool that can:
	▫  provide 3D dynamic content
	▫  intelligently randomize practice questions
	▫  convey formative feedback to refine learning

▸ Selected Linear Algebra as a mathematic topic to trial

Objectives

▸ Proof of Concept: Higher-level course in mathematics can be successfully created using Mathematica

▸ Create formative feedback and questions which identify and correct student misunderstandings

▸ Provide video lessons containing dynamic content as a visual and audio learning tool

▸ Form a mastery learning scoring system

▸ Use Mathematica’s modeling and manipulative capabilities to stress conceptual understanding
   rather than a focus on pure computation

DoMatMul[]

Sample Practice, Video, & Test Questions

"Run Academy"

Code

btn=Button[Style["Run Academy",24],NotebookOpen[ToFileName[NotebookDirectory[],"CognitionAcademy15Sept2014.nb"]]]

Functions & Code

▸ Create Dialog - With associated interface elements

▸ AngularGauge  -  Visualization of progress in a given lesson

Conclusions

▸ Mathematica user interface elements, while not yet perfect,  
    are effective for delivering online Virtual Manipulative content.

▸ The importance and difficulty of creating formative feedback.

▸ Learning programming software (Mathematica) and upper-level mathematics to support
   of my Physics & Mathematics education for graduate school.

Future Outlook

▸ Set up in a real Linear Algebra classroom course to test efficacy.

▸ We envision computer-generated mathematical models becoming
    a more common tool in upper-level mathematics education

▸ We believe that emphasis of mastery learning in conjunction
   with better technology will increase student success in conceptual
   and computational understanding

References & Thanks

▸ Let’s Use Video to Reinvent Education. Salman Khan. TED, Mar. 2011. 
	Web. 12 Aug. 2014

▸ Wolfram Technology

▸ Bransford, John. How People Learn: Brain, Mind, Experience, and School. 
   	Washington, D.C.: National Academy, 2000. Print.

▸ Wolfram, Conrad. “Teaching Kids Real Math With Computers.” 
	TEDGlobal 2010. July 2010. 
	Session 10: Who’s the Teacher?

▸ Funded by: Radford University - Office of Undergraduate Research, Summer Undergraduate Research Fellowship