Saturday, October 26, 2013

TI-83 Programming Project for Coordinate Geometry

At TMC13 I got the courage to present during the My Favorites session on Sunday morning.  For the first Explore the MTBoS Challenge (a bit late, I know) I am going to write about the project that I presented then: a computer programming challenge using the TI calculator.  [Please note: I did not create this totally on my own, Hollis Easter @adkpiper helped quite a bit.]

Full disclosure: I am not a programmer.  I know very little about computer programming.  That does not stop me from assigning this project.  (I would like to learn more about programming at some point, but it hasn't risen high enough on my lists yet.)

The setting: Ninth grade math.  My school teaches an integrated curriculum, so the course includes units from traditional Algebra 1, Geometry and a bit of Algebra 2.  My units are as follows--
• Linear models (basic algebra review, linear models from points/slopes, linear regression, systems of linear equations, systems of inequalities)
• Coordinate geometry proof (Pythagorean, using distance, midpoint and slope to prove types of triangles and quads, transformations)
• Trigonometry (intro to basic right triangle trig, special triangles, simplifying rads, intro to radians)
• Geometry (congruency, similarity, parallel line conjectures, traditional proof)
• Exponential models (exponent rules, modeling using changing rates, comparison to linear)

The coordinate geometry unit is where this project falls.  I love starting geometry on the coordinate plane.  We have spent a great deal of time graphing in the first unit, and for the most part students are comfortable graphing lines.  By starting geometry as "what happens when several of these lines intersect?" makes a really nice transition.  We look at what we need to know in order to determine whether or not lines are perpendicular.  We do a bunch of proofs of the Pythagorean Theorem.  We extend to distance and midpoint formulas.  We draw tons of quadrilaterals and categorize them based on first the characteristics of their sides and then the qualities of their diagonals.

In essence, students know how to classify quadrilaterals.  In comes the project!  On the first day, I really hype up the idea of programming.  I ask students to name the top careers in terms of job satisfaction.  A lot of kids come up with doctors, lawyers and other jobs that their parents have.  Sometimes one or two will mention something about software or programming.  I then share the stats about programmers being some of the most satisfied employees. Many students are not exposed to much in the way of computer programming in their high school years, so this project gives kids a taste and helps them to know if it's a field that they may want to explore in the future.

I hand out a sheet that walks students through the parts of an algorithm and gives explicit directions for what to enter into the calculator [from the Core Plus curriculum].  I go very slowly together with the whole class.  If students want to work ahead, or start writing other programs, that's fine, but if they have questions, they have to wait until I get to that point.  So, we all have success with entering a program into the calculator.

Next I ask them if they can think about how to write code for the midpoint and slope equations.  Most of them are quick to figure that out and write a couple more small programs.  Then I hand out the project requirements.  Assignment: Write a program that when four coordinate pairs are input, the calculator outputs the correct quadrilateral classification.  In addition to writing the program, they need to include code notes for each line and a justification of why their process is the best method.  They also need to hand in three examples worked by hand that agree with the calculator outputs.

I don't do much more in class.  For the next couple of weeks I don't assign much other homework...we do most of our practice in class.  I'm available outside of class for help with debugging, but I rarely know how.  I mostly just send students to YouTube to watch videos or give them CS texts that I have around.  I suggest If, then, else loops or ask them about syntax, but I don't necessarily know how to fix the issues, and I think that's good for them to see. 

Another key to this project working so well is that I give two options.  Students can do the programming project, or they can write a grant proposal to the Mathematical Association of America in support of an exhibit on Escher.  For that project they need to research his work (we have also just finished studying geometric transformations), create their own art piece, write a compelling grant proposal, research some other artists who use transformations, and explain it all in terms of mathematical language.  So, it's also a rigorous project, and appeals to most students who don't seem inspired by the programming. 

There is quite a bit of lore about this project at my school at this point.  We are very small (80 students in grades 7-12).  This is my fourth year teaching Math 9, so all of the upper classmen at my school have been through this unit. So, students are also welcome to ask older students to help with the debugging.


  1. Brilliant! I just tried doing some programming with my Algebra 1 kids as an option for one of our projects (solving linear inequalities). I pretty much had to hold their hands the entire time. I think if I was to do it over again, I'd give them a bit more time and some printed directions similar to yours above. Thanks for sharing.

    1. So glad you found it helpful! What did you do with programing for solving linear inequalities? 1-D or 2-D? Single or systems?

  2. I love technology, and I am pretty good with it, but I think this would have blown my mind (in a good way) as a student. We don't work with the TI-83 in the grades that I work with, but I remember using them as a student in high school, and in my grad school classes. I think that this activity is challenging but so much fun, especially for kiddos these days who are so into technology and it comes to them as a second nature!

  3. Thanks for the comment! Yes, the students seem to really eat it up. It's right at their level. Let me know if you end up trying it out.

  4. Wow - I love this project.

    I used to teach Computer Science, and I would get them to do this type of assignment in there. For example, the use inputs equations of two lines ( or values for m and b) and the computer outputs the intersection point (if any).

    But I never thought of getting my MATH students to write PROGRAMS ! I love it.

    1. Thanks for the comment! That's a great program to write. I have very little Computer Science experience, so I'm doing it much off the cuff.