# Coding Makes Things Better

I don’t really know what else to title this post, but I’m about to share a few adventures I’ve had in improving my programming skills to make some problem-generators that’ll make my life easier. This is less of a reflective post and more of a “look at this!” post.

Our Algebra I curriculum starts the year by introducing students to a plethora of terminology to describe functions – linear, quadratic, increasing, maximum, continuous, discrete, etc. The curriculum then exposes students to a variety of graphs and asks them to classify them based on their properties. It then takes it a step further by developing stories to fit each type of graph – what type of story leads to a linear versus a exponential graph; what kinds of stories have maximums versus minimums; etc.

When I taught Algebra I, I found myself wanting to quiz students strictly on the vocabulary, which meant I needed to generate lots of graphs with lots of different properties and be able to categorize these graphs so I could discern correct vs incorrect answers.

This was my first attempt, made about a year ago: http://schneiderisawesome.com/desmos/oldGraphProperties/classifyinggraphs.html. It gets the job done, but its kinda hacked together. Drawing a continuous line by stringing together discrete points was fun. testing the checkboxes is done very literally. You can also click on the graph and a new window will pop up with the graph converted to an image, which let me copy and paste those into worksheets like this one.It worked okay.

Since then, I’ve increased my code-fu. I’ve learned Bootstrap, a bit of jQuery, and some Angular basics. Angular in particular had the annoying property of, initially, being more work and causing more confusion rather than saving time and effort. Only recently has it reached the point where I feel like I’m truly harnessing its power for time and efficiency.

But, the most exciting new thing I’ve started to play with is the Demos API. Having the power of the Desmos calculator at my fingertips was an incredible motivator to see what else I could come up with.

With Desmos as the catalyst, I updated my graph categorization program: http://schneiderisawesome.com/desmos/graphProperties/graphProperties.html. It’s way better and has more functionality, especially now that I don’t have to worry about the graphing part. I also really love how easy it is to add a ‘test’ button for people to test their predictions before submitting, since all I need to do from a programming standpoint is plug their expression into the Desmos calculator. I wish discrete graphs were easier to make and I wish there was a way to customize point size & line thickness – but other than that, things look gooood. So, now that’s out there for me to use with my students.

That was actually the second program I made with the Desmos calculator – the first one was focused solely on linear equations and was more of an experiment with Angular and Bootstrap rather than Desmos: http://schneiderisawesome.com/desmos/linearEqn/linearEqn.html. I wanted a way for students to test their abilities to write linear equations given two points, which is basically all that this program does.

So – now those programs are out in the open. They were fun to make and hopefully they’re somewhat useful.

Nice. Love seeing your tinkerings here, Mathy.

Hey, Dan! Love your stuff. Now that it’s summer,I have time to play and prepare for next year when all my students will have chromebooks. I’m sure you’ll be a great help for me and my colleagues! The last link that you shared tells me to “try again” on each of the equations that I wrote even though the equation I wrote goes through the points. I’ll be back…

Hey Rosey – it’s probably something silly and small like putting spaces between numerals and operations (or maybe not putting spaces between numerals and operations). The program may accept “y = 2x + 5”, but it may not accept “y=2x+5” (or vice versa)

This issue is actually at the heart of why I do programming as a hobby rather than anything more serious – it takes me an appropriate amount of time for me to make programs that work for me and my purposes, but I’m not really interested in trying to make it work for every possible situation and have it become a fully robust app. Some other ed-tech companies can do all of that other work.

So – maybe it’ll work if you add spaces. Or play around with how your input is entered. And if it still doesn’t work, maybe someone will come along and build on this so it works a little better.