Chemical information processing posseses a variety of valuable properties, such as, robustness, concurrency, faulttolerance, and evolvability. However, it is difficult to predict and program a chemical system, because the computation emerges as a global phenomenon from microscopic reactions. Here, we will present design principles for chemical programs. We focus on programs that should compute a qualitative and not quantitative result. The design principles are based on chemical organization theory, which defines a chemical organization as a closed and selfmaintaining set of molecular species. The fundamental assumption of so called organization-oriented programming is that computation should be understood as a movement between chemical organizations. In this case we expect that the resulting system is more robust, and fine-tuning of the kinetic laws will be less important.