Hacker News new | ask | show | jobs
by jcelerier 2024 days ago
> It's interesting and a bit disappointing to me that there's no real current trend towards beginner-friendly (or "end-user"-friendly) programming.

I'm honestly not sure it's really needed. This year I teach a class of graphic students, who have zero coding experience, how to do generative art with p5.js (Processing but in JS). It took a grand total of 8 hours to go from ground zero to making them able to write things involving loops, variables, etc... and making simple generative art autonomously - if anything, they struggle a fair bit more with the maths needed to make pretty things (here are my slides, feedback very welcome! https://interactive-design.jcelerier.name/).

2 comments

Had the very same experience while teach some programming intro courses for artists and designers (mostly simple python for maya/cinema 4d, and java for processing). Learning the language is rather easy, and if you're in design you're already experienced into translating and idea between different cognitive fields.

But wrapping their head around algebra and trigonometry and making them conceptually "think" about them was extremely hard. It looked like years of rote formulas memorization and the "don't worry about why it works like that, just accept it" teaching approach took a toll on their minds. The fact that most maths textbooks are terse to the point of being cryptic didn't help at all.

> But wrapping their head around algebra and trigonometry and making them conceptually "think" about them was extremely hard.

oh yes haha, I even made this small animation for them to try to explain the trigo circle : https://editor.p5js.org/jcelerier/sketches/acPp467og but it didn't help much, wonder how I could improve it..

Making this interactive, Bret Victor style, with a slider for theta and show the actual numbers somewhere - might help?
> But wrapping their head around algebra and trigonometry and making them conceptually "think" about them was extremely hard.

You should abstract these concepts in some way. For example, when you are moving an object in 3D you don't need to spend time projecting 3D objects into a 2D display using linear algebra. You just set the x,y,z coordinates and the engine does the hard work.

> For example, when you are moving an object in 3D you don't need to spend time projecting 3D objects into a 2D display using linear algebra. You just set the x,y,z coordinates and the engine does the hard work.

but setting x,y,z coordinates so that they do the kind of motion that you want is exactly where you need linear algebra.

Say you want to make a ball move in a spiral motion, how do you do that, from code, without students understanding algebra and basic operations like "translation on a plane" ?

As a young kid doing qbasic, everything moving around on the screen was x/y/xchng/ychng. The watershed moment for me was in highschool and suddenly recognizing that sin/cos were how to get from polar to cartesian, and atan2 was how to go the other direction. A week later my little platforming arena shooter had heat-seeking missiles in it.

I think a big part of the problem is a failure to emphasize the right stuff. I always see trigonometry presented in terms of all six functions and arcfunctions and the relationships between them— this is a bunch of abstract stuff that most people don't care about and will never need; it's nuts to present all of this at once when the small piece of it needed for polar coordinate operations is so immediately and obviously useful.

Yeah, and I think you can even take the argument further. 14-year olds with little innate quantitative reasoning ability can be quite facile in Unity3D. And then the point is not how to teach introductory CS concepts. But rather how can they express themselves in 3D, VR, AR, etc. As digital natives, who have grown up with interactive entertainment, they grok the communicative power of new media much more readily than even their instructors might. And the outcome is that they are able to express their truths to their peers with a global reach that really was inconceivable back in Cynthia Solomon's time ;)

This Unity course provides a glimpse:

Real-Time Animated Storytelling

https://learn.unity.com/course/real-time-animated-storytelli...