Lego MindStorms! There's a lab at my local university filled with Lego and basic robot sensors/actuators. Schools and other community clubs can book one-time or regular workshops.
What fascinates me the most is the adaptability to the students' abilities. Young students can do "block based programming", telling the robot what to do with very simple command blocks that connect to each other. With rising profession, advanced blocks can be made available that are more powerful, resembling software control structures. New sensors can be used and robots are built by the students themselves instead of prebuilt. At some point, you can ditch the graphical block based programming and show the generated Java code and introduce the students to basic software development.
Now people talk about getting their kids started with programming, and end up talking about raspberry pis and Linux distros and whatnot. Granted the tools now are so much more powerful, and a determined kid can write a best selling iPhone app, but there's something wonderful about a machine that shows up to you as a blank slate, awaiting instruction.
When you boot up a MSX it was the same: a straight command line waiting for inputs, learning to command that was quite magical for 8 year-old me and my intro to programming in general.
I am reminded of the old Kids React videos (which themselves are now nearly a decade old)... Kids React to Technology (an old Apple ][+) https://youtu.be/PF7EpEnglgk
I just wanted to make a website to start off with, just a bunch of linked pages. I already knew a tiny bit of HTML from college, but that was years ago and I wanted to know what had changed. So you can imagine my confusion watching that CS50 lecture as it was seemingly covering everything EXCEPT the stuff non-technical end users are familiar with: websites, apps and games.
Yes, yes, I now know that CS isn't about coding but about underlying fundamentals. But that doesn't change the reality that CS50 online has been viewed many, many more times than people who've sat in a CS class, and those people likely had similarly simple goals as I did.
Long story short however, I took a video course on webdev and learned far more in terms of immediately applicable skills. Again, I wasn't trying to get hired at FAANG. I just wanted to get to the level of 'webmaster', where I knew just enough to handle markup, hosting, SSL and CRUD functions. Learning by doing has been far more rewarding than following online courses.
That was not good advice. CS50 is an excellent, introductory, survey CS course but it's still a CS course.
You and I may know that the question is a bad one, but beginners don't know that. And when they ask, they aren't told to rephrase the question as "What would I like to build?" Someone will just say "well I know Javascript and...." and it goes from there.
I can't answer that for a 13 year old, but I can for an 8 year old. Minecraft. The elaborate stuff my daughter built at that age is way more gratifying than anything I could have built as an 8 year old.
If you can get a modern text editor that can use SSH or something to mount a remote directory you can easily have an HTML party like it's 1999. That's easier than ever. But the surrounding issues are worse than they were in 1999, unfortunately.
The problem of warez is certainly no worse than it was 30 years ago, and there are much better tools to address it. A simple storage quota probably goes a long way.
It's simpler for us software engineers, less simple for the snot-nosed webmaster wannabes we were.
If all you want is to host static html, then any free hosting service will suffice. I.e. let them create a GitHub account and show them git add / git commit / git push and you're done.
It doesn't get much easier than signing up for e.g. Glitch.
Even the simple matter of port forwarding assumes you have access to the router you're using, and that's a major barrier for a lot of people.
I run the programming club at my high school (I'm a high schooler), and we use Github pages to host all of our stuff for this very reason.
I've used some old laptops to run servers within the network, but my school doesn't want us hosting anything public, and running everything through a free tunneling service like localtunnel is possible, but it scales so much better when students can just follow some friendly instructions to host a static site themselves.
It's not hard for the people with the privileges of (1) having a budget > $0 and (2) not having the adults tell you 'no' every time you want to try learn something.
Am I missing something? Even hosting static content on a server seems like a layer of complexity that is frequently unnecessary for basic use-cases.
You can do this in an hour with brand new coders. https://syllabus.codeyourfuture.io/fundamentals/week-1/sessi...
I think it was called Grid<something> or <Something>grid, I just had a look but couldn't find it
Think it was somehow linked to schools, this was in the UK around 2005
I didn't know a lick of programming, but just knowing how to trace the 0's and 1's through the hardware greatly boosted my confidence in interacting with the computer.
No matter what program or language got put in front of me, I knew that something on a disk or in memory, or in some storage somewhere was telling the computer to do it.
Then I set out to understand the people who wrote those things and what they set out to do.
Then I realized I probably hated most of you. Because you went out of the way to make having my computer do what I wanted harder.
I'm somewhat reluctant to encourage youngsters down the path. I'm not sure it's the healthiest occupation.
Create an HTML file and open it up in the browser without a web server (though some advanced stuff will need a web server running). The developer tools built into the browser can be used to interact with the page and see how changing HTML, CSS, or JavaScript affects it.
Web console can be used to experiment with JavaScript, https://firefox-source-docs.mozilla.org/devtools-user/web_co...
I quickly ditched that topic and went right to building a web page. Taught them a few HTML tags and they instantly became "webmasters". They were so thrilled. They could create blinking text, could make all the fonts pink. All just by moving around some simple text in NotePad.
Most importantly, they were creating things that they thought were only able to be created by "scientists". I loved how it boosted their own self worth.
I've stopped teaching a long time ago. Not sure if there's still tools out there where a 13 year old kid with no technical experience can immediately get gratification with something so simple on a computer. Maybe it is a time gone by.