It comes from literature classes; history classes; philosophy classes. Obviously not from data-structures class, although there's a lot to learn there, too.
Indeed. Even though the liberal arts survey classes everyone was required to sample were by their nature superficial, they did provide at least some exposure to a world wider than engineering and math.
I remember my American Literature class (at an engineering school), the first day the professor asked everyone to name the last fiction book they read. Every single person in the class, every single one, named a Tom Clancy novel. There was a benefit in pushing the horizons here.
Thing is people still repeat this same thing in the UK where if you take a CS degree you will most likely take 0 classes in literature, history of philosophy since your degree will be focuses from the start specifically on the thing that you are studying.
I believe most countries university systems work in this way too.
I actually found the more mathematical components of the UK CS course I did to have the "horizon broadening" effect - probably two-thirds of the classes we had were maths in one form or another.
They didn't even really try and teach programming as a practical activity - you were pretty much expected to pick that up by yourself. Although we had to do a lot of development during the 4 years.
Possibly but it's generally not encouraged. In my 3rd year I got to take 2 optional modules we were pushed in the direction of taking specific project management courses in the business school.
I did take one module in English which was fun but nothing I couldn't have got from a creative writing class.
"The question as to whether " ... "can only be answered by considering the subtleties, nuances and shades of meaning of both the question, and the state of" ...
Then you write 3-300 paragraphs of purple prose expanding on this point.