The two courses that give the basic CS foundation needed are: nand2teris.org and cs50.net See if you can solve all the projects & assignments in these courses. These cover a lot of ground. Once you are done with these two courses end to end, you will get a fair understanding of many of the computing big ideas.
If the student knows almost nothing, these are really good as they cover the most simple things. If you already programming, they may be too basic.
I really wish there is a course that uses C (like first 4-5 classes in CS50) and uses C ONLY and then go as deep as possible, similar to CS61A, but apparently on other topics (one system programming project?)