I am a homeschooling Dad with an S.M. in EE/CS. I choose to teach "programming" to one of my kids who was interested using David Eck's Introduction to Programming Using Java back in the 2000 timeframe. The course material was free online, and was very adaptable to the high-school-level. My kid really liked it, and got a lot out of it, especially one of the client server projects and the Human-Machine-Interface (HMI) element. She later graduated as a very successful college CS major and took on a pretty nifty HMI-related job with one of the Federally Funded Research and Development Centers (FFRDC).
As in most subjects, interest level and match between curriculum and student are keys to success. I tried teaching the same course to another one of my kids, and she was uninterested (except for making web pages using HTML), so we never completed and moved on to something else. She ended up going into the social sciences. Your mileage will vary.
"The identical is equal to itself, since it is different." -- Franco Spisani