Brian Robert Johnson
Introduction to fundamental concepts of computer programming for design applications with an emphasis on interactive graphics. Basic control and data structures for interactive graphics programming; weekly exercises with term project. Significant lab time required. Offered: ASp.
Using the Grasshopper plugin to the Rhino 3D modeling program as well as the Processing programming IDE, students will be challenged to creatively explore and test basic computational geometry concepts (parametric representations, curves, surfaces, particle-spring systems, surface subdivision, Voronoi diagrams, Delaunay Triangulation, etc.) while learning basic programming concepts (data types, looping & branching, OOP concepts, GUI elements, keyboard and mouse events) in an interactive and visually stimulating environment.
Student learning goals
Students will be able to create dynamic, animated, interactive 2D and 3D applets using Processing.
Students will be able to use the Grasshopper plugin for Rhino to create and manipulate solutions to 2D and 3D geometric problems
Students will understand how piecewise approximation mechanisms work and how they can be exploited for design development.
Students will understand how to create algorithmic and parametric solutions to geometric problems, that programs encode model logic and behavior.
General method of instruction
Concepts will generally be introduced through lectures illustrated with sample code and demonstration programs. Students are then challenged to extend the existing application or apply the lecture material in creative ways so that they "own" the material.
Computer literacy is required, including knowledge of paint and draw applications, file transfer, and very simple HTML. Students should have had math to at least the level of advanced algebra and trigonometry.
Class assignments and grading
A series of short (approx one week) focused assignments builds confidence and skill while providing opportunity for feedback on method and process. A larger term project gives opportunity for personalization and application of skills to a project with greater scope.
Exercises are graded on technical correctness, the extent to which they exhibit and extend the related concepts, and the creative or playful character they exhibit.