3D printing with Programming

3D printed Binary coins. Image courtesy of Steve Dickie.

If you’ve ever taught a computer science course you know that at some point all the coding and debugging can really feel like a long tedious slog. In the last two years I’ve inserted 3D printing to break things up a bit. Students use OpenSCAD to create their 3D models. OpenSCAD is a non-traditional CAD application. Users write a program that generates a 3D shape that can then be exported in a proper format for printing.

I’ve used this activity near the end of first semester. Students already know a fair bit of programming by this point. I simply outline the task and then point them at the OpenSCAD Language reference and some associated tutorials. After a class or two, they’ve felt it out enough to get their bearings and then they get started. OpenSCAD is approachable enough, that it could even be used with students with no programming experience or maybe as an activity following the Hour of Code.

Last year I had students design something to hold their phones. After printing thier phone holders students all realized there were problems with their designs, things that were not obvious before they were holding the physical objects. This was a great learning opportunity and gave us a chance to talk about rapid prototyping and iteration.

This year students designed Christmas tree ornaments. Ornament programs had to include variable declaration at the beginning so the ornament could be customized by simply changing a couple numbers and also had to include at least one loop.

Overall I really liked this assignment. Students use their programming knowledge in a new way with a new language. I personally deliver no instruction in OpenSCAD. Students must rely on the principles of computer science they’ve already learned, tutorials found on the net, and each other, just as they would in the real world. The tasks are simple enough that this has not been a problem.

I’m not sure which of the two tasks I like more. The phone holders had to be usable so there was an added engineering component to the assignment. However, the ornaments made it easier to require more core computer science ideas. Additionally it was fun sending high school students home with ornaments they made in school for their trees. They probably haven’t brought any home since third grade.


Steve Dickie (@falconphysics): Director of Instructional Technology at Divine Child High School in Dearborn, MI and MACUL Board Member.