[ + | - ]

MART 385: Coding for Designers & Artists
Syllabus (get .pdf )

When

Tuesdays 6:30am — 9:20pm

CRN

95747

Where

Zoom

Who

James Khazar (www.khazar.com)

Office Hours

Tuesdays, 4-6pm
Zoom Use the password 'khazar'

Email

x

Units

3

Degree

Credit

Grade Option

Letter Grade or Pass/No Pass

Lecture Hours
/Semester

51

TBA* Hours
/Semester

32 (minimum)

Homework Hours
/Semester

64-72 (4hrs/week)

Prereq & Coreq

None

Recommended

Eligibility for READ 836 and ENGL 836; or ENGL 847 or ESL 400

Transfer Credit

CSU

Introduction

There is a clear need for an alternative approach in teaching the methods and practices of software programming for students whose focus is in the disciplines of visual arts and design. Today’s job marketplace calls for individuals who can not only create visuals, such as 3D characters, and designs, like web sites, but also know the intricacies of programming those visuals to behave interactively through programming. While they may not be programming themselves, the chances are high that they will be working with programmers, and having a working knowledge of what can and can not be done with programming and the relative complexity of programming projects is an important job skill. A recent review of the first ten jobs listed for Web Designers on indeed.com showed seven required experience in programming, and they all involved working with a team of one or more programmers.

Visual Design and Art students are predisposed to learning by seeing. While computer programming courses offered through Computer Information Science and Engineering departments cover the relevant skills in writing software applications, they are not targeted for visual learners. As described in the Program Learning Outcomes for the Cañada Community College Computer Science department, they are educating students in how to “apply knowledge of math, science, and computer science to identify, formulate and solve computer science problems,” and are specifically targeted with lower division courses for a Bachelor of Science degree.

Art and design students are usually not trying to earn a Science degree. Many find the prospect of taking science courses intimidating. As John Maeda, Design Partner at Kleiner Perkins Caufield & Byers, believes “…hybrids (workers) that can fluidly cross the chasm between technology and the arts are mutations in the academic system.” The programming languages covered in the Computer Science department are Assembly Language, C++, and Java, where the industry standard for programming visuals and interactivity on the Web are JavaScript, JQuery, and HTML5.

This course is in the Business, Design, & Workforce division and is designed to address the needs of visual designers and artists and work within their visually-oriented view of the world and their corresponding learning style.

The course is built around the foundational work developed by Casey Reas, professor in the Department of Design Media Arts at UCLA and a graduate of the MIT Media Laboratory, and Ben Fry, a designer, programmer, and author with a doctoral degree from MIT Media Laboratory. Together, they developed a specialized open-source programming language called Processing. It is a simple language that excels at programming drawings, animation, and interactivity. The emphasis is on quickly creating functional projects and using them to learn core programming concepts one step at a time, while providing encouragement and motivation with immediate visual feedback. According to Reas' and Fry’s textbook on Processing:

Processing makes it possible to introduce software concepts in the context of the arts and also to open arts concepts to a more technical audience. Because the Processing syntax is derived from widely used programming languages, it’s a good base for continued learning. Skills learned with Processing enable people to learn other programming languages suitable for different contexts including web development, computer graphics, and electronics.

Our version of the course also strongly references real-world applications of interactivity. We will incorporate JavaScript, and JQuery, along with Processing, using examples of interactive code on the Web and on Mobile devices.

Target Students

Students in the Certificate Programs, Associate of Arts Programs, and Transfer Programs for:

Career Opportunities

Many of todays technology sector jobs call for a combined set of skills, which include both visual design and programming. These include, but are not limited to:

Strategic Learning Objectives (SLOs)

After taking this course, students should be able to:

Course Outline

Week Topic
1 Introduction
  • What is Programming?
  • What is Interactivity?
  • Coding languages and their various flavors
  • The Processing Language Environment
2 Starting to Code
  • Writing a program to say “Hello World”
  • Creating a saving code
  • Posting code
3 Drawing with Code
  • Basic shapes
  • Drawing sequence
  • Shape properties (size, position, color)
  • Using comments in code
4 Variables
  • Creating and processing variables
  • Basic math with variables
  • Using a for loop
5 Interactivity I: Mouse input
  • Interacting with the mouse position
  • Interacting with mouse clicks
6 Interactivity II: Evaluating input
  • if, then, else statements
  • while statements
7 Working with different media
  • Images
  • Fonts
  • Shapes
8 Motion/Animation
  • Controlling speed and direction
  • Tweening
  • Using random values
  • Using timers
  • Translate, rotate, and scale
9 Coding functions I
  • Function basics
  • Creating functions
  • Returning values from functions
10 Coding functions II
  • Passing values into functions
  • Functions talking to functions
11 Objects I
  • Creating classes and objects
12 Objects II
  • Classes and objects continued
  • Dot syntax
13 Arrays
  • Creating arrays
  • Repetition and arrays
  • Arrays of objects
14 Other languages
  • HTML5
  • JavaScript
  • JQuery
  • Translating Processing to JavaScript
15 Other Languages
  • TBD
16 Mobile and other applications
  • Processing and the Android SDK
  • Arduino electronics
17 Review and Final

Required Materials

Storage

Administration

Grading

Grading Scale

Letter Grade Grade Value Range
A+ 100 100 - 97.5
(Not available through WebSmart)
A 95 < 97.5 - 92.5
A- 90 < 92.5 - 87.5
B+ 85 < 87.5 - 82.5
B 80 < 82.5 - 77.5
B- 75 < 77.5 - 72.5
C+ 70 < 72.5 - 67.5
C 65 < 67.5 - 62.5
C- 60 < 62.5 - 57.5
D+ 55 < 57.5 - 52.5
(Not available through WebSmart)
D 50 < 52.5 - 47.5
F < 47.5 Not available, only NP

Grading Components

Assignment Percentage
Assignment 1: Build A Robot 33.3%
Assignment 2: Move Your Robot 33.3%
Assignment 3: Combo Robot 33.3%

Guidelines for a High Grade (B+ or higher)

Rules

Misc.

Required Text

Make: Getting Started With Processing

Getting Started with Processing
Casey Reas, Ben Fry
Second Edition, 2015
Maker Media
ISBN-13: 978-1457187087
ISBN-10: 1457187086
Free pdf of earlier edition is OK to use

Recommended Text

Make: Getting Started With Processing

Processing: A Programming Handbook for Visual Designers and Artists
The MIT Press
Second edition
ISBN-13: 978-0262028288
ISBN-10: 9780262028288

Other Useful Texts

Learning Processing: A Beginner’s Guide to Programming Images, Animation, and Interaction
Daniel Shiffman
2008 (Second edition soon to be released)
Morgan Kaufmann Publishing, Burlington, MA
ISBN: 978-0123736024

Processing: Creative Coding and Computational Art 2
Ira Greenberg
2013
friendsofED, New York, NY
ISBN: 978-1430244646

Processing for Visual Artists: How to Create Expressive Images and Interactive Art
Andrew Glassier
2010
A K Peters/CRC Press, Boka Raton, FL
ISBN: 978-1568817163

Projects

Each project has two components: A robot, which is created by copying code from the textbook, and an associated variation on the concepts the robot demonstrates.

Exercises

One exercise, but possibly more. Create a square and position and size it with Processing code.