350 likes | 528 Views
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.”
E N D
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
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?”
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.
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
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
Why Python? • Easy to learn • Powerful • “Batteries Included” • Strong following
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
Possible Curriculum Topics • Graphics programming • Designing pictures in an XY-coordinate plane • Statistics • Calculations are inherently loop, list, and function driven. • Scientific research • Bioinformatics
Examples • Graphics programming • Functions • Scalable graphic functions • Interactive stories • Algorithmic art • Software maintenance • Scientific research in bioinformatics
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
Picture 1: Vroom!!! 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 2: Stop 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 3: We Have Visitors 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')
Stage, by Justin Fassnacht Storybook, by Andrew Demiglio Wizard, by Nick Myers Carrot, by Ryan Snyder Platypus, by Sarah Jurkovich
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
Ghost Town, by Justin Fassnacht Kitchen, by Menelik Zafir Spaceship Dashboard, by Andrew DeMiglio Desert, by Joe Hurst
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”)
PZ-30 robot, by Andrew DeMiglio Spaceship, by Andrew DeMiglio Boat, by Nick Myers Space Shuttle, by Nick Myers
Olympic Rings, by Joe Hurst Starburst, by James Dziemianzuk Windows, by Valarie D’Antonio
Interactive Stories • User decides direction of story • Collaboration: include pictures from library
Algorithmic Art • Excellent demonstration of for-loops Boomerang, by Ryan Snyder Spiral, by Ryan Snyder
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
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: 228 Enter search pattern: AAAAA Occurrences: 1028 Enter search pattern: CTGTTT Occurrences: 86 Enter search pattern: AAAAAA Occurrences: 328 Enter search pattern: ACTTTTT Occurrences: 72 Enter search pattern: TTCTTCC Occurrences: 26 Enter search pattern: TTATTATT Occurrences: 24
Actual DNA C A G T
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.
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.
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.