I'm a teacher(instructor) of CS in the university. The course is based on Cormen and Knuth and students program algorithms in C++. But sometimes it is good to show how an algorithm works or just a result of task through GUI. Also in my opinion it's very imporant to be able to write full programs. They will have courses concerning GUI but a three years, later, in fact, before graduatuion. I think that they should be able to write simple GUI applications earlier. So I want to teach them it.
How do you think, what is more useful for them to learn: programming GUI with QT or writing GUI in C# and calling unmanaged C++ library?
Update.
For developing C++ applications students use MS Visual studio, so C# is already installed. But QT AFAIK also can be integrated into VS.
I have following pros of C# (some were suggested there in answers):
The need to make an additional layer.
It's more work, but it forces you
explicitly specify contract between
GUI and processing data. The border between GUI and algorithms becomes very clear.
It's more popular among employers. At least, in Russia where we live. It's rather common to write performance-critical algorithms in C++ and PInvoke them from well-looking C# application/ASP.Net website. Maybe it is not so widespread in the rest of the world but in Russia Windows is very popular, especially in companies and corporations due to some reasons, so most of b2b applications are Windows applications.
Rapid development. It's much quicker
to code in .Net then in C++ due to
many reasons.
And the con is that it's a new language with own specific for students. And the mess with invoking calls to library.