We describe a new algorithm for calculating the topological degree deg (f, B, 0) where B \subseteq Rn is a product of closed real intervals and f : B \rightarrow Rn is a real-valued continuous function given in the form of arithmetical expressions. The algorithm cleanly separates numerical from combinatorial computation. Based on this, the numerical part provably computes only the information that is strictly necessary for the following combinatorial part, and the combinatorial part may optimize its computation based on the numerical information computed before. We also present computational experiments based on an implementation of the algorithm. Also, in contrast to previous work, the algorithm does not assume knowledge of a Lipschitz constant of the function f, and works for arbitrary continuous functions for which some notion of interval arithmetic can be defined.