Computer engineering encompasses a wide range of topics surrounding this interaction between hardware and software. Computer engineers of the future will be versatile full-stack developers, comfortable with understanding the technical depths of software development while also possessing a wide knowledge of the underlying hardware implementations. The MS-EE on Coursera curriculum in computer engineering emphasizes computer-aided verification and synthesis.