Some great point in OP's critique. But CS isn't music theory. Music theory is not really known well by most musicians who are excellent players. Theory is for theorists. I'm not saying that most musicians know zero theory-- they know what key they are in--but seriously, that only happens after they can play lots of concertos. Pianists tend to know more, but that's because it's staring them in the face every time they play. (speaking as a career musician: performer, composer, teacher of performance and theory) Yes, musicians drill lots of different things, but honestly, it depends what it's for. If practicing improv withchord changes, one needs to know those changes inside and out, but that is truly just one way-- if one is improvising freely, one needs to practice by doing. It really is the only way. Improv is the creative aspect-- classical is the perfect reproduction aspect. I'm thinking software development is a kind of hybrid. Also-- there isn't a pro music job on earth that anyone could learn well enough in a bootcamp for even six months with no prior experience, so the good news is-- no software engineer is regularaly competing with Horowitz yet. Sure, there are virtuosos in programming, but as a musician, you are surrounded by them and are already one yourself as an undergrad-- at least! This is good news for creativity in teaching programming. In terms of motivation of students: from what I have experienced as a programming student in several programs and as an observer-- the material studied is not inspiring. In music, we study Mozart and Thelonious Monk. Puccini and Stravinsky. Reich and Cage. In programming, we studied models and diagrams. We never looked at "great code". When I asked if there was indpiring code to see, my teacher guided me to online lessons made by the school. I asked if there was. jupiter Symphony of code somewhere, desperately looking for a way to be indpired as I am with great writers and composers. My teacher treated me like I was "being difficult". I dropped out of this program and learned on my own. This was one of the tippy top bootcamps in NYC. I was hoping it would be there for me in these ways-- it wasn't. I'm left with this: I can't imagine any musician getting hired to teach with such low level understanding of ... the world of interesting examples- even a beginning music professor can direct students to inspiring examples of greatness in the field. Teachers need to be paid well for the time it takes to develop interesting methods of teaching. Teaching is a complex hybrid science and art. Like all of these, it requires time and mastery, but most important: innovation!
Programming can be creative but it is not performance art. I'm not sure what you were expecting? Even if you found something (subjective) it may not be very functional. Completely different animal. You seemed to be missing the point of software engineering.
Funny you choose Horowitz, Monk, Starvinsky and Cage as examples. Which either never attended, rejected or had limited academic education.
Actually, software engineering isn't a completely different animal from music-ing. It's the most similar animal I can think of. Its pedagogy is behind music's pedagogy by two, maybe three hundred years. (for obvious reasons) It could learn a lot from the errors in music pedagogy. For one example I can think of off the top of my head, the OP mentioned that we practice scales. Well, yes. But it really is "how" we practice scales that matters. Practicing a scale from bottom to top and back isn't really useful. But lots of people do it like crazy. They drill this. But nowhere in music (maybe performance art, though?)is there a scale in any key all the way up in four ocatves and all the way back down. Nowhere. So practicing that is really a waste of time. It isn't a waste of time if you want to just learn how to play anything fast though, because you "know those notes". Playing fast is a different physical feeling that is counter-intuitive really. But people practice scales like this for the key's sake, and that is really not a great use of practice time. A better use, in this analogy, would be if you wanted to see if you could get around a key in any direction, with leaps and figures and all the things that may show up in a key. Then practice that. Practice figures, loops, improv leaps- in a key. That will make you a better sightreader a better player in that key way faster than scales. I I have the data for hundreds of students, myself and colleagues to prove it. This information doesn't get to the regular Saturday student, but believe me, it is known by professionals and great teachers. It isn't unconventional at all, despite the many parents who get worried about their kids not playing scales like they did or like they heard in movies or TV commercials. Mozart practiced like this. Paganini practiced like this. I have to make the argument to concerned parents at least once a year anyhow. Not sure why. I'm not saying drilling isn't important. It is. But it's what to drill that is the thing. It is also not churning out a bunch of meat compilers and calling those musicians-- or programmers. One thing programmers cold drill right off the bat would be typing for programming. I see a lot of bad typing. I'm bad at it. I realize that's a basic idea. Programming is creative in exactly the way that playing the blues is creative. Everybody does it differently- those who develop their own style are the greats, but in the end, it is still blues. Not sure why academic education of those composers has anything to do with anything. Certainly those composers were some of the most educated, intellectual people who have lived, Monk being the least traditional in his expertise, but he sure understood social history. And even he headed over to work with Hal Overton when he wanted some respect from the establishment at Juilliard and for his Town Hall concert. My point being, in current educational models for programming (not talking MIT or Stanford, because I woldn't know and I'm sure it's different there, because they really pay for it to be so) we aren't reaching for great teaching. We aren't reaching for inspiration. We aren't reaching for technical innovation. But there is a whole lot we can learn from master teachers who have come before in other fields. I think the OP has a point, but I think project-based learning is very important. NOT, however at the exclusion of drills that are creative. Not at the exclusion of coming up with techniques that other fields have not thought of yet. I mean- sheesh- we have accessible mountains of teaching/learning data in computing. No one is using that to make their education better. Why?