This article describes the role and place of software engineering in modern computing curricula, focusing on dependable systems that can be implemented using microprocessors and programmable logic. In this time of the increasing role of software and proliferation of computing in all areas of technology and human endeavor, there is critical need for education of engineers who can understand the system as a whole, appreciating both software and hardware and their mutual connection. The similarity and difference of approaches between traditional computing software and modern programmable-logic hardware is discussed. Modern systems require good engineering considering not only the system's functionality but also dependability and safety.