I doubt that you could go from the bottom up: the only route I could imagine would be imparting a thorough working knowledge - including programming exercises - on the Turing machine, then writing a simple compiler for a simple language on a simple device.
The problem, of course, is the real-life implementation of this exercise: the compiler would be written for an emulation of a real hardware device! Which is how almost all this work is done nowadays...
But at least there would be some understanding of what you're doing for a living, writing code for a Java or .NET virtual machine.
Virtual virtue
I doubt that you could go from the bottom up: the only route I could imagine would be imparting a thorough working knowledge - including programming exercises - on the Turing machine, then writing a simple compiler for a simple language on a simple device.
The problem, of course, is the real-life implementation of this exercise: the compiler would be written for an emulation of a real hardware device! Which is how almost all this work is done nowadays...
But at least there would be some understanding of what you're doing for a living, writing code for a Java or .NET virtual machine.