There's one thing I'd like to point out. You can teach the techniques of art, which are used for creating art. You can teach the techniques of programming, which are used for creating software. You can't teach how to create something that's never been created before.
That goes for creating ground-breaking art, as well as ground-breaking software.
Often, it's a set of disparate and interdisciplinary techniques, seemingly unrelated, that are used together to create the cutting-edge.