A Two-Dimensional Drawing Application to Teach Beauty and Truth, As Well As Mathematics, Computer Science, and Computer Science Principles
Introduction
For years, STEM education has been increasing outreach efforts to be more inclusive of underrepresented communities, especially girls and young women. Also, outreach to the arts and humanities has increased, leading to a modification of the STEM acronym to include the letter ‘A’ for Art, giving STEAM.
Programs like Processing have gone a long way to engaging the more artistically-inclined... (more TBD)
Background
On the heels of a profound backpacking experience along the John Muir Trail, I realized I have been neglecting the artist in me. I have been working in the fields of computational science and high-performance computing for many years with little to no opportunities for truly creative outlets. I realized the need to be more expressive with the artist in me, but also the need to be more expressive with the scientist in me. Thus I was motivated to explore the boundaries of science and art in my own way. I would like to share with others the initial results of my efforts towards finding a reasonably short path to creating beautiful, engaging, and original 2D and 3D computer-generated art. Some of it is based on actual data collected from the world around us, most of it is based on pure math, and all of it is created by tweaking basic parameters of 2D and 3D objects. This proposal focuses solely on the 2D drawing program, i.e. the logical first step.
Design Approach
These programs are inspired by the love of beauty in nature and the desire to quickly and easily draw natural shapes and structures such as snowflakes, ferns, branching trees, and clouds in order to create beautiful landscapes. Much has been said about the need to move past a specific programming language and focus on what is actually being created by the students. Some students are more inspired when they know the language they are learning can actually lead to employment. Some students are more inspired when the tasks are creative rather than, or at least in addition to, tedious and technical.
Our practical hands-on lesson design begins by teaching the student how to write a simple interactive two-dimensional (2D) drawing program. We then take incremental steps towards developing a more complex drawing program. The lessons are designed around the HTML5/CSS3 web development standards and the Javascript programming language. Additionally it uses the jQuery library and the HTML5 Canvas element. For 3d, I have written code which outputs a CSV file for a 3D visualization tool called ANTz. Here is the format for the course.
Instructional ‘Realms of Focus’
Mathematics
Basic Math
Algebra
Geometry
Trigonometry
Classical Calculus
Lambda Calculus
Computer Science
Syntax
Variable Typing
Functions
Conditions
Recursion
Debugging
Computer Science Principles
Creativity
Abstraction
Data to Knowledge
Algorithms
Computational Artifacts
Problem-solving
Innovation
Other Realms of Importance
Integration
Process
Future Plans
P5JS
WebGL
Unity