Title: Microsoft Research Faculty Summit 2002
1Microsoft Research Faculty Summit 2002
- John Peterson
- Languages for Math and Science
- Education
- Yale University
2Overview
- Computers and K-12 education languages for the
classroom - A language for mathematical visualization
- Implementation details .NET to the rescue
- Bringing computer technology to educators
- Classroom experiences
- Conclusions and future research
3Computers in the Classroom
- Our Goal
- Use computers to improve the education of all
students in core areas of the high school
curriculum. - Exploit state of the art ideas developed in the
programming languages community. - Build languages that allow students to describe
and experience objects in a learning domain.
4Computer Languages in School
Should we use general purpose programming
languages to teach core high school subjects?
Oh Boy! Virtual methods!
l
Tell me about threads!
Can I use dynamic loading?
5No!
- We need languages that are appropriate to
specific learning domains - Languages must be accessible to everyone - not
just those interested in programming - But
- Languages should be expressive capable of
capturing large learning (for example, all of
high school mathematics)
6Languages and Learning
- What can languages do for students?
- Visualize abstract concepts in new ways
- Support creative exploration as well as problem
solving - Interact with the student for rapid exploration
of a learning space - Support new instructional styles that are based
on artistic principals as well as science - Provide a conceptual model of a domain
7Educational Domains
- Mathematics visualization of abstract objects
and concepts (functions, geometry) - Physics and science interactive experiments
(robotics), simulations - Arts graphics and music
- We are not interested in teaching computing
itself (Dr. Scheme addresses this)
8A Language for Mathematical Visualization
- We have used Pan, a language of functional
images, as the basis for an educational language - Pan was developed by Conal Elliott at MSR
- Other influences
- Mathematica
- Geometers Sketchpad
- Dr Scheme
9The Super Duper Graphing Calculator
- The most widely accepted computational tool in
high school math is the graphing calculator - Simple everyone can use and understand it
- General can be used throughout the curriculum
- Integrated used widely in texts activities
using graphing calculators are common in the
classroom - Our goal is to build on this foundation
- Visualizations beyond line on paper
- Easier to program
10Functional Programming
- Our work uses functional programming as a
semantic basis - Programs consist of definitions and expressions.
Definitions are unordered. - Definitions may be parameterized
- k 4
- f(x,y) xsine(y)-k
11Advanced Features
- Type inference to ensure correctness of the
program. Students do not see the type system -
it is implicit - Higher order functions allow functions to be
passed as parameters - Patterns provide a natural syntax for
destructuring values such as points - Interaction is supported by a special bind
operator, lt-, and simple widgets - A module system allows students and instructors
to build libraries
12FPs and Math
- Why FPs? The building blocks are in place early
in the math curriculum (as per one particular
curriculum ) - Variables and expressions elementary school
- Functions and parameters grade 7
- Function composition grade 8
- Abstraction using functions grade 8
13Semantic Simplicity
Students can understand the operation of the
system using only basic mathematics plus a few
extra concepts such as colors or name scoping.
14Writing a Program
- Instructor writes a viewing function
image lt- imageSelect(Choose an image) scale
lt- slider(Scale, 0.1, 10, 1) rotation lt-
slider(Rotation, 0, 360, 0) xOffset lt-
slider(X center, -200, 200, 0) yOffset lt-
slider(Y center, -200, 200, 0) warp(i)
scaleImage(scale, translateImage((xOff
set, yOffset), rotateImage(i))) lens(
f) f(warp(image))
15Writing a Program
- Definition of the user interface (sliders)
image lt- imageSelect(Choose an image) scale
lt- slider(Scale, 0.1, 10, 1) rotation lt-
slider(Rotation, 0, 360, 0) xOffset lt-
slider(X center, -200, 200, 0) yOffset lt-
slider(Y center, -200, 200, 0) warp(i)
scaleImage(scale, translateImage((xOff
set, yOffset), rotateImage(i))) lens(
f) f(warp(image))
16Writing a Program
image lt- imageSelect(File) scale lt-
slider(Scale, 0.1, 10, 1) rotation lt-
slider(Rotation, 0, 360, 0) xOffset lt-
slider(X center, -200, 200, 0) yOffset lt-
slider(Y center, -200, 200, 0) warp(i)
scaleImage(scale, translateImage((xOff
set, yOffset), rotateImage(i))) lens(
f) f(warp(image))
Image manipulation functions
17Using the Lens
- Student defines an object (here, an equation
mapping 2D points to 2D points) - Student creates a visualization
k lt- slider(k, 0, 10, 1) f(r _at_ theta) (r _at_
theta kr)
lens(f)
18The result
19Implementation Issues
C Program
Interactive Viewer
Student Program
Pan-based compiler
C JIT
Student interface
20.NET Aspects
- Use the JIT to get high performance
- Dynamic loading of compiled objects brings new
viewers into the environment - Portability is essential
- .NET libraries for user interface
- C used to write the IDE
- Software will be freely available to anyone with
.NET
21Educational Issues
- Building a better language wont get educators to
use it. There is much more to do beyond writing
software - Supporting materials
- Teacher training
- Formal assessment
- Learning strategies
22Partnerships
- This work is a collaboration with many other
groups - Educators curriculum development and integration
- Psychologists formal assessment
- Students the ultimate source of feedback
23Educational Agenda
- Study educational methodology how to make the
best use of this system - Provide supporting material (activities, lessons,
texts) and teacher training - Ensure that the system interacts effectively with
users, handling errors in a student appropriate
manner - Seek compatibility with existing educational
material
24Experiences
- We have tested this in the classroom with a
simple lesson that includes - Colors
- Images as functions
- Image lensing
- Coordinate Systems
- Patterns
25The Lensing Viewer
- Using the lens viewer, we can explore
- domain and range
- slopes
- continuity
- symmetry
- patterns
26Slide used in an 8th grade algebra presentation
A transformation f (x,y) (xx, yy) This
means when you look at (x,y) you see (xx,
yy) If you look at (2,2) youll see (4,4)
y
x
27Classroom Use
- The class received a 1 hour lecture with many
examples. - Students were asked to create new lens effects as
a homework assignment - Working individually with students, these effects
were turned into a gallery
28Hey Mom! Look What I Made in Math!
I See You by Aparna f(dist _at_ angle) (dist _at_
ramps(k,angle))
Mr. Ridgeway by Heidi f(dist _at_ angle)
(distk1 _at_ anglek2dist)
29Hey Mom! Look What I Made in Math!
Open Wide by Melodie f(dist _at_ angle)
(distdist/40 k1sine(dist/k2)_at_ angle)
Mr. Sids New Hair by his class f(dist _at_ angle)
(distk1 _at_ anglek2dist)
30Status
- Initial math visualization language should be
ready Fall 2002 - Current work is focused on usability handling
errors in an appropriate manner - Curriculum development and formal assessment will
start as the language becomes usable - Explore different learning styles
- Starting work on a music language
31Conclusions
- This research can make a significant impact on
the educational system - Computers can provide new learning experiences
that exploit creativity - Expose students to basic principals of
computation without the complexity of a full
programming language - We need to prove to educators that computer
languages are useful in teaching core curriculum
areas such as math and science
32Thanks to .
- Team members David Eisenstat, Emmanual Imbeah,
Jian Yuan, Paul Hudak - Microsoft Research
- Conal Elliott
- Pace Center
- Dr. Scheme
- Educators and students who have suffered through
initial trials