General education students can be taught computational thinking skills through courses that marry computer programming with algorithmic art. Algorithmic art is a varied and growing field where images are generated on the computer using mathematical and computer algorithms (see http://processing.org/exhibition/index.html for examples). Visually oriented students may be motivated to learn programming when it is taught in a context that is as much focused on art, artists, and design principles as it is on mathematics and programming. This presentation will include 1) a discussion of the challenges of teaching programming, 2) the role of teaching style, motivation, and programming environment, 3) a summary of common algorithms and their relation to design principles, and 4) examples of artwork that has been created by current artists."Computational Thinking [1] is a universal metaphor of reasoning used by both mankind and machines" [2]. There is growing consensus [1] that computational thinking is a fundamental skill that everyone needs to succeed in our complex and technological culture. Computer programming is an excellent way to develop computational thinking skills. Unfortunately, programming courses have a long history of high dropout and failure rates [3,4]. The reasons, fairly or unfairly, take aim at lack of student ability, poor attitudes, and poor teaching styles [4,5,6]. Proposed solutions have focused on new ways of teaching such as active learning [6,7,8], visualization [9], pair programming [10], strengthening student mental models [6], etc. Many of these approaches are worthwhile and have resulted in some improvement. However, the fact remains that programming for most students is still just plain hard and requires strong motivation on the student's part in order to succeed. Thus, regardless of the adopted teaching style, the instructor must also strongly motivate the subject by placing it in a context that is so compelling and meaningful to the student that he/she doesn't give up. This idea parallels the "Teaching in Context" movement gaining favor as an approach to teaching computer graphics [11,12].Mathematics has long used the visual arts to motivate, explore, and explain mathematical concepts [13,14,15,16,17,18]. Generally, math teachers have students draw with pencil and paper [17] or have students use existing software to generate images [16]. Little emphasis is placed explicitly on issues of art and design. We propose instead that students themselves write the programs in a course that is as much about learning art as it is about learning to program. This approach, while not completely new [19,20], is recently gaining wider use, in large part, due to the development of new programming environments designed for the visual artists (e.g. Processing [21,22,23,24], Field [25]).An important contribution of this talk is an overview of the art-programming algorithm taxonomy. Each algorithm can be linked to specific design elements and principles as well as specific programming and mathematical concept...