34
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 ) radiusY sin centerY , radiusX cos centerX ( ) , ( subtract to radius of fraction offset vertical add to radius of fraction offset horizontal y x centerX centerY (x,y) x = centerX + cos( ) radiusX y = centerY + sin( ) radiusY radiusX radiusY

Using the comprehension of Python programming as a method of teaching middle-school Mathematics

  • Upload
    gagan

  • View
    19

  • Download
    0

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

Page 1: Using the comprehension of Python programming as a method of teaching middle-school Mathematics

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

Page 2: Using the comprehension of Python programming as a method of teaching middle-school Mathematics

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?”

Page 3: Using the comprehension of Python programming as a method of teaching middle-school Mathematics

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.

Page 4: Using the comprehension of Python programming as a method of teaching middle-school Mathematics

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

Page 5: Using the comprehension of Python programming as a method of teaching middle-school Mathematics

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

Page 6: Using the comprehension of Python programming as a method of teaching middle-school Mathematics

Slide 6

Why Python?

• Easy to learn

• Powerful

• “Batteries Included”

• Strong following

Page 7: Using the comprehension of Python programming as a method of teaching middle-school Mathematics

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

Page 8: Using the comprehension of Python programming as a method of teaching middle-school Mathematics

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

Page 9: Using the comprehension of Python programming as a method of teaching middle-school Mathematics

Slide 9

Examples

• Graphics programming

• Functions

• Scalable graphic functions

• Interactive stories

• Algorithmic art

• Software maintenance

• Scientific research in bioinformatics

Page 10: Using the comprehension of Python programming as a method of teaching middle-school Mathematics

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

Page 11: Using the comprehension of Python programming as a method of teaching middle-school Mathematics

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!!!

Page 12: Using the comprehension of Python programming as a method of teaching middle-school Mathematics

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

Page 13: Using the comprehension of Python programming as a method of teaching middle-school Mathematics

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

Page 14: Using the comprehension of Python programming as a method of teaching middle-school Mathematics

Slide 14

Examples of Student Work

Page 15: Using the comprehension of Python programming as a method of teaching middle-school Mathematics

Slide 15

Stage, by Justin FassnachtStorybook, by Andrew DemiglioWizard, by Nick MyersCarrot, by Ryan SnyderPlatypus, by Sarah Jurkovich

Page 16: Using the comprehension of Python programming as a method of teaching middle-school Mathematics

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

Page 17: Using the comprehension of Python programming as a method of teaching middle-school Mathematics

Slide 17

Ghost Town, by Justin FassnachtKitchen, by Menelik ZafirSpaceship Dashboard, by Andrew DeMiglioDesert, by Joe Hurst

Page 18: Using the comprehension of Python programming as a method of teaching middle-school Mathematics

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”)

Page 19: Using the comprehension of Python programming as a method of teaching middle-school Mathematics

Slide 19

PZ-30 robot, by Andrew DeMiglioSpaceship, by Andrew DeMiglioBoat, by Nick MyersSpace Shuttle, by Nick Myers

Page 20: Using the comprehension of Python programming as a method of teaching middle-school Mathematics

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

Page 21: Using the comprehension of Python programming as a method of teaching middle-school Mathematics

Slide 21

Application of Points on a Circle

(Polar Coordinates)

Page 22: Using the comprehension of Python programming as a method of teaching middle-school Mathematics

Slide 22

Olympic Rings, by Joe HurstStarburst, by James DziemianzukWindows, by Valarie D’Antonio

Page 23: Using the comprehension of Python programming as a method of teaching middle-school Mathematics

Slide 23

Interactive Stories• User decides direction of story

• Collaboration: include pictures from library

Page 24: Using the comprehension of Python programming as a method of teaching middle-school Mathematics

Slide 24

Page 25: Using the comprehension of Python programming as a method of teaching middle-school Mathematics

Slide 25

Algorithmic Art

• Excellent demonstration of for-loops

Boomerang, by Ryan SnyderSpiral, by Ryan Snyder

Page 26: Using the comprehension of Python programming as a method of teaching middle-school Mathematics

Slide 26

Line Art

Page 27: Using the comprehension of Python programming as a method of teaching middle-school Mathematics

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

Page 28: Using the comprehension of Python programming as a method of teaching middle-school Mathematics

Slide 28

Page 29: Using the comprehension of Python programming as a method of teaching middle-school Mathematics

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

Page 30: Using the comprehension of Python programming as a method of teaching middle-school Mathematics

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

Page 31: Using the comprehension of Python programming as a method of teaching middle-school Mathematics

Slide 31

Actual DNAA C

GT

Page 32: Using the comprehension of Python programming as a method of teaching middle-school Mathematics

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.

Page 33: Using the comprehension of Python programming as a method of teaching middle-school Mathematics

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.

Page 34: Using the comprehension of Python programming as a method of teaching middle-school Mathematics

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.