# Intro to programming via art

**URL:** <https://discourse.processing.org/t/intro-to-programming-via-art/255>\
**Category:** Teaching\
**Created:** [May 22, 2018, 11:22am UTC](https://discourse.processing.org/t/intro-to-programming-via-art/255 "2018-05-22T11:22:25Z")\
**Posts on this page:** 1\
**Showing post:** 15

<div class="post-metadata">

**Author:** ![tony](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/tony/32/949_2.png) [@tony](https://discourse.processing.org/u/tony)\
**Post date:** [September 5, 2018, 7:50pm UTC](https://discourse.processing.org/t/intro-to-programming-via-art/255/15 "2018-09-05T19:50:28Z")

</div>

Edit:  
I didn’t notice I was replying to a thread from May 🙃

> [@Kevin](#):
>
> > what is lost if I don’t have them creating more traditional programs.
> 
> For an intro course I wouldn’t worry about it. Programming is not an either-or thing. **Learning one language doesn’t prevent you from learning another language:** quite the opposite in fact! Instead, focus on making the course engaging and interesting, which Processing is perfect for.

I think he was asking whether anything is lost if he doesn’t do things like the traditional “Tax Calculator” or “Grocery ArrayList” programs that are used to introduce fundamentals like variables and arrays and if-statements.

I think this is a valid question, because, despite the fact that Processing abstracts a lot of the nitty-gritty stuff, there are still some basic structures and concepts that need to be understood to implement something via Processing. [This post from a while back](https://discourse.processing.org/t/creating-ellipses-with-different-colours-and-sizes/2834) comes to mind.

That being said, I think it’s completely possible to teach the basics through less traditional means - in fact, I really think that Processing’s “Ellipse Brush”:

```auto
function setup() {
	createCanvas(windowWidth, windowHeight);
	background(100);

}

function draw() {
	ellipse(mouseX, mouseY, 20, 20);
}

```

is a better introduction than the classic “Hello World”:

```auto
public class Main {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

```

“Hello World” just throws so much complexity at you all at once. The Ellipse example, on the other hand, is intuitive - and if it’s hard for a student to understand the code on the screen, they might better understand the action on the canvas. Understanding what a **public** method is, what **static** means, or what **void** entails, are definitely important to know - eventually. But getting someone to graspthe concept of a for-loop, or the difference between a String and an Int, does not have to be taught in “raw” command-line Java.

So, tl;dr:  
I think Processing, despite its abstractions, can still teach the kinds of fundamental programming concepts you would learn in a more “traditional” Intro to Programming course.

---

_[View the full topic](https://discourse.processing.org/t/intro-to-programming-via-art/255)._
