Upload
gagan
View
19
Download
0
Tags:
Embed Size (px)
DESCRIPTION
Using the comprehension of Python programming as a method of teaching middle-school Mathematics. Definition and Proposal. Dean L. Zeller Dr. Paul Wang, advisor Department of Computer Science Kent State University. Low Student Motivation in Math. “Math is boring.” - PowerPoint PPT Presentation
Citation preview
Using the comprehension of Python programming as a method of teaching
middle-school Mathematics
Definition and Proposal
Dean L. ZellerDr. Paul Wang, advisorDepartment of Computer ScienceKent State University
)radiusYsincenterY,radiusXcoscenterX(),( subtracttoradius
offractionoffset
verticaladdtoradiusoffraction
offsethorizontal
yx
centerX
centerY
(x,y)
x = centerX + cos()radiusX
y = centerY + sin()radiusY radiusX
radiusY
Slide 2
Low Student Motivation in Math
• “Math is boring.”– Some elements of mathematics are not very exciting.
• “I hate math.”– Students feel antiphony towards mathematics.
• “Math is too hard.”– Students get frustrated at the complexity of mathematics.
• “When will I ever use this?”– Students do not see a practical application of the
mathematics material.– Honestly, what is the immediate purpose of factoring (x2-1)
into (x+1)(x–1)?
• “Where is the fun in math?”
Slide 3
Yet students LOVE computers…
• “This is fun!”– Students enjoy using a computer for any purpose.
• “This is easy!”– If taught correctly, the basics of programming and user
interfaces are quite easy to learn.
• “I love computers.”– Students are naturally drawn to computers and
programming.
• “This is neat!”– Students see an immediate application of what they are
learning.
Slide 4
Roadblocks to a CS course
• Difficult for schools to create a dedicated computer science course
• Scheduling– Hiring a teacher certified in computer science– Fitting course into student schedules– Designing a curriculum
• Lack of administrator motivation– Computer science is not covered on any school
assessment exam
Slide 5
Mathematics curriculum incorporating programming
• Rather than create a separate computer science class, use programming as a delivery method for mathematics instruction.
• No additional scheduling required – students are already taking mathematics.
• Requirements– Computer lab– Teacher training– Software installations and maintenance– Align with Ohio Department of Education
Slide 6
Why Python?
• Easy to learn
• Powerful
• “Batteries Included”
• Strong following
Slide 7
Other Language Choices
• Scalable Vector Graphics (SVG)– Superior graphics capabilities– Could be used in an art class
• Mathematics Education Markup Language (MeML)– Students create complex graphs and charts– Target towards accelerated or advanced classes
Slide 8
Possible Curriculum Topics
• Graphics programming– Designing pictures in an XY-coordinate plane
• Statistics– Calculations are inherently loop, list, and
function driven.
• Scientific research– Bioinformatics
Slide 9
Examples
• Graphics programming
• Functions
• Scalable graphic functions
• Interactive stories
• Algorithmic art
• Software maintenance
• Scientific research in bioinformatics
Slide 10
Graphics programming• Demonstrate the simple nature of creating pictures
in an XY-coordinate system• Hard-coded coordinate values• Inverted Y-axis is not a problem• Trace existing graphics programs
– Students given code, must produce correct output by hand on graph paper
– Students then check their work by entering the code into the IDLE programming environment
• Allow student to be creative in the learning of mathematics by creating their own pictures
Slide 11
c.create_polygon(240,180, 270,180, 280,140, 220,140, 160,100, 70,100, 50,140, 50,180, 60,180, 240,180, fill="light blue", outline="black")c.create_oval( 60,160, 100,200, fill="light grey", width=5)c.create_oval(200,160, 240,200, fill="light grey", width=5)c.create_polygon(60,140, 80,140, 80,110, 60,140, fill="white", outline="black")c.create_rectangle(90,110, 120,140, fill="white")c.create_polygon(130,110, 130,140, 200,140, 160,110, 130,110, fill="white", outline="black")c.create_line(10,110, 50,110)c.create_line(0,130, 40,130)c.create_line(0,150, 40,150)c.create_line(0,170, 40,170)
Picture 1: Vroom!!!
Slide 12
c.create_rectangle(0,0, 250,400, fill='black')c.create_rectangle(140,30, 160,50, outline='grey', fill='grey', width=2)c.create_rectangle(140,250, 160,400, outline='grey', fill='grey', width=2)c.create_polygon(110,250, 190,250, 250,190, 250,110, 190,50, 110,50, 50,110, 50,190, 110,250, fill='red', outline='white', width=3)c.create_oval(148, 58, 152,62, fill='black')c.create_oval(148,238, 152,242, fill='black')c.create_line(100,130, 100,120, 70,120, 70,150, 100,150, 100,180, 70,180, 70,170, width=5, fill='white')c.create_line(110,120, 150,120, width=5, fill='white')c.create_line(130,120, 130,180, width=5, fill='white')c.create_rectangle(160,120, 190,180, width=5, outline='white')c.create_line(200,180, 200,120, 230,120, 230,150, 200,150, width=5, fill='white')
Picture 2: Stop
Slide 13
c.create_oval(50,100, 250,300, fill='green')c.create_oval(130,130, 170,170, fill='red')c.create_oval(147,147, 153,154, fill='black')c.create_line(90,200, 120,240, 180,240, 210,200, width=2)c.create_polygon(130,240, 140,240, 135,250, fill='black')c.create_polygon(160,240, 170,240, 165,250, fill='black')c.create_line(110,130, 80,50, 110,50, 120,70, 130,30, 140,70, 150,30, 160,70, 170,30, 180,70, 190,50, 220,50, 190,130, fill='orange', width=3)c.create_oval(77,47, 83,53, fill='black')c.create_oval(217,47, 223,53, fill='black')
Picture 3: We Have Visitors
Slide 14
Examples of Student Work
Slide 15
Stage, by Justin FassnachtStorybook, by Andrew DemiglioWizard, by Nick MyersCarrot, by Ryan SnyderPlatypus, by Sarah Jurkovich
Slide 16
Scenery Functions
• Introduce concept of functions early
• Similar to Objects-First pedagogical design, but not quite as complex
• Create scenery for illustrated story
• Still hard-coded coordinate values
Slide 17
Ghost Town, by Justin FassnachtKitchen, by Menelik ZafirSpaceship Dashboard, by Andrew DeMiglioDesert, by Joe Hurst
Slide 18
Scalable graphic functions
• Create grid of guides for scalability
• Can solve inverted Y-axis
• Introduce concepts of software engineering– Libraries and reusable code– Consistent function design– Documentation– Collaboration (without “group projects”)
Slide 19
PZ-30 robot, by Andrew DeMiglioSpaceship, by Andrew DeMiglioBoat, by Nick MyersSpace Shuttle, by Nick Myers
Slide 20
0
0
adjacent
oppo
site
hypotenuse
(x,y)
x = cos()
y = sin()
radius = 1
Trigonometry: Points on a Circle
hypotenuse
oppositesin
hypotenuse
adjacentcos
)radiusYsincenterY,radiusXcoscenterX(),( subtracttoradius
offractionoffset
verticaladdtoradiusoffraction
offsethorizontal
yx
centerX
centerY
(x,y)
x = centerX + cos()radiusX
y = centerY + sin()radiusY radiusX
radiusY
Slide 21
Application of Points on a Circle
(Polar Coordinates)
Slide 22
Olympic Rings, by Joe HurstStarburst, by James DziemianzukWindows, by Valarie D’Antonio
Slide 23
Interactive Stories• User decides direction of story
• Collaboration: include pictures from library
Slide 24
Slide 25
Algorithmic Art
• Excellent demonstration of for-loops
Boomerang, by Ryan SnyderSpiral, by Ryan Snyder
Slide 26
Line Art
Slide 27
Mazes
• Modify large program written by instructor
• Document changes to code
• Implement own features
• Future work: use event-driven programming to give a game-like feel to program
Slide 28
Slide 29
Bioinformatics Research• DNA Analysis
• Pattern matching
+--------------------------------------------------------------------+| DNA Statistics Report |+--------------------------------------------------------------------+ A: 62553 C: 42531 G: 34444 T: 65667 AT: 20100 CG: 5999 CAT: 4719 ACT: 3085
Enter search pattern: ATCGT Occurrences: 228Enter search pattern: AAAAA Occurrences: 1028Enter search pattern: CTGTTT Occurrences: 86Enter search pattern: AAAAAA Occurrences: 328Enter search pattern: ACTTTTT Occurrences: 72Enter search pattern: TTCTTCC Occurrences: 26Enter search pattern: TTATTATT Occurrences: 24
Slide 30
DNA Visualization A C
G T
+ A A C
G T
Initial Setup A C
G T
A + T
A C
G T
AT + A A C
G T
ATA + G A C
G T
ATAG + C
Slide 31
Actual DNAA C
GT
Slide 32
Research Study Proposal• Two equal-level middle-school mathematics classes
– Treatment group: uses programming as a method of learning mathematics
– Control group: uses traditional methods of learning mathematics
• Pre/Post test research design– Hypothesis: students in treatment group will improve in
mathematical ability more than those in the control group.
• Post survey on attitudes towards mathematics.– Hypothesis: students in treatment group will have more
favorable attitudes towards mathematics than those in the control group.
Slide 33
Research design• Classes will meet every day with assigned
classroom teacher.• I will teach lessons in programming mathematics
three days per week for fifteen weeks.• I will assign and grade programming projects.• Regular teacher remains in classroom during
programming instruction.• Pre-test given in week 1 to determine baseline.• Post-test given in week 15 to determine
improvement.• 22 repeated measures design.
Slide 34
Pilot studies
• This pedagogical philosophy has been tested on three college-level computer science classes.– CS10061 (Spring 2007, 17 students)– CS10051 (Fall 2007, 24 students)– CS10061 (Spring 2008, 12 students)
• Hand-drawn assignments tested on middle- and high-school mathematics classes at Kansas City Missouri School District.