### The definition of computer architecture

*Computer theorists* invent algorithms that solve important
problems and analyze their asymptotic behavior (e.g. O(NlogN) or
O(N^{3})). **Computer architects **set the constant factors for these
algorithms…

### ... and the explanation

As a systems discipline, computer architecture is very different from the theoretical fields within computer science. For better or worse, architects don’t do much mathematical modeling and they can rarely prove the optimality of their ideas. The systems they play with are too complex for most theoretical approaches. However, architects are really good at building computer systems that work and work well.

It is often tempting to mock the empirical nature of computer architecture and the lack of mathematical sophistication of most systems research. This definition serves as a reminder that, at the end of the day, it is the systems built by computer architects that run all the algorithms and determine their practical effectiveness. Computer architects measure and, more often, set the constants associated with the asymptotic analysis of all algorithms. So be nice to your architect friends... :)