This was a project I did with my Computer Science Class this year. I gave my students the assignment to use OpenSCAD to create something to hold their cell phones. I've included some of the STLs and a couple SCAD files as examples of what they made.
One of my students uploaded her model to the Thingiverse. It is Thing: 1311276
Whether raft or supports are needed depend on the particular phone holder being printed. You will also probably need to change the orientation of the part for optimal printing.
Overview and Background
This was a project I did with my Computer Science Class this year. We did this the first week of our second semester. By this point my students had spent a lot of time developing skills in C programming. My main goal was to have students use the skills they'd developed in an entirely new context. This helped me see which skills they really had mastered.
The First Prompt:
"Use OpenSCAD to create a stand to hold your cell phone. Be sure to accomodate for your case if you have one. You can make it to hold it upright or sideways or even be able to work for both orientations. Really, make something that would work for you."
I provided no instruction in the use of OpenSCAD. I merely pointed them to the documentation page on the OpenSCAD website.
After printing their designs I had a second prompt:
The Second Prompt:
Change your OpenSCAD code to fix any problems you discovered with your design. Additionally you must add variables that would allow someone to easily change your model so that it can work for any cell phone (except maybe Mr. D-F's flip phone).
- Reinvigorate my students in their study of computer science
- Gauge my students mastery of computer science concepts already "mastered"
- Provide students with a challenge that was completely new and yet within their ability
- This was done with 11th and 12th graders in a Computer Science class
- This could be done with any students who already have some programming experience
Subjects: Include any relevant subjects i.e. science, math, etc.
- Computer Science
- Math - This is all about shapes and/or 3-D coordinate space
- Students will learn the basics of OpenSCAD
- Students will learn the basics of Parametric Design
Computational Thinking Practices
- Connecting Computing
- Creating Computational Artifacts
NGSS Disciplinary Core Ideas - Engineering, Technology, and Application of Science
- ETS1.A: Defining and Delimiting an Engineering Problem
- ETS1.B: Developing Possible Solutions
- ETS1.C: Optimizing the Design Solution
Lesson Plan and Activity
- Introduce the activity and provide the prompt. Use OpenSCAD to create a stand to hold your cell phone. Be sure to accomodate for your case if you have one. You can make it to hold it upright or sideways or even be able to work for both orientations. Really, make something that would work for you.
- Explain the basics of printing on your school's machine and show them the machine in operation.
- Have students create simple sketches of their design ideas complete with measurements.
- Provide students a link to the documentation page on the OpenSCAD website and set them to work.
- Print and test designs.
- Have students share their designs with the rest of the class. Discuss different design ideas.
- Provide the second prompt. Change your OpenSCAD code to fix any problems you discovered with your design. Additionally you must add variables that would allow someone to easily change your model so that it can work for any cell phone (except maybe Mr. D-F's flip phone).
- Print and test designs.
This took a week of class time.
- Students need some familiarity with computer programming
- If students have no programming experience then you will need to spend more time working directly with students to build some basic concepts.
- You should also share with your students some of the limitations of 3D printing. Overhangs and bridging are obvious ones, but you should also talk about size limitations. I had two designs that were incredibly big and wouldn't fit at all.
Rubric and Assessment
- Final Design:
- Does it actually work? How stable is it?
- If the design used less plastic would it still work and still be aesthetically pleasing?
- Computer Science Concepts:
- Which computer science concepts were applied?
- Were any concepts avoided that would have made the program easier to write or more efficient?
- Does changing the parameters for the parametric design work or are there bugs/edge cases?