Я потому и указал препятствие - "без конкретной задачи", чтобы не
повторяли моих ошибок. Mahagam так же на один момент навёл - а какой объём знаний уже есть? Чтобы электронщикам объяснять как это работает, надо чтобы они уже
оперировали (не просто знали, а могли оперировать) логикой,
триггерами, регистрами. Если более общий курс, то соглашусь, что
упор на типы данных и алгоритмы сделать. И показать, как наращивать
сложность системы(иерархия). C/C++ - тут сложно. Си обозримей и проще, С++ в плане генерации кода не уступает, но уровень абстракций выше (а значит и разрыв для понимания, взаимосвязей). Если учить именно алгоритмам и типам данных, то где-то было, как для С++ включить проверки, что-то вроде -Wpedantic, -Wall.
PS: А задача была забавная: написать патчер для UFO-2 X-COM сохраняшек, чтобы не ручками hex-коды править.