I designed my own soda machine, calculator and even designed/created a real world solution which companies were interested in, though I cant mention because it would be me not anonymous.
I was not a computer engineer, I was a CS student. My school also had computer engineering, but I was not really interested in the EE stuff.
I took all of the Math that engineers take, and I took the Engineering Chemistry and Engineering Physics.
Due to my CS dept being a subset of the engineering dept, the goals were the same. Everything was problem solving. Every class had its set of rigorous problems, which students had to succeed at or they simply would not pass.
I learned Algorithms, internal Operating systems, Complexity, Computation, fundamentals of Programming languages, distributed systems, organization, Computer Architecture, VSLI/HDL, etc. Im sure you get the point.
I personally think I bring a good bit to the table, as do the other few graduates that survived the curriculum.
You very well may find a more well rounded candidate than myself from the non traditionally educated pool, but they will be few. If you lump all CS graduates in the same pool, you are doing yourself a disservice. While yeah, somebody from a Java school may suck. What do you say to a candidate like myself, who really can bring what you need to the table. Do you just cross me off the list because I have a CS degree. If so, I think its you who may need to recalibrate.
Sure pure engineers and physicists may be good programmers, but do they understand the inner workings of a computer? Do they understand complexity, even the basic data structures. I assume you want efficiency?