Many programmers ask me why there is the need to study basic computer science or the mathematics on which it is based. The answer - you can solve the problems faster. The advent of Design Patterns does not mitigate this need. In this area I will highlight several basic science areas which relate to software development and demonstrate their applicability.