Edit:
I didn’t notice I was replying to a thread from May
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 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”:
function setup() {
createCanvas(windowWidth, windowHeight);
background(100);
}
function draw() {
ellipse(mouseX, mouseY, 20, 20);
}
is a better introduction than the classic “Hello World”:
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.