> -- start with binary and work your way through hardware and logic gates
I'd consider this foundations of computer engineering.
> -- start off with theory like turing machines, first order predicate logic and work your way up
I'd think of this as more like foundations of computability theory, but, yeah, this seems like another viable angle for me.
> -- start off with a hello world, and slowly iterate over programming (in a post internet world, this is especially popular) with loops, if/then statements and so on
I'd call this foundations of software engineering.