You can graduate from a 4 year bachelor's of computer science program without ever learning how to solve problems with computer logic in any meaningful way.
Just like the entry level math student who can't solve an algebra word problem unless the formula is written for them, you can graduate from a CS program without ever learning how to solve any problems or situations if they weren't explicitly taught in class.
Every successful CS student I've ever talked to has told me that they compound their bare-bones curriculum with self-teaching and side-projects if they actually want a shot at being employable after they graduate.
Why even bother with a CS degree then? Why is this allowed?