So, the question keeps popping up -- "What is the difference between Science and Engineering?"

Well, here is my understanding so far (not complete yet)

Science

- It is very theoretical
- It relies on abstraction and the ability to visualize things
- Proofs (mathematical) are important for completeness

Engineering

- Relies on Science for getting started and for establishing a base for understanding concepts
- Is more practical in the sense that ideas should be feasible to implement. Science will allow you to get away with black holes and infinity, engineering will not
- It is the art of observing and collecting data and using it to solve problems

To illustrate the difference further, consider the mathematical concept of infinity, mathematics has a notation for it ∞. In computing, we cannot get away without finding a practical representation for infinity, hence computer engineers had to develop the concept of NAN (Not A Number), but in science we can simply use the notation for ∞.

Collecting data also plays a critical role in keeping things practical, analyzing data to come up with solutions to problems is very important in engineering.

There are occasions when science and engineering work very well together. Consider for example the Huffman algorithm, science predicts that it the most optimal algorithm for finding codes and engineering allows us to implement it. On the other hand, in the case of traveling salesman problem, science suggests that there is no way to design the most optimal solution to the problem except to use brute force, but engineers try to find a solution that is close to optimal.

Get the point - science vs engineering?