// programming for decades on mainframes, Unix, Linus Unisys, web servers//
Although commendable, this is back end!
Do you really want to throw a beginner in at this level? Get them in at the front end. Let them experience it from the client side first!
Best to give them hands on straight away. Preparing flowcharts. Exploring Loop commands;
FOR, ELSE, Add++, Count, == etc Setting up for example colour attributes, writing useful mneumonics, Page layout, a little basic animation. See if they take to it. Is it for them?
As sure as eggs are eggs, once you begin to introduce discreet electronic components (diodes) and their biasing arrangements (let's face it a transistor is quite a complex device to get your head around, OK admittedly not so much in its Fully Saturated or Cut Off states) to enable the construction of a NOT gate, NAND gate etc You'll lose half your audience in a fortnight.
The requirements of OP to learn the respective 'Truth Tables' - YES, absolutely! It would be extremely difficult to use the Logic instruction set when programming, without knowing what the respective outputs for given inputs on a '&', 'OR', Inverter, NOT gates were.
// You need to understand Binary, hex //
Yes to a lessor degree. Octal as well. But not to the extent of multiplication or division. Just unnecessary in this day and age.
Inevitably when programming in machine code, there was the constant interchange between hex and binary and the instruction set. However with various high level languages around, do we really need to go back to the labororious, inordinate time consuming days of the Motorola, an 8 bit processor running at 1 Mhz? LOL