> I'm passionate about teaching programming to 17-19 year olds.
I've been teaching for some time an introductory programming class to kids with those ages (1st year university students). I think the best approach to teach programming is to start with flowcharts (hand drawn in the paper), do a lot of them, and then use a computer to "program" in flowcharts. Here's some examples of hand-drawn flowchart exercises [1], and for the second, I use Flowgorithm [1].
It is much easier to teach Java (which is the "real" language they must learn in that class) after they know how to think "algorithmically".
I've been teaching for some time an introductory programming class to kids with those ages (1st year university students). I think the best approach to teach programming is to start with flowcharts (hand drawn in the paper), do a lot of them, and then use a computer to "program" in flowcharts. Here's some examples of hand-drawn flowchart exercises [1], and for the second, I use Flowgorithm [1].
It is much easier to teach Java (which is the "real" language they must learn in that class) after they know how to think "algorithmically".
[1] https://joaoventura.net/blog/2020/flowcharts/
[2] http://flowgorithm.org/