OpenSCAD based intro to coding curriculum for visually impaired and blind students. By Texas School for the Blind and Visually Impaired.
Its helpful to have the following materials and tools, you will need to access to a 3D printer
- braille or bluetooth calipers
- braille/large print ruler
- 3D printer and raspberry pi installed with Octoprint for wireless printing
- APH graph board or geoboard
- Playdoh
- On the fly tactile graphics tools
- APH tactile drawing board or draftsmen
- Wicki stix
- Embossing wheel
Class notes/sequence If you are a teacher clone this repo, if you are a student taking this class, congrats, you found the solutions, but remember you are only cheating yourself if you do not attempt problems independently, and there are not posted project solutions.... This repo has all of the information (lessons, models, assignments) you need to teach the course. You can find code for students in the lessons folder, here you will also find a teacher lesson (does not have "_student" suffix) that will have all the important information to lecture about during class and practice problem solutions. This should go without saying... but... *Do the lesson and practice problems yourself before teaching it." There is also a subfolder named "materials" which has a suggested sequence and over view of each sub lesson in a markdown document. Lessons are roughly one month in length, depending on the level of your students. A double block (1hr and 15m) class time is suggested. Teacher should have students mirror the folder and file structure of this github repo to help organize their work on their local computer. Cloud based storage such as google drive or drop box can be used but it is suggested that the files are accessible locally (either through drive for desktop or dropbox for desktop) as students will be running openSCAD locally. A class room entry routine could be:
- Teachers send email with attached lesson code or instructions night before or day of class
- Students come into class on time and login to computer, open email and complete directions, downloading any attachments and placing them in the correct folder(s).
All skills to be completed with a laptop, unless otherwise noted.
- Keyboarding 20 WPM all characters
- Basic Windows OS navigation (launching programs, file explorer navigation, window/settings navigation, keyboard shortcuts)
- Intermediate internet navigation skills
- Search
- Download
- Navigate known and unknown sites with minimal prompting
- Email Proficiency
- Word Processing proficiency
- Text editing familiarity
- PowerPoint and presentation familiarity
- Knowledge of the Cartesian coordinate plan
TSBVI's Fundamentals of Computer Science course explores the building blocks of computer science and the engineering design process through the introduction of digital fabrication tools and the OpenSCAD programming language (based upon the C programming language). Throughout the course students will complete several independent and group "design challenges" where they will use their knowledge to design and implement solutions to real world problems posed by TSBVI staff. After each "design challenge" students will present technical documentation to stakeholders for review. Once a month students will lead a question and answer session with a STEM industry professionals.
Upon successful completion of the course students will be able to:
- Understand and implement fundamental computer science concepts such as variables, basic boolean logic, basic control structures, and basic data structures
- Measure objects precisely to prepare technical descriptions
- Use the engineering design process for problem solving
- Maintain technical documentation and develop technical presentations
- Understand and implement the possibilities of digital fabrication in approaching and solving problems they may face in their everyday lives
- Use advanced prototyping and manufacturing techniques in the production of objects
Grading is a combination of two areas:
- Class participation and attendance 50%
- Projects 50%
Project Rubric | 0 | 1 | 2 | 3 |
---|---|---|---|---|
Meets Functional Requirements | Project meets few or no functional requirements satisfactorily | Project meets some functional requirements satisfactorily | Project meets all functional requirements satisfactorily | Project meets all functional requirements and implements a novel or outside of the box solution |
Includes Deliverables | Project includes few or no deliverables completed | Project includes some deliverables completed | Project includes all deliverables completed | Project includes all deliverables completed and goes beyond the expected level completion |
Observes constraints | Project observes few or no constraints listed | Project observes some constraints listed | Project observes all constraints listed | Project observes all constraints listed and student imposes additional practical constraints |
Key concepts will build on each other and be used throughout the course.
- Using digital calipers
- Using rulers
- Using tape measures
- Presentation Skills
- Technical note taking and documentation
- 3D printing and laser cutting basic skills
- Basic primitives and transformations
- Parameters (lists)
- Variables and parameterization
- Boolean operations
- Modules
- More transformation
- Extrusions and 2D Vector Design
- Loops
- Conditional statements (if else)
- External libraries
- Variables and parameterization (continued)
- Macros
- Command line/ basic Linux commands
- VSCode development
- Python (openSCAD package)
- Measuring using calipers
- 3D printing and slicing
- Writing technical notes
- Converting between inches and millimeters
- 3D printing
- Designing a solution based on functional requirements and constraints
- Preparing technical notes
- meauring using calipers
- testing multiple iterations
- Find a real world device and copy it
- Parameterize your code
- Bonus if someone brings you a design problem
- 3D printing
- Using Boolean functions and transformations
- Making smaller models to test things
- Scaffolding joints project
- Using variables
- Laser cutting
- Measuring with a tape measure
- Internet navigation
- Laser cutting
- Projection command in openSCAD
OpenSCAD user manual OpenSCAD video tutorials Geometry and OpenSCAD for VI studnets