How Does Computer Science Relate to Computer Engineering?
The realization of a computing system, subject to various physical and technological constraints, is a challenging undertaking that requires a great deal of knowledge about the functionality and characteristics of the building blocks available at our disposal using today’s technologies (e.g., semiconductor technologies, optical communication technologies, wireless signaling technologies, etc.) Computer engineering concerns itself with current practices in assembling hardware and software components to erect computing engines with the best cost-performance characteristics. In contrast, computer scientists worry about the feasibility and efficiency of solutions to problems in a manner that is less dependent on current technologies. As such, computer scientists work on abstractions that hide details of underlying implementations to enable the construction and comprehension of yet more complex systems. The creative process of developing, implementing, and evaluating computing abstractions