That is absolutely wrong. I am a PhD student in Computer Science, and I strongly consider what I do more science than engineering. Machine learning is all about making a hypothesis, implementing it, testing it, and observing the results. There is a pressure toward only publishing positive results (no one want to learn about an algorithm that doesn't work), but it's still very much a science.
The same kind of experiments happen in lots of other CS sub-fields: high performance computing, security, etc.
It's a science in the same way that math is a science. A "formal science" seems appropriate. My school considered it a natural science, which is just stupid.
Note that most computer "science" classes are stuff like learning java, learning UML, learning software engineering. This stuff is barely engineering, let alone science. It has more in common with a fine art.
Algos and data structures etc are arguably a form of math, depending on the class most likely applied math.
It's not a natural science, and what you're doing is similar to the way artists will use, say, a picture of a DNA molecule to create a cool painting. If they use scientific principles in their art, does that make it a science?
No - what you are describing is a "craft" - a very informal kind of engineering. Architecture is not a science either.
The same kind of experiments happen in lots of other CS sub-fields: high performance computing, security, etc.