Embedded software and dedicated hardware are vital elements of the modern world, from personal electronics to transportation, from communication to aerospace, from military to gaming, from medical systems to banking. Combinations of even minor hardware or software defects in a complex system may lead to violation of safety with or even without evident system failure. a major problem that the computing profession faces is the lack of a universal approach to unite the dissimilar viewpoints presented by computer science, with its discrete and mathematical underpinnings, and by computer engineering, which focuses on building real systems and considering spatial and material constraints of space, energy, and time. Modern embedded systems include both viewpoints: microprocessors running software and programmable electronic hardware created with an extensive use of software. The gap between science and engineering approaches is clearly visible in engineering education. This survey paper focuses on exploring the commonalities between building software and building hardware in an attempt to establish a new framework for rejuvenating computing education, specifically software engineering for dependable systems. We present here a perspective on software/hardware relationship, aviation system certification, role of software engineering education, and future directions in computing.