The use of computers in our daily lives and its repercussions on our society are steadily increasing. The omnipresence of computer systems poses multiple challenges for computer engineers who must continually improve these systems to meet growing needs. Computer engineering bridges the gap between electrical engineering and software engineering.